次の方法で共有


API が Azure API Center に登録された後の通知ワークフローを設定する

この記事では、組織の API センターに登録された後の API の状態を更新するための自動通知ワークフローを設定する方法について説明します。 この例を調整して、API センターの他の種類のイベントのワークフローを自動化します。

通知ワークフローを設定すると、次のような理由で役立ちます。

  • リアルタイム更新 - API 登録や API 定義の更新など、特定のイベントが発生したときにすぐにアラートを受け取ります。 これらのイベントに基づいて問題に迅速に対処するか、さらなるアクションを実行します。
  • 自動化 - 時間を節約し、手動監視を減らします。 たとえば、新しい API が登録されたとき、API 定義が変更されたとき、または API 分析レポートが生成されたときのアラートを設定します。
  • ユーザー エクスペリエンスの向上 - 通知を統合することで、ユーザーは要求やアクションの状態を常に把握できます。 これには、条件に基づいてカスタム メタデータを変更する、API の承認プロセスが含まれる場合があります。
  • コラボレーション - ロール (API 管理者、API 開発者など) に基づいてさまざまなチーム メンバーに通知を送信し、的確な人物が情報を受け取り、適切なアクションを実行できるようにします。

この簡略化された例では、次のようになります。

  • API センターに API を登録すると、Azure Logic Apps ワークフローを実行するイベントがトリガーされます。
  • ワークフローは、Microsoft Teams の通知を指定された個人に送信します。
  • その個人は、Microsoft Teams の通知から直接 API 登録の状態を決定します。
  • ワークフローは、個人の決定に基づいて API 登録内の API の状態メタデータを更新します。 API の状態は、API センターで設定するカスタム メタデータ プロパティです。

この例を、組織の API センターの通知およびガバナンスの要件に合わせて調整することができます。 Power Automate で同様の自動クラウド ワークフローをトリガーすることもできます。

前提条件

ステップ 1. API センターにカスタム メタデータ プロパティを追加する

この記事のワークフロー例では、API 登録の状態について、API センターでのカスタム メタデータ プロパティの例の値を設定します。

API センターでカスタムの api-status プロパティを作成するには:

  1. Azure portal で、API センターに移動します。
  2. 左側のメニューにある [資産] で、[メタデータ]>[+ 新しいメタデータ] を選択します。
  3. [詳細] タブで、次の詳細を入力します。
    1. [タイトル] に「api-status」と入力します。
    2. [種類] で、[事前定義済みの選択肢] を選択します。
    3. 次の事前定義済みの選択肢 "新規"、"保留中"、"承認済み" を追加します。 [次へ] を選択します。
  4. [割り当て] タブで、[API] の横にある [オプション] を選択します。
  5. 必要に応じて、[デプロイ][環境] に割り当てを行います。 [次へ] を選択します。
  6. 構成を確認してから、[作成] を選択します。

ステップ 2. ロジック アプリでマネージド ID を有効にする

このシナリオでは、ロジック アプリはマネージド ID を使用して Azure API センターにアクセスします。 必要に応じて、システム割り当てまたはユーザー割り当てマネージド ID のどちらかを有効にします。 構成手順については、「Azure Logic Apps でマネージド ID を使用して Azure リソースへのアクセスと接続を認証する」を参照してください。

ポータルでマネージド ID を構成しているスクリーンショット。

手順 3. マネージド ID にアクセス許可を割り当てる

API センターにアクセスするために必要なアクセス許可をロジック アプリのマネージド ID に割り当てます。 このシナリオでは、マネージド ID に共同作成者ロールを割り当てます。

  1. Azure portal で API センターに移動し、[アクセス制御 (IAM)] を選びます。
  2. [+ 追加] > [ロールの割り当てを追加] を選びます。
  3. [特権管理者ロール] を選んでから、[共同作成者] を選びます。 [次へ] を選択します。
  4. [メンバー] ページの [アクセスの割り当て先] で、[マネージド ID] > [+ メンバーの選択] を選びます。
  5. [マネージド ID の選択] ページで、ロジック アプリのマネージド ID を検索して選択します。 [選択][次へ] の順にクリックします。
  6. ロールの割り当てを確認し、[レビューと割り当て] を選択します。

