クイック スタート: マルチテナント Azure Logic Apps と Visual Studio Code を使用して、ロジック アプリ ワークフローの定義を作成および管理する

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

このクイックスタートでは、マルチテナント Azure Logic Apps と Visual Studio Code を使って、組織間や企業間でアプリ、データ、システム、サービスを統合するタスクとプロセスを自動化するために役立つロジック アプリ ワークフローを作成および管理する方法を示します。 コードベースのエクスペリエンスを通じて、ロジック アプリの JavaScript Object Notation (JSON) を使用する、基になるワークフロー定義を作成および編集します。 Azure に既にデプロイされている既存のロジック アプリを使用することもできます。 マルチテナントとシングルテナントのモデルの比較について詳しくは、シングルテナントとマルチテナント、および統合サービス環境に関する記事をご覧ください。

これらのタスクは Azure portal と Visual Studio でも実行できますが、既にロジック アプリ定義を使い慣れていて、コードで直接作業する場合は、Visual Studio Code の方が迅速に作業を開始できます。 たとえば、既に作成されているロジック アプリを無効化、有効化、削除、更新することができます。 また、Visual Studio Code が実行されている開発プラットフォーム (Linux、Windows、Mac など) からロジック アプリと統合アカウントを操作することもできます。

この記事では、基本的な概念に重点を置いたクイックスタートと同じロジック アプリを作成できます。 Visual Studio でサンプル アプリを作成する方法について学習することも、Azure CLI を使用してアプリを作成および管理する方法について学習することもできます。 Visual Studio Code では、ロジック アプリは次の例のようになります。

Example logic app workflow definition

前提条件

開始する前に、以下を用意してください。

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

  • JSON で記述されているロジック アプリのワークフロー定義とその構造についての基礎知識

    Azure Logic Apps を初めて使用する場合は、こちらのクイックスタートをお試しください。Azure portal で初めてのロジック アプリ ワークフローを作成し、基本的な概念を重点的に身に付けることができます。

  • Azure と Azure サブスクリプションにサインインするための Web へのアクセス

  • まだお持ちでない場合は、以下のツールをダウンロードしてインストールしてください。

  • ロジック アプリが特定の IP アドレスへのトラフィックを制限するファイアウォールを経由して通信する必要がある場合、そのファイアウォールは、Azure Logic Apps またはロジック アプリが存在する Azure リージョンのランタイムが使用するインバウンドアウトバウンドの IP アドレスの "両方" のアクセスを許可する必要があります。 また、ロジック アプリが Office 365 Outlook コネクタや SQL コネクタなどのマネージド コネクタを使用している場合、またはカスタム コネクタを使用している場合、そのファイアウォールでは、ロジック アプリの Azure リージョン内の "すべて" のマネージド コネクタ アウトバウンド IP アドレスへのアクセスを許可する必要もあります。

Visual Studio Code から Azure にアクセスする

  1. Visual Studio Code を開きます。 Visual Studio Code ツール バーで、Azure アイコンを選択します。

    Select Azure icon on Visual Studio Code toolbar

  2. Azure ウィンドウで、 [Logic Apps][Sign in to Azure](Azure にサインインする) を選択します。 Microsoft サインイン ページが表示されたら、Azure アカウントでサインインします。

    Select

    1. サインインに通常よりも長い時間がかかる場合、Visual Studio Code はユーザーにデバイス コードを提供して、Microsoft 認証 Web サイトでサインインするよう求めます。 代わりにコードでサインインするには、 [Use Device Code] (デバイス コードを使用) を選択します。

      Continue with device code instead

    2. コードをコピーするには、[Copy & Open] (コピーして開く) を選択します。

      Copy code for Azure sign in

    3. 新しいブラウザー ウィンドウを開いて認証 Web サイトに進むには、 [リンクを開く] を選択します。

      Confirm opening a browser and going to authentication website

    4. [アカウントにサインインする] ページで認証コードを入力し、 [次へ] を選択します。

      Enter authentication code for Azure sign in

  3. Azure アカウントを選択します。 サインインしたら、ブラウザーを閉じて Visual Studio Code に戻ることができます。

    Azure ウィンドウの [ロジック アプリ][統合アカウント] セクションに、アカウントに関連付けられた Azure サブスクリプションが表示されます。 ただし、想定しているサブスクリプションが表示されない場合、またはセクションにサブスクリプションが多すぎる場合は、次の手順を実行します。

    1. ポインターを [ロジック アプリ] ラベルの上に移動します。 ツールバーが表示されたら、 [サブスクリプションの選択] (フィルター アイコン) を選択します。

      Find or filter Azure subscriptions

    2. 表示された一覧から、表示したいサブスクリプションを選択します。

  4. [ロジック アプリ] で目的のサブスクリプションを選択します。 サブスクリプション ノードが展開され、そのサブスクリプションに存在するすべてのロジック アプリが表示されます。

    Select your Azure subscription

    ヒント

    [統合アカウント] でサブスクリプションを選択すると、そのサブスクリプションに存在する統合アカウントが表示されます。

