4
3

More than 1 year has passed since last update.

Power Automate クラウド フローの実行履歴を Log Analytics ワークスペースにインポートする (準備編)

Last updated at Posted at 2022-07-17

はじめに

Power Automate クラウド フローでエラーが発生したら、すぐに何らかのアクションを実施したいんですが、標準機能では難しいです。
監視・通知の標準機能については、以下の投稿をご参考ください。

フロー自体でエラーハンドリングを施してエラーが発生したら通知するみたいに実装すれば叶うでしょうが、これをひとつひとつのフローに実装するのはとても面倒 (数個なら許容できるかな) ですし、監視そのものを一元管理したいところです。

Azure Monitor を利用すれば、そこににログを流し込み、アラート機能を用いれば、エラーが発生した際にすぐに何らかのアクションを実施することができます。

よって、ここでは Logic Apps で Power Automate クラウド フローの実行履歴を収集して Azure Log Analytics ワークスペースにインポートする方法を検証してみました。

image.png

Power Automate クラウド フローに所有者を追加する

Power Automate Flow API には、サインインしたユーザーとしてアプリケーションがアクセスしますので、クラウド フローの情報と実行履歴を取得するために、API にアクセスするユーザーを対象のクラウド フローに所有者として追加しておきます。

Azure AD にアプリケーションを登録する

Azure AD にアプリケーションを登録します。そして、そのアプリケーションの「アプリケーション (クライアント) ID」、「クライアント シークレット」をメモっておきます。

API のアクセス許可

Power Automate Flow API を呼び出すためのアクセス許可を付与します。

[管理] カテゴリ配下の [API のアクセス許可] をクリックして [アクセス許可の追加] をクリックします。そして、「Microsoft API」から「Flow Service」をクリックします。

image.png

「委任されたアクセス許可」、「Flows.Manage.All」と順に選択して、[アクセス許可の追加] をクリックして追加します。

image.png

リダイレクト URI

Web のリダイレクト URI は、カスタムコネクタを保存した後に表示される「リダイレクト URL」をコピーして追加します。

[管理] カテゴリ配下の [認証] をクリックして、以下の Web のリダイレクト URI (カスタムコネクタ) を追加します。

image.png

Postman で動作確認

アプリケーションの登録が終わったら、Postman などで Power Automate Flow API にアクセスできるか確認すると良いでしょう。

Power Automate クラウド フローの実行履歴を取得するために、以下の 2 つの API にアクセスします。

  • フローの情報を取得
フローの情報を取得(GET)
https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/environments/{environment_name}/flows?api-version=2016-11-01

{environment_name} は、Power Platform 管理センターを開き、対象の環境の詳細にある「環境 ID」の値 (GUID) です。

image.png

  • フローの実行履歴を取得
フローの実行履歴を取得(GET)
https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/environments/{environment_name}/flows/{flow_name}/runs?api-version=2016-11-01

{flow_name} は、前述した「フローの情報を取得」のレスポンス本文から確認することができます。下図の赤枠で囲った name プロパティ値 (GUID) です。

image.png

Postman を使って Power Automate Flow API にアクセスする手順については、以下の投稿をご参考ください。

カスタム コネクタを作成する

Power Automate Flow API を呼び出すためのカスタム コネクタを作成します。

1. 全般

コネクタ名を入力した後、「説明」にコネクタの概要を、「ホスト」に api.flow.microsoft.com を入力します。

image.png

2. セキュリティ

Azure AD に追加したアプリケーションの情報を入力します。

  • 認証タイプ
項目 設定値
API によって実装される認証の種類を選びます OAuth 2.0
  • OAuth 2.0
項目 設定値
ID プロバイダー Azure Active Directory
Client Id アプリケーション (クライアント) ID
Client secret クライアント シークレット値
Login URL https://login.windows.net (既定値)
Tenant ID common (既定値)
Resource URL https://service.flow.microsoft.com/
Enable on-behalf-of-login false (既定値)
スコープ 空欄
リダイレクト URL [コネクタの更新] をクリックして保存すると表示される
→ URL をコピーして、Azure AD アプリケーションの「リダイレクト URI」に追加すること

image.png

すべて入力し終わったら、[コネクタの更新] をクリックしてカスタム コネクタを保存します。その際、資格情報を求められる (場合がある) ので、「Power Automate クラウド フローの所有者に追加」したアカウントでサインインします。

3. 定義

Power Automate Flow API から情報を取得するための以下の 2 つのアクションを定義します。
[新しいアクション] をクリックして、アクションを追加していきます。

アクション : Power Automate クラウド フローの情報を取得

  • 全般

[全般] の「概要」、「説明」、「操作 ID」を入力します。

image.png

  • 要求

[要求] にある [サンプルからのインポート] をクリックして、「動詞」、「URL」を入力した後、[インポート] をクリックします。

