チュートリアル: 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 アドレスに対するアクセスも許可する必要があります。

従量課金のロジック アプリ リソースを作成する

  1. Azure portal で、Azure アカウントを使ってサインインします。

  2. Azure portal の検索ボックスに「ロジック アプリ」と入力し、[ロジック アプリ] を選びます。

    ロジック アプリが入力され、ロジック アプリのオプションが選択されている Azure portal の検索ボックスを示すスクリーンショット。

  3. [ロジック アプリ] ページのツール バーで [追加] を選びます。

    [ロジック アプリの作成] ページが表示され、次のオプションが表示されます。

    プラン 説明
    従量課金プラン マルチテナント Azure Logic Apps で実行され、課金に従量課金モデルを使用するワークフローを 1 つだけサポートするロジック アプリ リソースを作成します。
    Standard 複数のワークフローをサポートするロジック アプリ リソースを作成します。 次のオプションがあります。

    - ワークフロー サービス プラン: ワークフローはシングルテナントの Azure Logic Apps で実行され、課金に Standard モデルを使用します。

    - App Service Environment V3: ワークフローはシングルテナントの Azure Logic Apps で実行され、課金に App Service Environment プランを使用します。
  4. [ロジック アプリの作成] ページで、[従量課金 (マルチテナント)] を選択します。

  5. [基本] タブで、ロジック アプリ リソースに関する次の情報を指定します。

    プロパティ 必要 説明
    サブスクリプション はい <Azure サブスクリプション名> Azure サブスクリプション名。

    この例では、従量課金制を使用します。
    リソース グループ はい <Azure リソース グループ名>< ロジック アプリと関連リソースを作成する Azure リソース グループ。 この名前は、リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、ピリオド (.) のみを含めることができます。

    この例では、LA-TravelTime-RG という名前のリソース グループを作成します。
    ロジック アプリ名 はい <logic-app-resource-name> ロジック アプリ リソースの名前。リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、およびピリオド (.) のみを含めることができます。

    この例では、LA-TravelTime という名前のロジック アプリ リソースを作成します。
    リージョン はい <Azure-region> アプリの Azure データセンター リージョン。

    この例では米国西部を使用します。
    Log Analytics を有効にする はい いいえ 診断ログを有効にする場合にのみ、このオプションを変更します。 このチュートリアルでは、既定の選択をそのまま使います。

    : このオプションは、従量課金ロジック アプリでのみ使用できます。

    Note

    可用性ゾーンは、可用性ゾーンをサポートする Azure リージョン内の新規および既存の従量課金ロジック アプリ ワークフローに対して自動的に有効になります。 詳細については、「Azure Functions の信頼性」および「ゾーン冗長と可用性ゾーンを使用してゾーン障害からロジック アプリを保護する」を参照してください。

    完了すると、設定は次の例のようになります。

    Azure portal とマルチテナント従量課金ロジック アプリの作成ページと詳細を示すスクリーンショット。

  6. 終了したら、[確認と作成] を選択します。 Azure によってロジック アプリ リソースに関する情報が検証されたら、[作成] を選択します。

  7. Azure によってロジック アプリ リソースがデプロイされたら、[リソースに移動] を選択します。 または、Azure の検索ボックスを使用して自分のロジック アプリ リソースを見つけて選択します。

次に、指定したスケジュールに基づいてワークフローを実行する、[繰り返し] という名前のスケジュール トリガーを追加します。 すべてのワークフローは必ずトリガーから起動され、トリガーは、特定のイベントが発生するか、新しいデータが特定の条件を満たしたときに起動されます。

