次の方法で共有


チュートリアル: Azure Logic Apps を使用して、スケジュールに基づいて実行される自動化ワークフローを作成する

適用対象: Azure Logic Apps (従量課金)

このチュートリアルでは、定期的なスケジュールで実行されるロジック アプリ ワークフローの例を作成する方法について紹介します。 具体的には、このワークフロー例を使用して、交通量を含めた 2 地点間の移動時間をチェックします。これがすべての平日の朝に実行されます。 時間が特定の上限を超えると、ワークフローにより、移動時間と目的地到着までに必要な追加時間が記載されたメールが送信されます。 このワークフローには、さまざまな手順を含めます。スケジュールベースのトリガーで開始し、Bing 地図アクション、データ操作アクション、制御フロー アクション、メール通知アクションが続きます。

このチュートリアルでは、次の作業を行う方法について説明します。

  • ロジック アプリと空のワークフローを作成します。
  • ワークフローの実行スケジュールを指定する繰り返しトリガーを追加します。
  • ルートの移動時間を取得する Bing 地図アクションを追加します。
  • 変数を作成して移動時間を秒から分に変換し、その結果を変数に保存するアクションを追加します。
  • 指定した上限に照らして移動時間を比較する条件を追加します。
  • 移動時間が上限を超えた場合にメールを送信するアクションを追加します。

完了したワークフローは、以下の大まかな例のようになります。

スクリーンショットは定期的なワークフローの例の概要を示しています。

前提条件

  • Azure アカウントとサブスクリプション。 サブスクリプションをお持ちでない場合には、無料の Azure アカウントにサインアップしてください。

  • Azure Logic Apps でサポートされるメール プロバイダー (Office 365 Outlook、Outlook.com、Gmail など) のメール アカウント。 その他のプロバイダーについては、こちらのコネクタ一覧を参照してください。 このクイックスタートでは、職場または学校アカウントで Office 365 Outlook を使用します。 別のメール アカウントを使う場合、おおよその手順は変わりませんが、UI がやや異なることがあります。

    重要

    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 ホーム ページで、 [リソースの作成] を選択します。

  3. Azure Marketplace メニューで、 [統合]>[ロジック アプリ] を選択します。

    スクリーンショットは統合とロジック アプリの選択オプションを含む Azure Marketplace メニューを示しています。

  4. [ロジック アプリの作成] ペインの [基本] タブで、ロジック アプリ リソースに関する次の情報を入力します。

    Azure portal、ロジック アプリの作成ウィンドウ、新しいロジック アプリ リソースの情報を示すスクリーンショット。

    プロパティ 必要 説明
    サブスクリプション はい <Azure サブスクリプション名> Azure サブスクリプション名。 この例では、従量課金制を使用します。
    リソース グループ はい LA-TravelTime-RG ロジック アプリ リソースと関連リソースを作成する Azure リソース グループ。 この名前は、リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、ピリオド (.) のみを含めることができます。
    名前 はい LA-TravelTime ロジック アプリ リソースの名前。リージョン間で一意である必要があり、文字、数字、ハイフン (-)、アンダースコア (_)、かっこ (())、およびピリオド (.) のみを含めることができます。
  5. 選択を続ける前に、[プラン] セクションに移動します。 [プランの種類][従量課金] を選択すると、マルチテナント Azure Logic Apps で実行される従量課金ロジック アプリ ワークフローの設定のみが表示されます。

    また、[プランの種類] プロパティでは、使用する課金モデルも指定します。

    プランの種類 説明
    Standard このロジック アプリの種類は既定の選択肢であり、シングルテナント Azure Logic Apps で実行され、Standard 価格モデルを使用します。
    従量課金プラン このロジック アプリの種類は、グローバルなマルチテナント Azure Logic Apps で実行され、従量課金価格モデルを使用します。
  6. 以下の選択を続けます。

    プロパティ 必要 説明
    [リージョン] はい 米国西部 アプリの情報を格納するための Azure データセンター リージョン。 この例では、サンプル ロジック アプリを Azure の米国西部リージョンにデプロイします。
    Log Analytics を有効にする はい いいえ このオプションは、従量課金のロジック アプリの種類を選んだ場合にのみ表示されて適用されます。 診断ログを有効にする場合にのみ、このオプションを変更します。 このチュートリアルでは、既定の選択をそのまま使います。
  7. 完了したら、 [確認および作成] を選択します。 Azure によってロジック アプリ リソースに関する情報が検証されたら、[作成] を選択します。

  8. Azure によってアプリがデプロイされたら、 [リソースに移動] を選択します。

    Azure portal で、従量課金ロジック アプリとワークフロー デザイナーが開きます。

次に、指定したスケジュールに基づいてワークフローを実行する、[繰り返し] という名前のスケジュール トリガーを追加します。 すべてのワークフローは必ずトリガーから起動され、トリガーは、特定のイベントが発生するか、新しいデータが特定の条件を満たしたときに起動されます。 詳細については、「マルチテナント Azure Logic Apps で従量課金ロジック アプリ ワークフローの例を作成する」をご覧ください。

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

  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) 式でカーソルを置き、動的コンテンツを選択する場所を示しています。

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

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

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

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

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

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

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

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

ワークフローを実行する

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

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

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

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

    ヒント

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

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

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

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

  1. Azure portal の検索ボックスに、作成したリソース グループの名前を入力します。 結果の [リソース グループ] で、そのリソース グループを選択します。

    この例では、LA-TravelTime-RG という名前のリソース グループを作成しました。

    Azure 検索ボックスに「la-travel-time-rg」と入力され、[LA-TravelTime-RG] が選択されていることを示すスクリーンショット。

    ヒント

    Azure のホーム ページの [最近のリソース] にリソース グループが表示されている場合は、ホーム ページからそのグループを選択できます。

  2. リソース グループのメニューで、 [概要] が選択されていることを確認します。 [概要] ペインのツール バーで、 [リソース グループの削除] を選択します。

    スクリーンショットは、[リソース グループの削除] オプションが選択されたペイン ツール バーを含むリソース グループの [概要] ペインを示しています。

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

次のステップ

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