新しいロジック アプリを作成する

  1. まだ Visual Studio Code 内から Azure アカウントおよびサブスクリプションにサインインしていない場合は、先ほどの手順に従って今すぐサインインします。

  2. Visual Studio Code の [ロジック アプリ] でサブスクリプションのショートカット メニューを開き、 [ロジック アプリの作成] を選択します。

    From subscription menu, select

    一覧が表示され、サブスクリプション内の Azure リソース グループが表示されます。

  3. リソース グループのリストから、 [新しいリソース グループの作成] または既存のリソース グループを選択します。 この例では、新しいリソース グループを作成します。

    Create a new Azure resource group

  4. Azure リソース グループの名前を指定し、Enter キーを押します。

    Provide name for your Azure resource group

  5. ロジック アプリのメタデータを保存する Azure リージョンを選択します。

    Select Azure location for saving logic app metadata

  6. ロジック アプリの名前を指定し、Enter キーを押します。

    Provide name for your logic app

    Azure ウィンドウの Azure サブスクリプションの下に新しい空のロジック アプリが表示されます。 また Visual Studio Code では、ロジック アプリのスケルトン ワークフロー定義を含む JSON (.logicapp.json) ファイルも開きます。 これで、この JSON ファイルにロジック アプリのワークフロー定義を手動で作成することができます。 ワークフロー定義の構造と構文に関するテクニカル リファレンスについては、「Azure Logic Apps のワークフロー定義言語スキーマ」を参照してください。

    Empty logic app workflow definition JSON file

    たとえば、次に示すのは、RSS トリガーと Office 365 Outlook アクションから始まるサンプル ロジック アプリ ワークフロー定義です。 通常、JSON 要素は各セクション内でアルファベット順に表示されます。 ただし、このサンプルでは、ロジック アプリのステップがデザイナーに表示される順序でこれらの要素を大まかに示しています。

    重要

    このサンプル ロジック アプリの定義を再利用する場合は、@fabrikam.com などの組織アカウントが必要です。 架空の電子メール アドレスを実際の電子メール アドレスに置き換えてください。 Outlook.com や Gmail など、別の電子メール コネクタを使用するには、Send_an_email_action アクションを、Azure Logic Apps がサポートしている電子メール コネクタから入手できる同様のアクションに置き換えます。

    Gmail コネクタの使用を希望する場合、ロジック アプリで制限なしにこのコネクタを使用できるのは、G-Suite ビジネス アカウントだけです。 Gmail コンシューマー アカウントを持っている場合は、Google によって承認された特定のサービスのみでこのコネクタを使用できるほか、認証に使用する Google クライアント アプリを Gmail コネクタで作成することができます。 詳細については、「Azure Logic Apps での Google コネクタのデータ セキュリティとプライバシー ポリシー」を参照してください。

    {
       "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
       "contentVersion": "1.0.0.0",
       "parameters": {
          "$connections": {
             "defaultValue": {},
             "type": "Object"
          }
       },
       "triggers": {
          "When_a_feed_item_is_published": {
             "recurrence": {
                "frequency": "Minute",
                "interval": 1
             },
             "splitOn": "@triggerBody()?['value']",
             "type": "ApiConnection",
             "inputs": {
                "host": {
                   "connection": {
                      "name": "@parameters('$connections')['rss']['connectionId']"
                   }
                },
                "method": "get",
                "path": "/OnNewFeed",
                "queries": {
                   "feedUrl": "http://feeds.reuters.com/reuters/topNews"
                }
             }
          }
       },
       "actions": {
          "Send_an_email_(V2)": {
             "runAfter": {},
             "type": "ApiConnection",
             "inputs": {
                "body": {
                   "Body": "<p>Title: @{triggerBody()?['title']}<br>\n<br>\nDate published: @{triggerBody()?['updatedOn']}<br>\n<br>\nLink: @{triggerBody()?['primaryLink']}</p>",
                   "Subject": "RSS item: @{triggerBody()?['title']}",
                   "To": "sophia-owen@fabrikam.com"
                },
                "host": {
                   "connection": {
                      "name": "@parameters('$connections')['office365']['connectionId']"
                   }
                },
                "method": "post",
                "path": "/v2/Mail"
             }
          }
       },
       "outputs": {}
    }
    
  7. 完了したら、ロジック アプリのワークフロー定義を保存します。 ([ファイル] メニュー> [保存]、または Ctrl + S キーを押す)

  8. ロジック アプリを Azure サブスクリプションにアップロードするように求めるメッセージが表示されたら、[アップロード] を選択します。

    この手順では、ロジックアプリを Azure portalに発行します。これにより、ロジックが有効になり、Azure で実行されます。

    Upload new logic app to your Azure subscription

