2018年6月26日火曜日

Logic Apps の実行履歴を取得する

ふと気になることがあって、Logic Apps の実行履歴を取得して直近で処理された日時がわかるかな、というのを試してみました。

Logic Apps の実行履歴を取得するには、管理用 REST API を利用する必要があります。Workflow Get の API を利用することで、指定した Logic Apps の実行履歴が取得できます・・・が、この際に必要なパラメータに runName というのがあるのですが、これの情報を簡単に取得する方法が用意されておらず、結果としては Get ではなく List の API を利用することで履歴取得を行うことになります。

今回作成した LogicFlow は以下のものです。

image

最初に API を利用する際に必要な Bearer Token を取得しています。こちらについては GIthub にサンプルとなる LogicFlow を用意してあるのと、過去のエントリで扱っていますので参考にしてください。

Bearer Token を用いて管理用 API にアクセスします。

image

List API へのアクセス URL は

https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Logic/workflows/{workflowName}/runs?api-version=2016-06-01

になります。サブスクリプション ID とリソースグループ名、取得したい LogicFlow 名を含めて GET で呼び出します。

image

API を無事に呼び出せると、上記のような結果が返却されます。最初に書いた runName ですが、この値の中の name がそれに該当します。この値は実行ごとに設定されるもので、この履歴を取得しない限り値がわからないのです・・・。

image

返却される履歴には、実行中のものも含まれます。status が Running となっていることで、実行中だというのが判別できます。また、開始時刻や終了時刻、終了したのが反映された時刻なども取得できています。

image

場合によってはこのように、実行失敗した結果も取得できます。この場合は、error として、エラーコードとメッセージが含まれています。

この API を利用することで、LogicFlow がいつ実行されてその結果はどうだったのか、また結果を取得するための URL も値として返却されていますので、ポータル上で確認できる情報はすべてこれを起点にして確認が可能です。

0 件のコメント:

コメントを投稿