ステップ 4: ロジック アプリ ワークフローを構成する

このセクションでは、API が API センターに登録されたときにロジック アプリ ワークフローをトリガーするイベント サブスクリプションを構成する手動のステップについて説明します。

ステップ 4.1: リソース イベントが発生したとき

API センターでイベントが発生したときにロジック アプリ ワークフローをトリガーするワークフロー ステップを構成します。

  1. ポータルで、ロジック アプリに移動します。

  2. 左側のメニューにある [開発ツール] で、[ロジック アプリ デザイナー] を選択します。

  3. [トリガーの追加] を選択します。

  4. Azure Event Grid を検索し、[リソース イベントが発生したとき] トリガーを選択します。

  5. [リソース イベントが発生したとき] ペインで、次の操作を行います。

    1. [リソースの種類] で、[Microsoft.ApiCenter.Services] を選択します。
    2. [サブスクリプション] で、対象のサブスクリプションを選択します。
    3. [リソース名] に、API センターの完全なリソース名を次の形式で入力します: /subscriptions/<subscription ID>/resourceGroups/<resource group nam>/providers/Microsoft.ApiCenter/services/<API Center name>
    4. [イベントの種類項目 - 1] で、Microsoft.ApiCenter.ApiAdded を入力または選択します。

ポータルの

ステップ 4.2: 変数の初期化 - subjectvar

登録されている API の ID を格納する変数を初期化するワークフロー ステップを追加します。

  1. アクションの追加を選択します。
  2. 検索ボックスに「"変数"」と入力します。
  3. [変数] で、[変数を初期化する ] を選択します。
  4. [変数を初期化する ] ペインで次の操作を行います。
    1. [名前] に「subjectvar」と入力します。
    2. [型][文字列] を選択します。
    3. [値] に「/」と入力し、[動的コンテンツを挿入する] を選択します。
    4. [リソース イベントが発生したとき] で、[件名] を選択します。

ポータルで subjectvar 変数を初期化しているスクリーンショット。

手順 4.3. 変数の初期化 - versionvar

API Center の管理 API のバージョンを格納する変数を初期化するワークフロー ステップを追加します。 このバージョンは、ワークフローの HTTP 要求に必要です。

ヒント

バージョンの変数を初期化すると、管理 API が更新されたときに後で値を簡単に変更できます。

  1. アクションの追加を選択します。
  2. 検索ボックスに「"変数"」と入力します。
  3. [変数] で、[変数を初期化する ] を選択します。
  4. [変数を初期化する ] ペインで次の操作を行います。
    1. [名前] に「versionvar」と入力します。
    2. [型][文字列] を選択します。
    3. [値]?api-version=2024-03-01 と入力します。

ポータルで versionvar 変数を初期化しているスクリーンショット。

手順 4.4. API の詳細を取得するための HTTP アクション

API センターから API の詳細を取得する HTTP GET 要求を作成するワークフロー ステップを追加します。

  1. アクションの追加を選択します。
  2. 検索ボックスに「HTTP」と入力します。
  3. [HTTP][HTTP] を選択します。
  4. [HTTP] ペインで次の操作を行います。
    1. [URI] に「https://management.azure.com/」と入力します (末尾のスラッシュを含みます)。 スラッシュの後に「/」と入力し、[動的コンテンツを挿入する] を選択して、変数 subjectvarversionvar をこの順序で選択します。
    2. [メソッド][GET] を選択します。
    3. [詳細パラメーター] で、[認証] を選択します。
      1. [認証の種類][マネージド ID] を選択します。
      2. [マネージド ID] で、[システム割り当てマネージド ID] を選択します。
      3. [対象ユーザー] に「https://management.azure.com/」と入力します。

ポータルの HTTP GET 要求アクションのスクリーンショット。

手順 4.5. JSON の解析アクション