デザイナーでロジック アプリを表示する

Visual Studio Code では、読み取り専用のデザイン ビューでロジック アプリを開くことができます。 デザイナーでロジック アプリを編集することはできませんが、デザイナー ビューを使用すると、ロジック アプリのワークフローを視覚的に確認できます。

Azure ウィンドウの [ロジック アプリ] で、ロジック アプリのショートカット メニューを開き、 [Open in Designer] (デザイナーで開く) を選択します。

読み取り専用のデザイナーが別のウィンドウで開き、ロジック アプリのワークフローが表示されます。次に例を示します。

View logic app in read-only designer

Azure portal に表示

Azure portal でロジック アプリを確認するには、次の手順を実行します。

  1. ロジック アプリに関連付けられているのと同じ Azure アカウントとサブスクリプションを使用して、Azure portal にサインインします。

  2. Azure portal の検索ボックスに、ロジック アプリの名前を入力します。 結果の一覧からロジック アプリを選択します。

    Your new logic app in Azure portal

デプロイされたロジック アプリの編集

Visual Studio Code では、既に Azure にデプロイされているロジック アプリのワークフロー定義を開いて編集することができます。

重要

実稼働環境でアクティブに実行されているロジック アプリを編集する前に、まずロジック アプリを無効化することで、ロジック アプリが破損するリスクを回避し、中断を最小限に抑えることができます。

  1. まだ Visual Studio Code 内から Azure アカウントおよびサブスクリプションにサインインしていない場合は、先ほどの手順に従って今すぐサインインします。

  2. Azure ウィンドウの [Logic Apps] で、Azure サブスクリプションを展開し、目的のロジック アプリを選択します。

  3. ロジック アプリのメニューを開き、 [エディターで開く] を選択します。 または、ロジック アプリ名の横の編集アイコンを選択します。

    Open editor for existing logic app

    Visual Studio Code はローカルの一時フォルダーにある .logicapp.json ファイルを開き、ロジック アプリのワークフロー定義を表示します。

    View workflow definition for published logic app

  4. ロジック アプリのワークフロー定義を変更します。

  5. 完了したら、変更を保存します。 ([ファイル] メニュー> [保存]、または Ctrl + S キーを押す)

  6. 変更内容をアップロードして Azure portal の既存のロジック アプリ上書きするように求められたら、 [アップロード] を選択します。

    この手順では、Azure portal のロジック アプリのアップデートを発行します。

    Upload edits to logic app definition in Azure

他のバージョンを表示または昇格する

Visual Studio Code では、以前のバージョンのロジック アプリを開いて確認することができます。 また、以前のバージョンを現在のバージョンに昇格させることもできます。

重要

実稼働環境でアクティブに実行されているロジック アプリを変更する前に、まずロジック アプリを無効化することで、ロジック アプリが破損するリスクを回避し、中断を最小限に抑えることができます。

  1. サブスクリプション内のすべてのロジック アプリを表示できるように、Azure ウィンドウの [ロジック アプリ] で、Azure サブスクリプションを展開します。

  2. サブスクリプションの下で、ロジック アプリを展開し、 [バージョン] を展開します。

    [バージョン] 一覧に、ロジック アプリの以前のバージョン (存在する場合) が表示されます。

    Your logic app's previous versions

  3. 以前のバージョンを表示するには、次のいずれかの手順を選択します。

    • JSON 定義を表示するには、 [バージョン] で、その定義のバージョン番号を選択します。 または、そのバージョンのショートカット メニューを開き、 [エディターで開く] を選択します。

      ローカル コンピューターで新しいファイルが開き、そのバージョンの JSON 定義が表示されます。

    • 読み取り専用のデザイナー ビューでバージョンを表示するには、そのバージョンのショートカット メニューを開き、 [デザイナーで開く] を選択します。

  4. 以前のバージョンを現在のバージョンに昇格させるには、次の手順に従います。

    1. [バージョン] で、以前のバージョンのショートカット メニューを開き、 [昇格] を選択します。

      Promote earlier version

    2. Visual Studio Code で確認を求めるメッセージが表示されたら、 [はい] を選択して続行します。

      Confirm promoting earlier version

      Visual Studio Code は選択したバージョンを現在のバージョンに昇格させ、昇格したバージョンに新しい番号を割り当てます。 以前のバージョンは、昇格されたバージョンの下に表示されます。

