Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerAnypoint Code Builder IDE 内でインテグレーションまたは実装が正常に構築されたら、デスクトップ IDE またはクラウド IDE を使用しているかどうかにかかわらず、アプリケーションがローカル開発環境にデプロイされます。
通常、デプロイ済みのアプリケーションでフローの実行をトリガーするように HTTP 用 Anypoint Connector (HTTP Connector) の HTTP リスナーを設定します。フローは、Anypoint Code Builder の組み込みターミナルまたは Thunder Client などの VS Code 拡張機能からローカルにトリガーできます。
IDE の Anypoint Code Builder 入門を完了します。
HTTP リスナー (<http:listener/>
) を使用するインテグレーションまたは実装プロジェクトをクラウド IDE またはデスクトップ IDE で使用できることを確認します。
プロジェクトを作成するには、インテグレーションの作成 or API の実装を参照するか、チュートリアルAmerican Flights アプリケーションの開発の手順を実行してください。
インテグレーションや実装を構築してデプロイメントプロセス中に IDE 内にデプロイする場合、HTTP リスナーをトリガーするために使用する URL は、リスナーが、API 仕様から生成されたスキャフォールディング済みインターフェースの設定 XML 内にあるか、スキャフォールディング済みインターフェースを実装しない設定 XML ファイル内にあるかによって異なります。
通常、HTTP リスナーを使用するアプリケーションの場合、ホストを 0.0.0.0
に設定し、ポートを 8081
に設定します。ポート 8081
が別のアプリケーションで使用されている場合、8082
などの同様のポートを使用できます。
スキャフォールディング済みインターフェースが含まれない設定 XML 内でフローをトリガーするには、IDE のターミナルで次のような URL を使用します。
http://localhost:8081/mypath
ポートとホストは <http:listener-connection/>
要素で定義され、エンドポイントは <http:listener/>
要素の path
属性で定義されます。
<http:listener-config name="inbound-request"
doc:name="Listener Config" doc:id="b5c62f">
<http:listener-connection host="0.0.0.0" port="8081"/>
</http:listener-config>
<flow name="myFlow">
<http:listener path="mypath" config-ref="inbound-request" doc:name="HTTP /flights" />
...
</flow>
スキャフォールディング済みインターフェース内のリスナーからフローをトリガーするには、IDE のターミナルで次のような URL を使用します。
http://localhost:8081/api/my-endpoint
例の /api/my-endpoint
に注意してください。この場合、エンドポイントはインターフェースの <flow/>
要素の name
属性内で定義され、api
はインターフェースの HTTP リスナーで定義されます。
たとえば、スキャフォールディング済みインターフェースのフローでフロー (getFlights
) を参照しているとします。
<flow name="get:\flights:american-flights-api-config">
<flow-ref name="getFlights"/>
<logger level="INFO" message="get:\flights:american-flights-api-config" />
</flow>
また、getFlights
フローは実装の XML 設定ファイル内に存在するとします。
<flow name="getFlights" >
<set-payload value="Hello Flights!" doc:name="Set payload" doc:id="gwdsmi" />
<logger doc:name="Logger" doc:id="dnitvb" message="#[payload]"/>
</flow>
このフローをトリガーする URL では、エンドポイントとして flights
が使用されます。
http://localhost:8081/api/flights
URL の /flights
エンドポイントの前に /api
が追加され、インターフェースの <http:listener/>
を介して要求が実行されます。一般に、リスナーは次の例のようにルーターの前に配置されます。
<apikit:config name="american-flight-api-config"
api="resource::bc64acc7-41ad-43b7-9e0a-092182b03271:American-Flight-API:1.0.0:raml:zip:american-flight-api.raml"
outboundHeadersMapName="outboundHeaders"
httpStatusVarName="httpStatus" />
<flow name="american-flight-api-main">
<http:listener config-ref="inbound-request" path="/api/*"> (1)
<http:response statusCode="#[vars.httpStatus default 200]">
<http:headers>#[vars.outboundHeaders default {}]</http:headers>
</http:response>
<http:error-response statusCode="#[vars.httpStatus default 500]">
<http:body>#[payload]</http:body>
<http:headers>#[vars.outboundHeaders default {}]</http:headers>
</http:error-response>
</http:listener>
<apikit:router config-ref="american-flight-api-config" /> (2)
...
</flow>
1 | リスナー (<http:listener/> ) 内で属性 path="/api/*" はスキャフォールディングプロセス中に自動的に設定されます。 |
2 | ルーター (<apikit:router/> ) は設定 XML 内のスキャフォールディング済みインターフェースのリスナーの後に配置されます。 |
Anypoint Code Builder のターミナルを使用して、IDE 内でローカルにデプロイされたインテグレーションまたは実装プロジェクトの HTTP リスナーを介してフローをトリガーします。この手順は、デスクトップ IDE またはクラウド IDE 内の Mule アプリケーションを対象とします。
この手順の例は、IDE のターミナルから curl コマンドを使用してフローをトリガーする方法を示しています。また、VS Code のサードパーティ拡張機能である Thunder Client を使用して、同じ URL でフローをトリガーすることもできます。セキュリティ上の理由で、Advanced REST クライアントや Postman などの外部 REST クライアントでは、クラウド IDE にデプロイされたプロジェクトに要求を送信することはできません。
|
フローのトリガーを試行する前にHTTP リスナーからフローをトリガーするための URLを確認し、始める前にの前提条件を満たしていることを確認します。
Mule アプリケーションを起動する前に、リスナーへの接続が成功していることを確認します。
設定 XML で、HTTP リスナー設定 (<http:listener-config/>
) の上にある [Test Connection (接続をテスト)] をクリックします。
テストが成功すると、「Connection is valid (接続は有効です)」というメッセージが表示されます。
接続に失敗した場合は、接続が失敗したことを示すエラーメッセージが表示されます。[Test Connection (接続をテスト)] をクリックしたときにアプリケーションが実行中の場合、エラーメッセージ「Invalid Connection Got status code: 500 when trying to resolve a Mule Runtime operation. Reason: 'Internal Server Error.
(Mule Runtime 操作を解決しようとしたときに、無効な接続で状況コード 500 を取得しました。理由: 内部サーバーエラー。)」が表示されます。
[Run and Debug (実行とデバッグ)] パネルを開きます。
アクティビティバーの (Run and Debug (実行とデバッグ)) アイコンをクリックする。
キーボードショートカットを使用する。
Mac: Cmd+Shift+d
Windows: Ctrl+Shift+d
デスクトップ IDE で、[View (表示)] > [Run (実行)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[View (表示)] > [Run (実行)] を選択する。
[Debug Mule Application (Mule アプリケーションをデバッグ)] の (Start Debugging (F5) (デバッグを開始 (F5))) アイコンをクリックします。
または、[Start Debugging (F5) (デバッグを開始 (F5))] アイコンが存在しない場合は、次の手順を実行します。
[Run and Debug (実行とデバッグ)] をクリックします。
[Select debugger (デバッガーを選択)] ドロップダウンメニューが表示された場合は、[Mule XML Debugger (Mule XML デバッガー)] を選択してデバッグセッションを開始します。
アプリケーションが正常にデプロイされると、出力パネルに DEPLOYED
ログメッセージが表示されます。
********************************************************************** * - - + DOMAIN + - - * - - + STATUS + - - * ********************************************************************** * default * DEPLOYED * **********************************************************************
IDE から、コンソールのターミナルウィンドウを開きます。
デスクトップ IDE で、[View (表示)] > [Terminal (ターミナル)] を選択する。
クラウド IDE で、 (メニュー) アイコンをクリックし、[Terminal (ターミナル)] > [New Terminal (新規ターミナル)] を選択する。
いずれかの IDE で、Ctrl キーを押してからバッククォートキー (`) を押す。
IDE のターミナルで、使用するシェルの名前 (PowerShell (Windows 用)、Bash (bash
)、Z shell (Mac 用の zsh
) など) をクリックします。
または、ターミナルで [+] アイコンをクリックして新しいコマンドプロンプトを開きます。
コマンドプロンプトで curl
コマンドを入力してフローをトリガーします。
インターフェース内に存在しない HTTP リスナーからフローをトリガーするには、次のような URL で curl
を使用します。
$ curl localhost:8081/mypath
0.0.0.0
の代わりに localhost
を使用します。エンドポイントのトリガーについての詳細を参照してください。
成功したら、コマンドによって応答が返されます。
スキャフォールディング済みインターフェースに存在する HTTP リスナーからフローをトリガーするには、次のような URL で curl
を使用します。
$ curl http://localhost:8081/api/mypath2
0.0.0.0
の代わりに localhost
を使用して、ルーターの前のリスナーパス
(ほとんどのスキャフォールディング済みインターフェースで api
) とエンドポイント (mypath2
など) を URL に追加します。エンドポイントのトリガーについての詳細を参照してください。