上記の HTTP 要求の JSON 出力を解析するワークフロー ステップを追加します。

  1. アクションの追加を選択します。
  2. 検索ボックスに「"JSON の解析"」と入力します。
  3. [データ操作] で、[JSON の解析] を選択します。
  4. [JSON の解析] ペインで次の操作を行います。
    1. [コンテンツ] に「/」と入力し、[動的コンテンツを挿入する] を選択します。
    2. [HTTP][本文] を選択します。
    3. [スキーマ] で、次のように入力します。
      {
          "type": "object",
          "properties": {
              "type": {
                  "type": "string"
              },
              "properties": {
                  "type": "object",
                  "properties": {
                      "title": {
                          "type": "string"
                      },
                      "kind": {
                          "type": "string"
                      },
                      "description": {
                          "type": "string"
                      },
                      "lifecycleStage": {
                          "type": "string"
                      },
                      "externalDocumentation": {
                          "type": "array"
                      },
                      "contacts": {
                          "type": "array"
                      },
                      "customProperties": {
                          "type": "object",
                          "properties": {}
                      }
                  }
              },
              "id": {
                  "type": "string"
              },
              "name": {
                  "type": "string"
              },
              "systemData": {
                  "type": "object",
                  "properties": {
                      "createdAt": {
                          "type": "string"
                      },
                      "lastModifiedAt": {
                          "type": "string"
                      }
                  }
              }
          }
      }
      

ポータルでの JSON の解析アクションのスクリーンショット。

手順 4.6. アダプティブ カードを Teams に投稿する

通知をアダプティブ カードとして Microsoft Teams に投稿するワークフロー ステップを追加します。

  1. アクションの追加を選択します。

  2. 検索ボックスに「Teams」と入力します。

  3. [Microsoft Teams] で、[アダプティブ カードを投稿して応答を待機する] を選択します。 プロンプトが表示されたら、Microsoft Teams アカウントにサインインします。

  4. [アダプティブ カードを投稿して応答を待機する] ペインで次の操作を行います。

    1. [投稿者] で、[フロー ボット] を選択します。
    2. [投稿先] で、Teams のセットアップに適切なオプションを選択します。 テストでは、[フロー ボットとのチャット] を選択できます。
    3. [メッセージ] に、アダプティブ カード用の次のテキストを入力します。 必要に応じてテキストを変更します。
      {
          "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
          "type": "AdaptiveCard",
          "version": "1.4",
          "body": [
              {
                  "type": "TextBlock",
                  "text": "Hi API Admin,",
                  "weight": "Bolder",
                  "size": "Medium"
              },
              {
                  "type": "TextBlock",
                  "text": "A new API has been registered.",
                  "wrap": true
              },
              {
                  "type": "TextBlock",
                  "text": "API Title: **{{apiTitle}}**",
                  "wrap": true
              },
              {
                  "type": "TextBlock",
                  "text": "Please provide the status for this API:",
                  "wrap": true
              },
              {
                  "type": "Input.ChoiceSet",
                  "id": "apiStatus",
                  "style": "expanded",
                  "choices": [
                      {
                          "title": "New",
                          "value": "new"
                      },
                      {
                          "title": "Pending",
                          "value": "pending"
                      },
                      {
                          "title": "Approved",
                          "value": "approved"
                      }
                  ],
                  "isRequired": true,
                  "errorMessage": "Please select a status."
              }
          ],
          "actions": [
              {
                  "type": "Action.Submit",
                  "title": "Submit"
              }
          ]
      }
      
      
  5. メッセージ内のテキスト {{apiTitle}} を選択して削除します。 「/」と入力し、[動的コンテンツを挿入する] を選択します。 [JSON の解析][本文のタイトル] を選択して、選択したテキストを動的コンテンツに置き換えます。

  6. [受信者] に、通知を受信する個人のメール アドレスを入力します。

ポータルの

手順 4.7. 変数の初期化 - statusvar