繰り返しトリガーを追加する

  1. ワークフロー デザイナーで、この一般的な手順に従って、「繰り返し」という名前のスケジュール トリガーを追加します。

  2. 繰り返し トリガーの名前を次のタイトルに変更します: 平日の毎朝の移動時間チェック

    スクリーンショットは名前が変更されたトリガーを含む繰り返しトリガーのワークフロー デザイナーと情報ペインを示しています。

  3. トリガー情報ボックスに、以下の情報を指定します:

    パラメーター 価値 説明
    Interval 1 チェックの間隔 (単位数)
    頻度 Week 定期実行の時間の単位
    設定曜日 月曜日、火曜日、水曜日、木曜日、金曜日 この設定は、 [頻度][週] に設定した場合にのみ使用できます。
    設定時刻 (時間) 7、8、9 この設定は、 [頻度][週] または [日] に設定した場合にのみ使用できます。 この繰り返しには、時刻 (時間) を選択します。 この例では、7 時間、8 時間、9 時間時点に実行されます。
    設定時刻 (分) 0、15、30、45 この設定は、 [頻度][週] または [日] に設定した場合にのみ使用できます。 この繰り返しには、時刻 (分) を選択します。 この例では、正時を起点として 15 分おきに実行されます。

    完了すると、トリガー情報ボックスは次の例のように表示されます。

    スクリーンショットは、前の表で説明した値に設定された週関連のプロパティを示しています。

    このトリガーは、平日の毎朝午前 7 時 00 分から午前 9 時 45 分まで 15 分おきに起動します。 定期実行のスケジュールは [プレビュー] ボックスに表示されます。 詳細については、タスクとワークフローのスケジュールおよびワークフローのアクションとトリガーに関するページを参照してください。

  4. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

ロジック アプリのリソースと更新されたワークフローが Azure portal で有効になりました。 ただし、ワークフローは指定されたスケジュールに基づいてのみトリガーされ、他のアクションは実行されません。 そこで、トリガーが起動したときに反応するアクションを追加します。

ルートの移動時間を取得する

トリガーが完成したら、2 地点間の移動時間を取得する [Bing Maps] アクションを追加します。 Azure Logic Apps には Bing Maps API 用のコネクタが用意されているため、この情報を簡単に取得することができます。 このタスクを開始する前に、このチュートリアルの前提条件で触れた Bing Maps API キーを用意しておいてください。

  1. ワークフロー デザイナーの [繰り返し] トリガーで、次の 一般的な手順に従って、[ルートの取得] という名前 の Bing Maps アクションを追加します

  2. Bing 地図の接続が存在しない場合、接続を作成するように求められます。 次の接続情報を入力し、[作成] を選択します。

    パラメーター 必須 説明
    Connection Name はい <Bing-Maps-connection-name> 接続の名前を指定します。 この例では、BingMapsConnection を使用しています。
    API キー はい <Bing-Maps-API-key> あらかじめ取得しておいた Bing 地図 API キーを入力します。 Bing 地図のキーを所有していない場合は、キーの取得方法に関するページを参照してください。

    次の例は、接続情報のサンプルを示しています。

    スクリーンショットは、接続名の例と Bing Maps API キーと共に Bing Maps の接続ボックスを示しています。

  3. [ルートの取得] アクションの名前を次のタイトルに変更します: [交通量によるルートと移動時間]

  4. アクションで、[詳細パラメーター] の一覧を開き、次のプロパティを追加します。

    • 最適化
    • 距離単位
    • 移動手段
  5. 次に、次のアクションのプロパティの値を入力します。

    パラメーター 価値 説明
    通過地点 1 <start-location> ルートの起点。 この例では、出発地の住所の例を指定します。
    通過地点 2 <end-location> ルートの目的地。 この例では、目的地の住所の例を指定します。
    最適化 timeWithTraffic ルートを最適化するためのパラメーター (距離、最新の交通量を加味した移動時間など) パラメーター値 timeWithTraffic を選択します。
    距離単位 <your-preference> ルートの距離の単位。 この例では、単位として [マイル] を使用します。
    移動手段 Driving (車) ルートの移動手段。 [車] モードを選択します。

    これらのパラメーターと値の詳細については、ルートの計算に関する記事をご覧ください。

    次の例は、サンプル アクションの情報を示しています。

    スクリーンショットは [ルートの取得] という名前の完了したアクションを示しています。

  6. デザイナーのツール バーで、 [保存] を選択します。

次に、最新の移動時間を秒ではなく分に変換して格納するための変数を作成します。 そうすることで、同じ変換処理を繰り返す手間が省け、以降の手順で値が利用しやすくなります。

移動時間を格納するための変数を作成する

ワークフロー内でデータに対する操作を実行し、その結果を後続のアクションで使うことが必要になる場合があります。 これらの結果を再利用または参照しやすいよう保存するには、処理後に結果を格納する変数を作成します。 変数は、ワークフローの最上位でのみ作成することができます。

