前回の記事で Power Platform のコネクタについて説明しました。その中でコネクタの「トリガー」と「アクション」について解説しましたが、今回はこの2つについてさらに詳しく解説したいと思います。
トリガー
トリガーとは、Power Automate のクラウド フロー(クラウド内で自動実行を行う)を開始するイベントのことです。たとえば、誰かからのメールを受信したときに、Microsoft Teams で通知を受け取りたいとします。この場合、メールの受信が Temas に通知を送信するフローを開始するトリガーになります。
多くのコネクタには定義済みのトリガーが用意されており、すぐに利用できます。例えば法人向け Microsoft 365 でメールを受信する Office 365 Outlook へのコネクタでは、以下のようなトリガーが用意されています。
Office 365 Outlook コネクタに含まれるすべてのトリガーの一覧は、以下のページを参照してください。
Power Automate で利用可能なコネクタとそのトリガーの一覧は、以下のページを参照してください。
トリガーはフローの実行開始の方法により、3つの種類があります。
自動化したクラウド フローのトリガー
自動化したクラウド フローのトリガーは、サービスやアプリケーションに接続しているコネクタで、イベントを発生させる条件を設定します。条件とはたとえば「特定の送信者からのメールを受信したとき」のようなものです。
ユーザーの操作などによってサービスやアプリケーションで条件が満たされると、イベントが発生しコネクタを通じて Power Automate に通知が送られ、フローが開始されます。
インスタント クラウド フローのトリガー
インスタント クラウド フローでは、Power Apps 内のボタンなどをユーザーが直接操作すると Power Automate に通知が送られ、フローが開始されます。
Power Apps と連携するフローで利用する他、フローの動作を手動で確認したい場合にも利用できます。
スケジュール済みクラウド フローのトリガー
開始をする日時(日付と時刻)および実行の頻度(毎月/毎日/毎時など)を指定すると、そのタイミングで自動的に Power Automate に通知が送られ、フローが開始されます。
毎日、毎週など繰り返し同じタイミングで処理を自動実行したい場合に利用します。
トリガーの編集
Power Automate のフローでは、必ずフローの先頭にトリガーが必要です。
新規にフローを作成する場合はまずトリガーを設定する必要があります。
また既存のフローでトリガーを編集(変更)する場合、既存のトリガーを削除すると新しいトリガーを選択するよう求められます。
例えばこのフローから先頭のトリガーを削除すると……
以下のように自動的に [トリガーの追加] が挿入されます。
このようにトリガーは Power Automate のクラウド フローではその先頭で必須となる要素です。フローをどのように(どのような場合に、どのようなタイミングで)実行させたいのかに合わせて、適切なトリガーを選択してください。
トリガーの実行間隔
前回の記事で説明したように、トリガーには以下の2種類があります。
- ポーリング:コネクタ側から一定間隔でサービスやアプリケーションに問い合わせを行う方法
- プッシュ:コネクタがサービスやアプリケーションに(そのような機能を持っていれば)通知を行うように依頼し、通知を受け取る方法
ポーリング トリガーはコネクタ側から一定間隔で問い合わせを行います。トリガーがプッシュかポーリングかを確認するには、トリガーを選択して [コード ビュー] を開きます。
コード ビューの以下の部分がポーリング トリガーであることを表しています。
“recurrence”: {
“frequency”: “Minute”,
“interval”: 5
コード ビューで recurrence のセクションが表示されないトリガーは、プッシュ トリガーです。
なお上のコードはポーリングの間隔を示しているように見えますが、実際の間隔はこの部分の記述とは異なる場合があり、フローが実行されるライセンスのプランと、個々のトリガーの構成によって決まります。トリガー側でより長い間隔が構成されていない場合、Power Automate Basic(Microsoft 365 に含まれるライセンス)では5分間隔となります。
※5分は最短の間隔で、より長い間隔を持つトリガーもあります。
ポーリングの間隔により、サービスやアプリケーションでの実際のイベントの発生と、フローが開始するまでに時間のずれが生じる場合があることに注意が必要です。ポーリング間隔が5分であれば、フローの実行はイベントの発生から最大5分後になる可能性があります。
アクション
アクションとは、トリガーによって開始されたフローで実行される動作(タスク)です。フローで何らかの操作を行うには、少なくとも1つのアクションが必要です。
アクションはトリガーと同様に、コネクタに含まれています。特定のアプリに接続するコネクタには、対象のアプリでさまざまな操作を行うアクションが含まれます。例えば Office 365 Outlook(法人向け Microsoft 365 のメールサービス)のコネクタには以下のように多くのアクションが用意されています。
Office 365 Outlook コネクタに含まれるすべてのアクションの一覧は、以下のページを参照してください。
Power Automate で利用可能なコネクタとそのアクションの一覧は、以下のページを参照してください。
アクションのパラメーター
それぞれのアクションでは、アクションで行う動作の詳細を指定するパラメーターを構成します。例えば上掲の Office 365 Outlook コネクタに含まれる「メールの送信 (V2)」アクション(Send an email (V2))では、以下のように「宛先」・「件名」・「本文」という3つの必須のパラメーターを指定します。
さらに「詳細パラメーター」として以下のように追加のパラメーターも構成できます。
このようなパラメーターの構成により、アクションで行う操作を詳細に示すことができます。
コネクタのアクションごとに構成可能なパラメーターについては、以下のページで利用するコネクタを検索し、コネクタのリファレンス ページを開いて確認できます。
アクションのタイムアウト
アクションは前回の記事で解説したように、操作の対象となるサービス/アプリケーションの API に対してリクエストを送信し、その結果(レスポンス)を受け取っています。こうした通信は HTTP プロトコルを利用して行われます。
何らかの理由(例えばサービスがダウンしているなど)でリクエストに対するレスポンスをサービス/アプリケーションが返さない場合、レスポンスを永遠に待ち続けることは現実的ではありません。
そのため、Power Automate ではタイムアウトが設定されています。通常のリクエストでは120 秒(2 分)のタイムアウトが設定されています。また非同期で実行されるリクエストでは 30 日間のタイムアウトが設定されています。
このタイムアウトはアクションの [設定] で変更できます。[全般] – [アクションのタイムアウト] でタイムアウト時間を指定します。以下はタイムアウトを 30 秒に設定している例です。
タイムアウト時間は ISO 8601 形式の継続時間表記で記述します。ISO 8601 形式について詳しくは以下の Wikipedia 記事を参照してください。
なお、フロー全体のタイムアウトは 30 日です。承認などの保留中のステップがある場合でも、 30 日後にすべての保留ステップがタイムアウトになります。
アクションの再試行
アクションで操作対象の操作の対象となるサービス/アプリケーションにリクエストを送信した場合、何らかのエラーが返ってくる場合があります。エラーの原因はさまざまですが、一時的なエラーの場合は再試行することでリクエストを成功させることができる可能性があります。
このようなリクエストの再試行は既定の設定では4回行われます。この設定はアクションの [設定] – [ネットワーク] – [再試行ポリシー] で再試行の回数や間隔を調整できます。
再試行の設定を変更する場合は、操作の対象となるサービス/アプリケーション側の負荷や制限を考慮してください。サービス/アプリケーションによっては繰り返しのリクエストがスロットリング(規制)の対象となる場合があります。
セキュリティで保護された入力・出力
アクションで取り扱う入力と出力の情報はログに残り、後からフローの動作を確認することができます。しかしパスワードやアクセスキーなどの秘密情報を取り扱う場合、これらの情報がログに残ることは好ましくありません。
そのような場合、アクションの [設定] – [セキュリティ] で [セキュリティで保護された入力]・[セキュリティで保護された出力] をオンにすることで、それぞれログに記録されないようにできます。
追跡対象プロパティ
アクションの実行時に独自のプロパティ(キーと値のペア)を設定し、後続のアクションで利用することができます。
以下の例では flag というランダムな GUID を値に持つキーと、currentDateTime というこのアクションの実行時の日時を値に持つキーを設定しています。
このプロパティの値は、後続のアクションで式として以下を設定することで取得できます。
actions(‘Get_Current_User’)?[‘TrackedProperties/flag’]
actions(‘Get_Current_User’)?[‘TrackedProperties/currentDateTime’]
追跡対象プロパティについて詳しくは、以下の記事を参照してください。
まとめ
Power Automate で利用されるコネクタのトリガーとアクションについて詳しく解説しました。簡単なフローの作成ではあまり問題になることがない部分ですが、フローを作りこんだり、詳細な動作を指定したりしたい場合に必要な設定、注意点を紹介しました。
この記事を参考に、Power Platform を極めてください。
この記事を書いた人
この投稿者の最近の記事
- Power Apps2024/10/08事例紹介・Power Platform 研修実施 – 中野区様
- Azure2024/08/01Azure Virtual Desktop 構築事例 – 石狩市役所様
- Azure2024/06/11Azure Virtual Desktop の構築 (2) ネットワーク構成
- Azure2024/05/28Azure Virtual Desktop の構築 (1)