進行中のベータリリース​: クラウド IDE は進行中のベータリリースです​。ベータ状態での Anypoint Code Builder の使用には、IDE で入手できる、該当するベータサービス契約条件が適用されます。

自動検出を使用した要求の追跡

Mule アプリケーションで API 自動検出を設定して、アプリケーション内のエンドポイントへの要求などの重要なメトリクスを API Manager に表示します。API Manager は Anypoint Platform の一部です。

API Manager で Mule アプリケーションの要求メトリクスを表示

Mule アプリケーションの自動検出設定には、Mule ゲートウェイランタイムで実行される API Manager の API からの API インスタンス ID が必要です。また、アプリケーションには API Manager で API に接続するための Anypoint Platform ログイン情報 (クライアント ID とシークレット) が必要です。

Mule ゲートウェイ API インスタンスのその他の重要な使用法については、​『API インスタンスの管理』 and 『Mule Gateway ポリシーの概要』​を参照してください。

始める前に

Mule アプリケーションの自動検出設定の API インスタンス ID を取得するには、Mule ゲートウェイランタイムで実行される API Manager の API にアクセスできる必要があります。または、API Manager ドキュメントの『Mule ゲートウェイ API インスタンスの追加』の手順に従って API を作成できます。

API Manager の API は、Mule アプリケーションのエンドポイントを定義する Anypoint Exchange の API 仕様に関連付けられています。エンドポイントを定義する API 仕様の例、およびエンドポイントを実装する Mule アプリケーションの例については、​​を参照してください。 API 仕様の作成に関する案内については、以下を参照してください。

API 仕様を Exchange にパブリッシュするための案内については、以下を参照してください。

Mule アプリケーションで API 自動検出をセットアップする

API Manager の Mule ゲートウェイランタイムで実行される API に要求データを送信するように Mule アプリケーションを設定します。API は、API Manager のグラフでこのデータを追跡します。

Mule アプリケーションの自動検出設定には、API インスタンス ID を参照するグローバル要素 (​<api-gateway:discovery/>​) と、Mule アプリケーションの Mule Runtime Engine が API Manager で API の Anypoint Platform ビジネスグループまたは環境に接続できるようにするログイン情報 (クライアント ID とシークレット) が必要です。

自動検出をセットアップする手順は、次のとおりです。

  1. 始める前に​の前提条件を満たします。

  2. Anypoint Platform の [Access Management (アクセス管理)] ( USLeaving the Site​、 EULeaving the Site​) から、ビジネスグループのクライアント ID とシークレットを取得します。

  3. API Manager で API インスタンスから API インスタンス ID を取得します。

  4. Anypoint Code Builder の Mule アプリケーションで、API インスタンス ID を使用してアプリケーションを API インスタンスとペアリングします。

    1. Mule アプリケーションの XML エディターで、アプリケーションの ​<flow/>​ 要素の上に ​<api-gateway:autodiscovery/>​ 要素を追加します。次に例を示します。

      <api-gateway:autodiscovery apiId="YOUR_API_ID_HERE" flowRef="currentTimeFlow" doc:name="Autodiscovery" />
      xml

      より詳しいコンテキストについては、​例: Mule アプリケーション​の例を参照してください。

    2. API インスタンス ID を ​apiID​ 値として貼り付けます。次に例を示します。

      <api-gateway:autodiscovery apiId="123456" flowRef="currentTimeFlow" doc:name="Autodiscovery" />
      xml
  5. Anypoint Code Builder で、ビジネスグループのクライアント ID とクライアントシークレットを ​[Settings (設定)]​ タブの Mule Runtime 引数に追加します。

    1. [Settings (設定)]​ タブを開きます。

    2. [Settings (設定)]​ タブで、​[Mule] › [Runtime: Default Arguments (ランタイム: デフォルト引数)]​ を見つけます。

    3. テキスト項目で、クライアント ID とシークレット引数を既存の引数の末尾に追加します。次に例を示します。

      -M-Danypoint.platform.client_id=999abcde1f888e9h9aaa00ff5a5b03c5 -M-Danypoint.platform.client_secret=abc0d1234e5a4ab321A000B2033D4E56

      例のモック値をクライアント ID とシークレットに置き換えます。

  6. アプリケーションを実行して、ビルドログで次の情報をチェックして、API が接続されていることを確認します。

    • クライアント ID とクライアントシークレットが API Manager に対して正常に検証されている。

    • 基盤となる ​GateKeeper​ が ​FLEXIBLE​ モードで使用可能 (ブロック解除済み) である。

    • API Gateway 拡張機能が ​STANDALONE​ になっている。

  7. API インスタンスによって追跡されるアプリケーションのエンドポイントに要求を送信します。

    詳細は、『開発環境でのフローのトリガー』を参照してください。

  8. API Manager で、API インスタンスが登録済み (アクティブ) で、API Manager でメトリクスが生成されていることを確認します。

    自動検出データを含む API Manager の API