既定では、Get route (ルートを取得) アクションにより、現在の移動時間 (秒単位) と交通量が Travel Duration Traffic (交通量を考慮した移動時間) プロパティから返されます。 この値を "分" に変換して格納しておけば、後で同じ変換を繰り返さずに済み、再利用しやすくなります。

  1. [ルートの取得] アクションで、次の一般的な手順に従って、[変数の初期化] という名前の変数アクションを追加します

  2. [変数の初期化] アクションの名前を次のタイトルに変更します: [移動時間を格納する変数の作成]

  3. 次のアクション情報を指定します。

    パラメーター 価値 内容
    名前 travelTime 変数の名前。 この例では、travelTime を使用します。
    Type Integer 変数のデータ型
    Value <initial-value> 現在の移動時間を秒から分に変換する式 (この表の下の手順を参照)。

    Value プロパティの式を作成するには、次の手順に従います。

    1. [値] ボックス内で選択すると、動的コンテンツ リスト (稲妻アイコン) と式エディター (数式アイコン) のオプションが表示されるので、式エディターを選択します。

      スクリーンショットは、Value プロパティ内にカーソルがある [変数の初期化] という名前のアクションを示しています。

      式エディターには、式で操作を実行するために使用できる関数が用意されています。 動的コンテンツ リストには、ワークフロー内の後続のアクションで使用する入力として選択できる、以前のアクションからの出力が表示されます。

    2. 式エディターに次の式を入力します: div(,60)

      スクリーンショットは

    3. 式の左かっこ ( ( ) とコンマ ( , ) の間にカーソルを置き、 [動的なコンテンツ] を選択します。

      スクリーンショットは、div(,60) 式にカーソルを置き、[動的コンテンツ] を選択するための場所を示しています。

    4. 動的なコンテンツ リストで、出力値 [交通量による移動時間] を選択します。

      その出力が表示されない場合は、動的コンテンツ リストのアクション名の横にある [さらに表示] を選択します。

      スクリーンショットは [交通量による移動時間] という名前の出力に対して選択された値を示しています。

    5. 式の中でプロパティの値が解決されたら [追加] を選択します。

      スクリーンショットは選択した [追加] ボタンを示しています。

      次の例は、Value プロパティが現時点でどのように表示されるかを示しています。

      スクリーンショットは [値] プロパティの解決された式を示しています。

  4. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

次に、最新の移動時間が特定の上限を超えたかどうかをチェックする条件を追加します。

移動時間と上限を比較する

  1. [移動時間を格納する変数の作成] アクションで、次の一般的な手順に従って、[Condition] という名前のコントロール アクションを追加します

  2. 条件の名前を次のタイトルに変更します: [移動時間が制限を超えた場合]

  3. travelTime 出力の値が特定の上限を超えているかどうかを調べる条件を次の説明に従って作成します。

    1. 条件で、該当する条件の左側で [値の選択] ボックス内を選択し、動的コンテンツ リスト (稲妻アイコン) のオプションを選択します。

    2. [変数] で、travelTime という名前の出力を選択します。

      スクリーンショットは、[値の選択] という左側のボックス、開いた動的コンテンツ リスト、travelTime の出力選択を示しています。

    3. 中央の比較ボックスで、 is greater than(次の値より大きい) という演算子を選択します。

    4. 条件の右側にある [値の選択] ボックスには、値 15 を入力します

      完了すると、条件は以下の例のようになります。

      スクリーンショットは、移動時間と指定した上限を比較するための、完成した条件を示しています。

  4. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

次に、移動時間が上限を超えたときに実行するアクションを追加します。

上限を超えたときにメールを送信する

次に、トラベル時間が上限を超えたときにメールを送信するアクションを追加します。 このメールには、指定されたルートで移動するために必要な最新の移動時間と超過時間が記載されます。

  1. 条件の True 分岐で、プラス記号 (+) を選択し、[アクションの追加] を選択します。

  2. 次の一般的な手順に従い、[メールの送信] という名前の Office 365 Outlook アクションを追加します

    • Azure の職場または学校アカウントでは、Office 365 Outlook バージョンを選択します。
    • 個人用 Microsoft アカウントの場合は、Outlook.com バージョンを選択します。

    この例では、Office 365 Outlook を選択して続行します。

    スクリーンショットでは、[電子メールの送信] という名前の Office 365 Outlook アクションの選択を示しています。

  3. まだ接続していない場合は、サインインし、メッセージが表示されたら電子メール アカウントへのアクセスを認証します。

    Azure Logic Apps によって、ご自分のメール アカウントへの接続が作成されます。

  4. アクションの名前を次のタイトルに変更します: [移動時間を記載したメールの送信]

  5. [宛先] プロパティに、受信者のメール アドレスを入力します。 テスト目的のために、ご自身の電子メール アドレスを使用できます。

  6. [件名] プロパティに、メールの件名を指定し、travelTime 変数を次の手順に従って追加します。

    1. テキスト 現在の移動時間 (分) を入力し、末尾にスペースを付けます。 [件名] ボックスにカーソルを 置き、動的コンテンツ リスト (稲妻アイコン) のオプションを選択します。

    2. 動的コンテンツの一覧の [変数] セクションで、travelTime という名前の変数を選択します。

      Note

      動的コンテンツ リストに travelTime 変数が自動的に表示されない場合は、[変数] ラベルの横にある [さらに表示] を選択します。 Subject プロパティは文字列値を受け取りますが、travelTime は整数のため、変数が表示 されない場合があります。

  7. [本文] プロパティで、次の手順に従って、電子メールの本文の内容を指定します。

    1. テキスト 余剰移動時間 (分) を追加 を入力し、末尾にスペースを付けます。 [本文] ボックスにカーソルを置き、式エディター (数式アイコン) のオプションを選択します。

    2. 式エディターに、上限の超過時間 (分) を計算できるように「sub(,15)」と入力します。

      スクリーンショットは sub(,15) が入力された式エディターを示しています。

    3. 式の左かっこ ( ( ) とコンマ ( , ) の間にカーソルを置き、 [動的なコンテンツ] を選択します。

      スクリーンショットは、sub(,15) 式でカーソルを置き、動的コンテンツを選択する場所を示しています。

    4. [変数][travelTime] を選択します。

      スクリーンショットでは、動的なコンテンツ リストで

    5. 式内で変数が解決されたら、[追加] を選択します。

      [本文] プロパティが次のように表示されます。

      スクリーンショットは、電子メール アクションの Body プロパティの解決された式を示しています。

  8. ワークフローを保存します。 デザイナーのツール バーで、 [保存] を選択します。

次に、作成したワークフローをテストして実行します。この時点で、次の例のようになっています。

完全なロジック アプリ ワークフローの例を示すスクリーンショット。

ワークフローを実行する

ワークフローを手動で開始するには、デザイナー ツール バーで [実行]>[実行] を選択します。

  • 最新の移動時間が指定した上限を下回っている限り、このワークフローは何も実行せず、次の間隔が経過するのを待って再びチェックを実行します。

  • 最新の移動時間が指定の上限を超えた場合、最新の移動時間と上限を基準とした超過分の時間 (分) とがメールで通知されます。 次の例は、ワークフローから送信される電子メールのサンプルを示しています。

    スクリーンショットは、現在の移動時間と、指定した上限を超過する追加移動時間を報告する電子メールの例を示しています。

    ヒント

    メールが届かない場合は、迷惑メール フォルダーを確認してください。 この種のメールは、迷惑メール フィルターによってリダイレクトされる場合があります。 また、ワークフローが正しく動作しているかどうかわからない場合は、ワークフローのトラブルシューティングに関するページを参照してください。

お疲れさまでした。スケジュールに基づいて定期実行されるワークフローの作成と実行が完了しました。

リソースをクリーンアップする

ワークフローは、ロジック アプリ リソースを無効にするか削除するまで実行され続けます。 このサンプルの必要がなくなったら、ロジック アプリと関連リソースが含まれるリソース グループを削除しましょう。

  1. Azure portal の検索ボックスに「リソース グループ」と入力し、[リソース グループ] を選択します。

  2. [リソース グループ] の一覧から、このチュートリアルのリソース グループを選択します。

  3. リソース グループ メニューで、[概要] を選択します。

  4. [概要] ページのツール バーで、[リソース グループの削除] を選択します。

  5. 確認ウィンドウが表示されたら、リソース グループ名を入力して、 [削除] を選択します。

次のステップ

このチュートリアルでは、指定したスケジュール (平日朝毎日) に基づいて交通量をチェックし、移動時間が指定した上限を超えたときにアクションを行う (メールを送信する) ロジック アプリ ワークフローを作成しました。 次は、Azure サービスや Microsoft サービスなど、各種 Software-as-a-Service (SaaS) アプリを統合して、メーリング リストの承認申請を送信するワークフローの作成方法について詳しく見ていきましょう。