image.png

項目 設定値
動詞 GET
URL https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/environments/{environment_name}/flows?api-version=2016-11-01&$filter=XXX&$orderby=xxx&$skiptoken=xxx

インポート後、パラメーターを編集するには、そのパラメーターの [編集] をクリックします。

image.png

各パラメーターを以下のように編集します。
編集し終わったら、[戻る] をクリックして元の画面に戻ります。

名前 説明
※適当に
概要
※適当に
既定値 必須 表示 場所
environment_name Power Platform の環境名 Environment Name はい none パス
api-version API バージョン API version 2016-11-01 はい none クエリ
$filter 抽出条件 Filter いいえ advanced クエリ
$orderby 表示順 Order by いいえ advanced クエリ
$skiptoken スキップトークン Skip token いいえ advanced クエリ

※「種類」、「書式」、「ドロップダウンリストの種類」は既定値のまま

image.png

  • 応答

[応答] にある [既定の応答を追加する] をクリックして、「本文」をを入力した後、[インポート] をクリックします。
「本文」には、Postman などで動作確認した時に受け取ったレスポンス本文を (サンプルとして) コピー & ペーストすると良いでしょう。

なお、Power Automate Flow API は、1 リクエストで最大 50 レコードを返します。50 レコードを超えた分については、nextLink プロパティにそのレコード (こちらも最大 50 レコード) を取得するための URL が記載されるので、もしコピー & ペーストしたレスポンス本文に nextLink プロパティが含まれていない場合は、手入力で追加する (value プロパティと同じ階層に追加) と良いでしょう。

image.png

インポート後、[応答] にある [default] をクリックすると、インポートしたサンプルから読み取った内容が下図のように表示されます。各スキーマを編集する必要がある場合は、要求の時と同じような操作で編集画面に遷移できます。

image.png

アクション : Power Automate クラウド フローの実行履歴を取得

「アクション : Power Automate クラウド フローの情報を取得」と同じように操作します。

  • 全般

[全般] の「概要」、「説明」、「操作 ID」を入力します。

image.png

  • 要求

[要求] にある [サンプルからのインポート] をクリックして、「動詞」、「URL」を入力した後、[インポート] をクリックします。

image.png

項目 設定値
動詞 GET
URL https://api.flow.microsoft.com/providers/Microsoft.ProcessSimple/environments/{environment_name}/flows/{flow_name}/runs?api-version=2016-11-01&$filter=XXX&$orderby=xxx&$skiptoken=xxx

インポート後、パラメーターを編集するには、そのパラメーターの [編集] をクリックします。
各パラメーターを以下のように編集します。
編集し終わったら、[戻る] をクリックして元の画面に戻ります。

名前 説明
※適当に
概要
※適当に
既定値 必須 表示 場所
environment_name Power Platform の環境名 Environment Name はい none パス
flow_name Flow 名 Flow name はい none パス
api-version API バージョン API version 2016-11-01 はい none クエリ
$filter 抽出条件 Filter いいえ advanced クエリ
$orderby 表示順 Order by いいえ advanced クエリ
$skiptoken スキップトークン Skip token いいえ advanced クエリ

※「種類」、「書式」、「ドロップダウンリストの種類」は既定値のまま

  • 応答

[応答] にある [既定の応答を追加する] をクリックして、「本文」をを入力した後、[インポート] をクリックします。
こちらも「本文」には、Postman などで動作確認した時に受け取ったレスポンス本文を (サンプルとして) コピー & ペースト、nextLink プロパティが含まれていない場合は、手入力で追加 (value プロパティと同じ階層に追加) しましょう。

image.png

ちょっとひと工夫...

[応答] を定義していると気づくと思いますが、同じ名前のスキーマがいくつもあって、ロジックアプリを作成する際にどのスキーマを使えば良いのか迷うことがあると思います。

image.png

この対策として、Swagger エディターを開き、プロパティの description 属性に「印 (下図ではAAA と印を付けてみた)」を付けておきます。

image.png

この対策により、これが目印となって迷わずスキーマを選択できると思います。

image.png

まとめ

次回の投稿では、ここで作成したカスタムコネクタを使って Power Automate クラウド フローの実行履歴を収集して Azure Log Analytics ワークスペースにインポートする実装について説明します。

つづく。

Appendix

Power Automate 関連の新しい URL *.powerautomate.com がリリースされます。今後は現在の *.flow.microsoft.com にアクセスすると、新しいものにリダイレクトされます。
※リダイレクトは 2022 年 6 ~ 7 月に順次開始される予定です。
※リダイレクトの終了期限は執筆時点では公開されておりません。

なお、今回使用した Power Automate Flow API もリダイレクト対象となります。

リダイレクトの終了が正式に決まっていないので、それまでは現在の URL は利用できるだろうと思われます。

4
3
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3