API 自動検出についてテストされた例を次に示します。

  • 例: OAS 仕様​:

    テストには、Design Center での仕様の作成、Exchange への仕様のパブリッシュ、Exchange で仕様に関連付けられた API Manager での Mule ゲートウェイ API インスタンスの作成が含まれます。

  • 例: Mule アプリケーション

    テストには、API Manager からの ​apiID​ 値を含む ​<api-gateway:autodiscovery/>​ 要素の追加、Anypoint Code Builder 設定の Mule Runtime 引数へのクライアント ID とシークレットの追加、デバッグモードでのアプリケーションの実行によるローカルでのアプリケーションのデプロイ、アプリケーションでの定義済みエンドポイントへの要求、API Manager で関連付けられた Mule ゲートウェイ API インスタンスが​アクティブ​であることの確認、要求によってインスタンスのグラフにデータ (重要なメトリクス) が生成されることの確認が含まれます。

例: OAS 仕様

次の OAS 仕様では、​Mule アプリケーションの例​の 1 つのエンドポイントを定義します。

openapi: "3.0.0" (1)
info:
  version: 1.0.0
  title: my-autodiscovery-api
servers:
  - url: https://my-autodiscovery-app.us-e2.cloudhub.io
paths:
  /current-time: (2)
    get:
      responses:
        "200":
          description: my description here.
          content:
            application/json:
              schema:
                type: object
                properties:
                  current-time:
                    type: string
              example:
                current-time: "2024-08-05 14:56:12"  (3)
yaml
1 OAS 3.0 仕様
2 /current-time​ エンドポイント定義
3 書式設定された日時値の例

例: Mule アプリケーション

  <http:listener-config name="HTTP_Listener_config" > (1)
    <http:listener-connection host="0.0.0.0" port="8081" />
  </http:listener-config>

<api-gateway:autodiscovery apiId="YOUR_API_ID_HERE" flowRef="currentTimeFlow" doc:name="Autodiscovery" /> (2)

  <flow name="currentTimeFlow"> (3)
        <http:listener path="/current-time" config-ref="HTTP_Listener_config" doc:name="Listener" doc:id="bce0d0"/> (4)
        <ee:transform doc:name="Transform" doc:id="ahlupg" > (5)
            <ee:message>
                <ee:set-payload >
                <![CDATA[#[%dw 2.0
output application/json
---
{
	"current-time": now() as String {format: "yyyy-MM-dd hh:mm:ss"}
}]]]>
            </ee:set-payload>
            </ee:message>
        </ee:transform>
        <logger doc:name="Logger" doc:id="bhcobk" message="#[payload]"/> (6)
  </flow>
xml
1 HTTP リスナー接続設定例
2 フロー ​currentTimeFlow​ を参照する自動検出設定

このアプリケーションを試す場合は、​YOUR_API_ID_HERE​ を、​OAS 仕様の例​に関連付けられた Mule ゲートウェイ API インスタンスの ​apiID​ 値に置き換えます。

3 フロー ​currentTimeFlow
4 エンドポイント設定 ​path="/current-time"​ の HTTP リスナー

このエンドポイントは、​OAS 仕様の例​で定義されたエンドポイントの名前と一致します。

5 DataWeave を使用して現在時刻を指定された形式で取得する Transform Message コンポーネント

この形式は、​OAS 仕様の例​で定義された形式と一致します。

6 アプリケーション実行中の ​http://localhost:8081/current-timeLeaving the Site​ への要求時に現在時刻 (​payload​ 内) を出力する Logger コンポーネント