ロジック アプリを無効または有効にする

Visual Studio Code では、発行されたロジック アプリを編集して変更を保存すると、既にデプロイされているアプリを上書きします。 運用環境でのロジック アプリの中断を回避し、中断を最小限に抑えるには、ロジック アプリを最初に無効にします。 ロジック アプリが引き続き動作することを確認した後で、ロジック アプリを再度有効にすることができます。

  • Azure Logic Apps サービスによって、進行中および保留中の実行がすべてその完了まで続行されます。 このプロセスは、ボリュームやバックログによっては、完了までに時間がかかる場合があります。

  • Azure Logic Apps は、新しいワークフロー インスタンスを作成することも実行することもありません。

  • トリガーは、次にその条件が満たされたときに起動されません。

  • トリガーの状態には、ロジック アプリが停止したポイントが記憶されます。 そのため、ロジック アプリを再度有効にすると、前回の実行以降のすべての未処理の項目に対してトリガーが起動されます。

    前回の実行以降の未処理の項目に対してトリガーが起動しないようにするには、ロジック アプリを再度有効にする前に、トリガーの状態をクリアします。

    1. ロジック アプリで、ワークフローのトリガーをどこでもかまわないので編集します。
    2. 変更を保存します。 この手順により、トリガーの現在の状態がリセットされます。
    3. ロジックアプリを再度有効にします。
  • ワークフローが無効になっている場合でも、実行を再送信できます。

  1. まだ Visual Studio Code 内から Azure アカウントおよびサブスクリプションにサインインしていない場合は、先ほどの手順に従って今すぐサインインします。

  2. サブスクリプション内のすべてのロジック アプリを表示できるように、Azure ウィンドウの [ロジック アプリ] で、Azure サブスクリプションを展開します。

    1. ロジック アプリを無効にするには、ロジック アプリのメニューを開き、 [Disable](無効化) を選択します。

      Disable your logic app

    2. ロジック アプリを再度有効にする準備ができたら、ロジック アプリのメニューを開き、 [Enable](有効化) を選択します。

      Enable your logic app

ロジック アプリを削除する

ロジック アプリを削除すると、ワークフロー インスタンスに次のような影響が生じます。

  • 進行中および保留中の実行があれば、それらのキャンセルを Azure Logic Apps がベスト エフォートで試みます。

    大量のボリュームやバックログがあったとしても、ほとんどの実行は完了前または開始前にキャンセルされます。 ただし、キャンセル プロセスは完了までに時間がかかる場合があります。 その間、サービスによってキャンセル プロセスが処理される一方、いくつかの実行が実行対象として取り上げられてしまう可能性があります。

  • Azure Logic Apps は、新しいワークフロー インスタンスを作成することも実行することもありません。

  • ワークフローを削除してから同じワークフローを再作成しても、再作成されたワークフローに、削除したワークフローと同じメタデータが割り当てられることはありません。 削除したワークフローの呼び出し元となったワークフローを再保存する必要があります。 これにより、呼び出し元は、再作成されたワークフローの正しい情報を取得します。 それ以外の場合、再作成したワークフローの呼び出しは、Unauthorized エラーで失敗します。 この動作は、統合アカウントのアーティファクトを使用するワークフローや、Azure 関数を呼び出すワークフローにも当てはまります。

  1. まだ Visual Studio Code 内から Azure アカウントおよびサブスクリプションにサインインしていない場合は、先ほどの手順に従って今すぐサインインします。

  2. サブスクリプション内のすべてのロジック アプリを表示できるように、Azure ウィンドウの [ロジック アプリ] で、Azure サブスクリプションを展開します。

  3. 削除したいロジック アプリを見つけてそのメニューを開き、 [削除] を選択します。

    Delete your logic app

次のステップ