チュートリアル: Azure Logic Apps を使用して、スケジュールに基づいて実行される自動化ワークフローを作成する
適用対象: Azure Logic Apps (従量課金)
このチュートリアルでは、Azure Logic Apps を使用して、定期的なスケジュールで実行されるロワークフローの例を作成する方法について紹介します。 この例では、2 つの場所間の移動時間 (トラフィックを含む) をチェックし、平日の毎朝実行する従量課金ロジック アプリ ワークフローを具体的に作成します。 時間が特定の上限を超えると、ワークフローにより、移動時間と目的地到着までに必要な追加時間が記載されたメールが送信されます。 このワークフローには、さまざまな手順を含めます。スケジュールベースのトリガーで開始し、Bing 地図アクション、データ操作アクション、制御フロー アクション、メール通知アクションが続きます。
完了すると、ワークフローは次の大まかな例のようになります。
ヒント
詳細について、Azure Copilot に次のように質問することができます。
- Azure Logic Apps とは
- "従量課金のロジック アプリ ワークフローとは何ですか?"
- Bing 地図コネクタとは
- データ操作アクションとは
- 制御フロー アクションとは
- "Office 365 Outlook コネクタは何ですか?"
Azure Copilot を見つけるには、Azure portal のツール バーで、[Copilot] を選択します。
Standard ロジック アプリ リソースを使用して、同様のワークフローを作成できます。 ただし、ユーザー エクスペリエンスとチュートリアルの手順は、従量課金バージョンとは若干異なります。
前提条件
Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。
Azure Logic Apps でサポートされるメール プロバイダー (Office 365 Outlook または Outlook.com など) のメール アカウント。 サポートされている他の電子メール プロバイダーについては、「Azure Logic Apps のコネクタ」をご覧ください。
このクイックスタートでは、Office 365 Outlook と職場または学校アカウントを使用します。 別のメール アカウントを使う場合、おおよその手順は変わりませんが、ユーザー エクスペリエンスがやや異なることがあります。 Outlook.com を使用する場合は、代わりに個人用 Microsoft アカウントを使用してサインインします。
重要
Gmail コネクタの使用を希望する場合、ロジック アプリ ワークフローで制限なしにこのコネクタを使用できるのは、G-Suite ビジネス アカウントだけです。 Gmail コンシューマー アカウントを持っている場合は、Google によって承認された特定のサービスのみでこのコネクタを使用できるほか、認証に使用する Google クライアント アプリを Gmail コネクタで作成することができます。 詳細については、「Azure Logic Apps での Google コネクタのデータ セキュリティとプライバシー ポリシー」を参照してください。
ルートの移動時間を取得するために Bing Maps API のアクセス キーが必要となります。 このキーを取得するには、Bing 地図のキーを取得する方法に関するページの手順に従ってください。
ワークフローが特定の IP アドレスへのトラフィックを制限するファイアウォール経由で通信する必要がある場合、そのファイアウォールでは、ロジック アプリ リソースが存在する Azure リージョン内の Azure Logic Apps によって使用される受信と送信 "両方" の IP アドレスに対してアクセスを許可する必要があります。 また、ワークフローで Office 365 Outlook コネクタや SQL コネクタなどのマネージド コネクタが使用されている場合、またはカスタム コネクタが使用されている場合、そのファイアウォールでは、ロジック アプリ リソースの Azure リージョン内にある "すべて" のマネージド コネクタ送信 IP アドレスに対するアクセスも許可する必要があります。
従量課金のロジック アプリ リソースを作成する
Azure portal で、Azure アカウントを使ってサインインします。
Azure portal の検索ボックスに「ロジック アプリ」と入力し、[ロジック アプリ] を選びます。
[ロジック アプリ] ページのツール バーで [追加] を選びます。
[ロジック アプリの作成] ページが表示され、次のオプションが表示されます。
プラン 説明 従量課金プラン マルチテナント Azure Logic Apps で実行され、課金に従量課金モデルを使用するワークフローを 1 つだけサポートするロジック アプリ リソースを作成します。 Standard 複数のワークフローをサポートするロジック アプリ リソースを作成します。 次のオプションがあります。
- ワークフロー サービス プラン: ワークフローはシングルテナントの Azure Logic Apps で実行され、課金に Standard モデルを使用します。
- App Service Environment V3: ワークフローはシングルテナントの Azure Logic Apps で実行され、課金に App Service Environment プランを使用します。[ロジック アプリの作成] ページで、[従量課金 (マルチテナント)] を選択します。
[基本] タブで、ロジック アプリ リソースに関する次の情報を指定します。
プロパティ 必要 値 説明 サブスクリプション はい <Azure サブスクリプション名> Azure サブスクリプション名。
この例では、従量課金制を使用します。リソース グループ はい <Azure リソース グループ名>< ロジック アプリと関連リソースを作成する Azure リソース グループ。 この名前は、リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、ピリオド (.) のみを含めることができます。
この例では、LA-TravelTime-RG という名前のリソース グループを作成します。ロジック アプリ名 はい <logic-app-resource-name> ロジック アプリ リソースの名前。リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、およびピリオド (.) のみを含めることができます。
この例では、LA-TravelTime という名前のロジック アプリ リソースを作成します。リージョン はい <Azure-region> アプリの Azure データセンター リージョン。
この例では米国西部を使用します。Log Analytics を有効にする はい いいえ 診断ログを有効にする場合にのみ、このオプションを変更します。 このチュートリアルでは、既定の選択をそのまま使います。
注: このオプションは、従量課金ロジック アプリでのみ使用できます。Note
可用性ゾーンは、可用性ゾーンをサポートする Azure リージョン内の新規および既存の従量課金ロジック アプリ ワークフローに対して自動的に有効になります。 詳細については、「Azure Functions の信頼性」および「ゾーン冗長と可用性ゾーンを使用してゾーン障害からロジック アプリを保護する」を参照してください。
完了すると、設定は次の例のようになります。
終了したら、[確認と作成] を選択します。 Azure によってロジック アプリ リソースに関する情報が検証されたら、[作成] を選択します。
Azure によってロジック アプリ リソースがデプロイされたら、[リソースに移動] を選択します。 または、Azure の検索ボックスを使用して自分のロジック アプリ リソースを見つけて選択します。
次に、指定したスケジュールに基づいてワークフローを実行する、[繰り返し] という名前のスケジュール トリガーを追加します。 すべてのワークフローは必ずトリガーから起動され、トリガーは、特定のイベントが発生するか、新しいデータが特定の条件を満たしたときに起動されます。
繰り返しトリガーを追加する
ワークフロー デザイナーで、この一般的な手順に従って、「繰り返し」という名前のスケジュール トリガーを追加します。
繰り返し トリガーの名前を次のタイトルに変更します: 平日の毎朝の移動時間チェック
トリガー情報ボックスに、以下の情報を指定します:
パラメーター 価値 説明 Interval 1 チェックの間隔 (単位数) 頻度 Week 定期実行の時間の単位 設定曜日 月曜日、火曜日、水曜日、木曜日、金曜日 この設定は、 [頻度] を [週] に設定した場合にのみ使用できます。 設定時刻 (時間) 7、8、9 この設定は、 [頻度] を [週] または [日] に設定した場合にのみ使用できます。 この繰り返しには、時刻 (時間) を選択します。 この例では、7 時間、8 時間、9 時間時点に実行されます。 設定時刻 (分) 0、15、30、45 この設定は、 [頻度] を [週] または [日] に設定した場合にのみ使用できます。 この繰り返しには、時刻 (分) を選択します。 この例では、正時を起点として 15 分おきに実行されます。 完了すると、トリガー情報ボックスは次の例のように表示されます。
このトリガーは、平日の毎朝午前 7 時 00 分から午前 9 時 45 分まで 15 分おきに起動します。 定期実行のスケジュールは [プレビュー] ボックスに表示されます。 詳細については、タスクとワークフローのスケジュールおよびワークフローのアクションとトリガーに関するページを参照してください。
ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
ロジック アプリのリソースと更新されたワークフローが Azure portal で有効になりました。 ただし、ワークフローは指定されたスケジュールに基づいてのみトリガーされ、他のアクションは実行されません。 そこで、トリガーが起動したときに反応するアクションを追加します。
ルートの移動時間を取得する
トリガーが完成したら、2 地点間の移動時間を取得する [Bing Maps] アクションを追加します。 Azure Logic Apps には Bing Maps API 用のコネクタが用意されているため、この情報を簡単に取得することができます。 このタスクを開始する前に、このチュートリアルの前提条件で触れた Bing Maps API キーを用意しておいてください。
ワークフロー デザイナーの [繰り返し] トリガーで、次の 一般的な手順に従って、[ルートの取得] という名前 の Bing Maps アクションを追加します。
Bing 地図の接続が存在しない場合、接続を作成するように求められます。 次の接続情報を入力し、[作成] を選択します。
パラメーター 必須 値 説明 Connection Name はい <Bing-Maps-connection-name> 接続の名前を指定します。 この例では、BingMapsConnection を使用しています。 API キー はい <Bing-Maps-API-key> あらかじめ取得しておいた Bing 地図 API キーを入力します。 Bing 地図のキーを所有していない場合は、キーの取得方法に関するページを参照してください。 次の例は、接続情報のサンプルを示しています。
[ルートの取得] アクションの名前を次のタイトルに変更します: [交通量によるルートと移動時間]。
アクションで、[詳細パラメーター] の一覧を開き、次のプロパティを追加します。
- 最適化
- 距離単位
- 移動手段
次に、次のアクションのプロパティの値を入力します。
パラメーター 価値 説明 通過地点 1 <start-location> ルートの起点。 この例では、出発地の住所の例を指定します。 通過地点 2 <end-location> ルートの目的地。 この例では、目的地の住所の例を指定します。 最適化 timeWithTraffic ルートを最適化するためのパラメーター (距離、最新の交通量を加味した移動時間など) パラメーター値 timeWithTraffic を選択します。 距離単位 <your-preference> ルートの距離の単位。 この例では、単位として [マイル] を使用します。 移動手段 Driving (車) ルートの移動手段。 [車] モードを選択します。 これらのパラメーターと値の詳細については、ルートの計算に関する記事をご覧ください。
次の例は、サンプル アクションの情報を示しています。
デザイナーのツール バーで、 [保存] を選択します。
次に、最新の移動時間を秒ではなく分に変換して格納するための変数を作成します。 そうすることで、同じ変換処理を繰り返す手間が省け、以降の手順で値が利用しやすくなります。
移動時間を格納するための変数を作成する
ワークフロー内でデータに対する操作を実行し、その結果を後続のアクションで使うことが必要になる場合があります。 これらの結果を再利用または参照しやすいよう保存するには、処理後に結果を格納する変数を作成します。 変数は、ワークフローの最上位でのみ作成することができます。
既定では、Get route (ルートを取得) アクションにより、現在の移動時間 (秒単位) と交通量が Travel Duration Traffic (交通量を考慮した移動時間) プロパティから返されます。 この値を "分" に変換して格納しておけば、後で同じ変換を繰り返さずに済み、再利用しやすくなります。
[ルートの取得] アクションで、次の一般的な手順に従って、[変数の初期化] という名前の変数アクションを追加します。
[変数の初期化] アクションの名前を次のタイトルに変更します: [移動時間を格納する変数の作成]。
次のアクション情報を指定します。
パラメーター 価値 内容 名前 travelTime 変数の名前。 この例では、 travelTime
を使用します。Type Integer 変数のデータ型 Value <initial-value> 現在の移動時間を秒から分に変換する式 (この表の下の手順を参照)。 Value プロパティの式を作成するには、次の手順に従います。
[値] ボックス内で選択すると、動的コンテンツ リスト (稲妻アイコン) と式エディター (数式アイコン) のオプションが表示されるので、式エディターを選択します。
式エディターには、式で操作を実行するために使用できる関数が用意されています。 動的コンテンツ リストには、ワークフロー内の後続のアクションで使用する入力として選択できる、以前のアクションからの出力が表示されます。
式エディターに次の式を入力します: div(,60)
式の左かっこ ( ( ) とコンマ ( , ) の間にカーソルを置き、 [動的なコンテンツ] を選択します。
動的なコンテンツ リストで、出力値 [交通量による移動時間] を選択します。
その出力が表示されない場合は、動的コンテンツ リストのアクション名の横にある [さらに表示] を選択します。
式の中でプロパティの値が解決されたら [追加] を選択します。
次の例は、Value プロパティが現時点でどのように表示されるかを示しています。
ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
次に、最新の移動時間が特定の上限を超えたかどうかをチェックする条件を追加します。
移動時間と上限を比較する
[移動時間を格納する変数の作成] アクションで、次の一般的な手順に従って、[Condition] という名前のコントロール アクションを追加します。
条件の名前を次のタイトルに変更します: [移動時間が制限を超えた場合]
travelTime 出力の値が特定の上限を超えているかどうかを調べる条件を次の説明に従って作成します。
ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
次に、移動時間が上限を超えたときに実行するアクションを追加します。
上限を超えたときにメールを送信する
次に、トラベル時間が上限を超えたときにメールを送信するアクションを追加します。 このメールには、指定されたルートで移動するために必要な最新の移動時間と超過時間が記載されます。
条件の True 分岐で、プラス記号 (+) を選択し、[アクションの追加] を選択します。
次の一般的な手順に従い、[メールの送信] という名前の Office 365 Outlook アクションを追加します。
- Azure の職場または学校アカウントでは、Office 365 Outlook バージョンを選択します。
- 個人用 Microsoft アカウントの場合は、Outlook.com バージョンを選択します。
この例では、Office 365 Outlook を選択して続行します。
まだ接続していない場合は、サインインし、メッセージが表示されたら電子メール アカウントへのアクセスを認証します。
Azure Logic Apps によって、ご自分のメール アカウントへの接続が作成されます。
アクションの名前を次のタイトルに変更します: [移動時間を記載したメールの送信]
[宛先] プロパティに、受信者のメール アドレスを入力します。 テスト目的のために、ご自身の電子メール アドレスを使用できます。
[件名] プロパティに、メールの件名を指定し、travelTime 変数を次の手順に従って追加します。
テキスト 現在の移動時間 (分) を入力し、末尾にスペースを付けます。 [件名] ボックスにカーソルを 置き、動的コンテンツ リスト (稲妻アイコン) のオプションを選択します。
動的コンテンツの一覧の [変数] セクションで、travelTime という名前の変数を選択します。
Note
動的コンテンツ リストに travelTime 変数が自動的に表示されない場合は、[変数] ラベルの横にある [さらに表示] を選択します。 Subject プロパティは文字列値を受け取りますが、travelTime は整数のため、変数が表示 されない場合があります。
[本文] プロパティで、次の手順に従って、電子メールの本文の内容を指定します。
ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。
次に、作成したワークフローをテストして実行します。この時点で、次の例のようになっています。
ワークフローを実行する
ワークフローを手動で開始するには、デザイナー ツール バーで [実行]>[実行] を選択します。
最新の移動時間が指定した上限を下回っている限り、このワークフローは何も実行せず、次の間隔が経過するのを待って再びチェックを実行します。
最新の移動時間が指定の上限を超えた場合、最新の移動時間と上限を基準とした超過分の時間 (分) とがメールで通知されます。 次の例は、ワークフローから送信される電子メールのサンプルを示しています。
ヒント
メールが届かない場合は、迷惑メール フォルダーを確認してください。 この種のメールは、迷惑メール フィルターによってリダイレクトされる場合があります。 また、ワークフローが正しく動作しているかどうかわからない場合は、ワークフローのトラブルシューティングに関するページを参照してください。
お疲れさまでした。スケジュールに基づいて定期実行されるワークフローの作成と実行が完了しました。
リソースをクリーンアップする
ワークフローは、ロジック アプリ リソースを無効にするか削除するまで実行され続けます。 このサンプルの必要がなくなったら、ロジック アプリと関連リソースが含まれるリソース グループを削除しましょう。
Azure portal の検索ボックスに「リソース グループ」と入力し、[リソース グループ] を選択します。
[リソース グループ] の一覧から、このチュートリアルのリソース グループを選択します。
リソース グループ メニューで、[概要] を選択します。
[概要] ページのツール バーで、[リソース グループの削除] を選択します。
確認ウィンドウが表示されたら、リソース グループ名を入力して、 [削除] を選択します。
次のステップ
このチュートリアルでは、指定したスケジュール (平日朝毎日) に基づいて交通量をチェックし、移動時間が指定した上限を超えたときにアクションを行う (メールを送信する) ロジック アプリ ワークフローを作成しました。 次は、Azure サービスや Microsoft サービスなど、各種 Software-as-a-Service (SaaS) アプリを統合して、メーリング リストの承認申請を送信するワークフローの作成方法について詳しく見ていきましょう。