Teams アダプティブ カードから返された API の状態の値を格納する変数の値を初期化するワークフロー ステップを追加します。

  1. アクションの追加を選択します。
  2. 検索ボックスに「"変数"」と入力します。
  3. [変数] で、[変数を初期化する ] を選択します。
  4. [変数を初期化する ] ペインで次の操作を行います。
    1. [名前] に「statusvar」と入力します。
    2. [型][文字列] を選択します。
    3. [値]@body('Post_adaptive_card_and_wait_for_a_response')?['data']?['apiStatus'] と入力します。

ポータルで statusvar 変数を初期化しているスクリーンショット。

手順 4.8. HTTP アクション - Azure API Center で API プロパティを更新する

API センターで API プロパティを更新するための HTTP PUT 要求を作成するワークフロー ステップを追加します。

  1. アクションの追加を選択します。
  2. 検索ボックスに「HTTP」と入力します。
  3. [HTTP][HTTP] を選択します。
  4. [HTTP] ペインで次の操作を行います。
    1. [URI] に「https://management.azure.com/」と入力します (末尾のスラッシュを含みます)。 スラッシュの後に「/」と入力し、[動的コンテンツを挿入する] を選択して、変数 subjectvarversionvar をこの順序で選択します。
    2. [メソッド] で、[PUT] を選択します。
    3. [本文] で、次のように入力します。
      {
          "properties": {
          "customProperties": {
              "api-status": "@variables('statusvar')"
          },
          "title": "@body('Parse_JSON')?['properties']?['title']",
          "description": "@body('Parse_JSON')?['properties']?['description']",
          "lifecycleStage": "@body('Parse_JSON')?['properties']?['lifecycleStage']",
          "kind": "@body('Parse_JSON')?['properties']?['kind']"
          }
      }
      
    4. [詳細パラメーター] で、[認証] を選択します。
      1. [認証の種類][マネージド ID] を選択します。
      2. [マネージド ID] で、[システム割り当てマネージド ID] を選択します。
      3. [対象ユーザー] に「https://management.azure.com/」と入力します。

ポータルの HTTP PUT 要求アクションのスクリーンショット。

手順 4.9. ワークフローを保存します

[ロジック アプリ デザイナー] でワークフローを [保存] します。 ワークフローが完了すると、次の画像のようになります。

ポータルのロジック アプリ デザイナーでワークフローを完了するスクリーンショット。

イベント サブスクリプションが API センターで正常にプロビジョニングされていることを確認します。 イベント サブスクリプションがプロビジョニングされるまでに数分かかる場合があります。

  1. Azure portal で、API センターに移動します。
  2. 左側のメニューで、[イベント]>[イベント サブスクリプション] を選択します。
  3. ロジック アプリが [名前] の下に一覧表示されており、[エンドポイント]Webhook であることを確認します。

ポータルでのロジック アプリのイベント サブスクリプションのスクリーンショット。

ステップ 5: イベント サブスクリプションをテストする

API センターに API を登録して、イベント サブスクリプションをテストします。

  1. Azure portal で、API センターに移動します。

  2. API センターに API を登録します。 API が登録されたら、次の操作を行います。

    • イベント サブスクリプションにより、ロジック アプリ ワークフローがトリガーされます。
    • ロジック アプリ ワークフローが実行され、Microsoft Teams の個人に通知が送信されます。
  3. Microsoft Teams で、アダプティブ カードを表示し、API の状態を選択して、[送信] を選択します。 Microsoft Teams のアダプティブ カードのスクリーンショット。

    ロジック アプリ ワークフローは、API センターの API 登録の api-status プロパティを更新します。

  4. API センターで API の詳細を表示し、カスタム api-status プロパティの更新された値を確認します。

    ポータルでの更新された API 登録のスクリーンショット。

ロジック アプリの実行履歴を表示する

ロジック アプリの実行に関する詳細を取得し、問題のトラブルシューティングを行うには:

  1. Azure portal で、ロジック アプリに移動します。
  2. 左側のメニューにある [開発ツール] で、[実行履歴] を選択します。
  3. 実行を選択すると、各ステップの詳細が表示されます。