5.4. カスタム UI コンポーネントとフィルター


Ansible Backstage Plugins は、Ansible Automation Platform のリソース選択および認証と直接統合することで、ソフトウェアテンプレートのエクスペリエンスを強化するカスタム UI コンポーネントを提供します。

5.4.1. AAPTokenField

AAPTokenField は、backstage スキャフォールダーテンプレートで使用されるセキュアな認証フィールドです。Ansible Automation Platform OAuth2 トークンを自動的に取得して保存し、すべての rhaap:* アクションで使用できるようになるため、シームレスな認証が可能になります。

AAPTokenField プロパティー

次の表は、テンプレートのプロパティーセクションで使用されるフィールドのプロパティーの詳細を示しています。

Expand
Property説明

title

string

UI に表示されるラベル (例: "AAP Token")。デフォルトは "AAP Token" です。

description

string

入力フィールドの下に表示される短いヘルプテキスト。

ui:field

string

AAPTokenField に設定する必要があります。この設定は、Backstage にデフォルトの入力フィールドではなくカスタムの React コンポーネントをレンダリングするように指示します。

ui:backstage.review.show

boolean

true の場合、このフィールドはスキャフォールディングが実行される前に Review ステップに表示されます。デフォルト値は true です。

認証フローとトークン管理

すべての rhaap:* アクションには、Ansible Automation Platform での認証に OAuth2 トークンが必要です。このフィールドは、次のプロセスを通じてトークンを管理します。

  • Token Source: トークンは、Ansible Automation Platform OAuth2 認証プロバイダーから自動的に取得されます。
  • Storage: トークンは Backstage シークレット内にセキュアに保存されるか、@ansible/backstage-plugin-auth-backend-module-rhaap-provider を通じて取得されます。
  • Usage: トークンは、token 入力パラメーターを使用して各アクションに渡されます。

RHAAP 認証プロバイダーを使用すると、トークンは自動的に注入され、次に示すようにワークフロー手順で参照できます。

  - id: create-project
    action: rhaap:create-project
    input:
      token: ${{ parameters.AAP_TOKEN }}
      # ... other inputs

次の例は、backstage テンプレート内で AAPTokenField を宣言および参照する方法を示しています。ui:widget:hiddenui:backstage: review: show: false は、トークンが UI に公開されないようにするために使用されることに注意してください。

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: my-AAP-template
  title: Example AAP Template
spec:
  parameters:
    - title: Authentication
      properties:
        token:
          title: AAP Authentication Token
          type: string
          description: Oauth2 token
          ui:field: AAPTokenField
          ui:widget: hidden
          ui:backstage:
            review:
              show: false
  steps:
    - id: launch-job
      name: Launch AAP Job Template
      action: rhaap:launch-job-template
      input:
        token: ${{ parameters.token }}
        ...

エラーと検証の処理

すべての rhaap:* アクションには、組み込みの検証機能とユーザーにとって分かりやすいエラー報告機能が含まれています。

  • 検証: トークンが欠落しているか無効な場合、このアクションにより "`Authorization token not provided`." エラーが出力されます。
  • エラーメッセージ: アクションは API クライアントエラーをキャッチし、スタックトレースを公開せずに意味のあるメッセージを抽出して表示します。
  • ワークフローの安全性: 認証エラーによりステップが失敗した場合、後続のステップは自動的にスキップされ、安全で予測可能なワークフローが維持されます。

5.4.2. AAPResourcePicker

AAPResourcePicker は、backstage スキャフォールダーテンプレートの動的フィールドです。Ansible Automation Platform API から直接 Ansible Automation Platform リソース (インベントリー、組織、認証情報など) のリストを取得して表示し、ユーザーが自動化ワークフローのリソースを選択できるようにします。

AAPResourcePicker プロパティー

次の表は、テンプレートの properties セクションでリソースピッカーを設定するための重要なプロパティーの詳細を示しています。

Expand
Property説明

title

string

UI に表示されるラベル (例: "Inventory")。

description

string

フィールドの下に表示される短いヘルプテキスト。

ui:field

string

AAPResourcePicker に設定する必要があります。

resource

string

取得して表示する特定の Ansible Automation Platform (AAP) リソースタイプ (例: inventoriescredentialsorganizations)。

idKey

string

リソース ID の取得に使用されるプロパティー名 (デフォルト: “id”)。

nameKey

string

リスト内のリソース名表示に使用されるプロパティー名 (デフォルト: “name”)。

type

string

複数選択フィールドの場合は “array” に設定し、単一選択フィールドの場合はこのプロパティーを省略します。

次の例は、AAPResourcePicker を使用して、インベントリー を選択するための単一選択フィールドを作成する方法を示しています。

apiVersion: scaffolder.backstage.io/v1beta3
kind: Template
metadata:
  name: my-AAP-template
  title: Example AAP Template
spec:
  parameters:
    - title: Authentication
      properties:
        jobInventory:
          title: Inventory
          description: Select inventory
          resource: inventories
          ui:field: AAPResourcePicker
          default: DemoInventory

5.4.3. カスタムフィルター

このプラグインは、リソースオブジェクトから特定のプロパティーを抽出するためのカスタムフィルターを提供します。これは、backstage ステップ間でデータを渡すために不可欠です。

Expand
フィルター目的使用例

resourceFilter

リソースオブジェクトから特定のプロパティーを 1 つ抽出します。

`$!{{ parameters.organization

resourceFilter('name') }}`

multiResourceFilter

複数のリソースオブジェクトから特定のプロパティーを抽出します (入力が配列の場合)。

Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る