次の方法で共有


シングルテナントの Azure Logic Apps に Standard ロジック アプリの DevOps デプロイを設定する

適用対象: Azure Logic Apps (Standard)

このガイドでは、主に、DevOps ツールとプロセスを使用して、Visual Studio Code の Standard ロジック アプリ プロジェクトをインフラストラクチャにデプロイする方法について説明します。 Standard ロジック アプリが Azure portal に存在する場合は、DevOps デプロイで使用できるようにロジック アプリの成果物ファイルをダウンロードできます。 GitHub と Azure DevOps のどちらを使用するかに基づいて、デプロイ シナリオに最適なパスとツールを選択します。

Standard ロジック アプリをお持ちでない場合でも、リンクされたサンプルの Standard ロジック アプリ プロジェクトと、GitHub または Azure DevOps を使用した Azure へのデプロイの例を参考にして、このガイドに従うことができます。 詳細については、シングルテナント Azure Logic Apps の DevOps デプロイの概要に関する記事を参照してください。

前提条件

インフラストラクチャ リソースのデプロイ

事前に Standard ロジック アプリまたはインフラストラクチャをセットアップせずに DevOps デプロイ エクスペリエンスを試すには、次のサンプル プロジェクトを使用して、GitHub と Azure DevOps のどちらを使用するかに基づいてサンプルの Standard ロジック アプリとインフラストラクチャのデプロイを設定できるようにします。

どちらのサンプルにも、Standard ロジック アプリの実行に使用する次のリソースが含まれています。

リソース名 必須 説明
Standard ロジック アプリ はい この Azure リソースには、シングルテナント Azure Logic Apps で実行されるワークフローが含まれています。

重要: ロジック アプリ プロジェクトでは、各ワークフローに、トリガーとアクションの定義を含むワークフロー定義を含む workflow.json ファイルがあります。
API 接続 はい (API 接続が存在する場合) これらの Azure リソースは、ワークフローで、Office 365、SharePoint などのマネージ コネクタ操作を実行するために使用するマネージド API 接続を定義します。

重要: ロジック アプリ プロジェクトでは、connections.json ファイルに、ワークフローで使用する任意のマネージド API 接続と Azure functions のメタデータ、エンドポイント、およびキーが含まれています。 環境ごとに異なる接続と関数を使用するには、connections.json ファイルをパラメーター化し、エンドポイントを更新してください。

詳細については、 API 接続リソースとアクセスポリシーを確認してください。
Functions Premium または App Service ホスティング プラン Yes この Azure リソースでは、計算、処理、ストレージ、ネットワークなど、ロジック アプリの実行に使用するホスティング リソースを指定します。

重要: 現在のエクスペリエンスでは、Standard ロジック アプリ リソースには、Azure Functions Premium ホスティング プランに基づくワークフロー Standard ホスティング プランが必要です。
Azure Storage アカウント はい (ステートフルとステートレスの両方のワークフローの場合) この Azure リソースには、ワークフローに関するメタデータ、アクセスの制御用のキー、状態、入力、出力、実行履歴、およびその他の情報が格納されます。
Application Insights オプション この Azure リソースは、ワークフローの監視機能を提供します。
Azure Resource Manager (ARM) テンプレート オプション この Azure リソースでは、再利用または エクスポートできるベースライン インフラストラクチャのデプロイを定義します。

API 接続リソースとアクセス ポリシー

シングルテナントの Azure Logic Apps では、ワークフロー内のすべてのマネージド API 接続リソースに、関連付けられたアクセス ポリシーが必要です。 このポリシーでは、マネージド コネクタ インフラストラクチャにアクセスするための適切なアクセス許可を提供するために、ロジック アプリの ID が必要です。 同梱のサンプル プロジェクトには、これらのアクセス ポリシーを含む、必要なすべてのインフラストラクチャ リソースを含む ARM テンプレートが含まれています。

たとえば、次のダイアグラムは、Standard ロジック アプリ プロジェクトとインフラストラクチャ リソース間の依存関係を示しています。

概念ダイアグラムは、シングルテナント Azure Logic Apps モデルの Standard ロジック アプリ プロジェクトのインフラストラクチャの依存関係を示しています。

ポータルから Standard ロジック アプリの成果物をダウンロードする

Standard ロジック アプリが Azure portal にある場合は、workflow.jsonconnections.jsonhost.jsonlocal.settings.json などのロジック アプリの成果物ファイルを含む ZIP ファイルをダウンロードできます。

  1. Azure portal で、ご利用の Standard ロジック アプリ リソースを検索して開きます。

  2. ロジック アプリのメニューで、 [概要] を選択します。

  3. [概要] ツール バーで、[アプリ コンテンツのダウンロード] を選択します。 表示される確認ボックスで、[ダウンロード] を選択します。

  4. プロンプトが表示されたら、[名前を付けて保存] を選択し、目的のローカル フォルダーを参照して、[保存] を選択して ZIP ファイルを保存します。

  5. ZIP ファイルを展開します。

  6. Visual Studio Code で、展開したファイルが含まれているフォルダーを開きます。

    フォルダーを開くと、Visual Studio Code によって、ワークスペースが自動的に作成されます。

  7. DevOps を使用したデプロイに必要なフォルダーとファイルのみを含むように、フォルダーの内容を編集します。

  8. 完了したら、変更を保存します。

ロジック アプリをビルドしてデプロイする (zip デプロイ)

Standard ロジック アプリをインフラストラクチャにデプロイするビルド パイプラインとリリース パイプラインを Azure の内部または外部に設定できます。

プロジェクトの構築

  1. Standard ロジック アプリ プロジェクトと成果物ファイルをソース リポジトリ (GitHub や Azure DevOps など) にプッシュします。

  2. 次の対応するアクションを実行して、ロジック アプリ プロジェクトの種類に基づいてビルド パイプラインを設定します。

    プロジェクトの種類 説明と手順
    Nuget ベース NuGet ベースのプロジェクト構造は、.NET Framework に基づきます。 これらのプロジェクトをビルドするには、.NET Standard のビルド手順に従ってください。 詳細については、「MSBuild を使用して NuGet パッケージを作成する」のドキュメントを参照してください。
    バンドルベース 拡張機能のバンドルベースのプロジェクトは言語固有ではないため、言語固有のビルド手順は必要ありません。
  3. 任意の方法でプロジェクト ファイルを zip 圧縮します。

    重要

    ZIP ファイルのルート レベルにプロジェクトの実際のビルド成果物が含まれていることを確認します。具体的には、すべてのワークフロー フォルダー、host.jsonconnections.jsonlocal.settings.json などの構成ファイル、その他の関連ファイルなどです。 余分なフォルダーを追加したり、プロジェクト構造にまだ存在しないフォルダーに成果物を含めたりしないでください。

    たとえば、次の一覧は、MyBuildArtifacts.zip ファイル構造の例を示しています。

    MyStatefulWorkflow1-Folder
    MyStatefulWorkflow2-Folder
    connections.json
    host.json
    local.settings.json
    

Azure にリリースする前に

ロジック アプリ プロジェクトの connections.json ファイル内のマネージド API 接続は、Visual Studio Code でローカルで使用するために作成されています。 プロジェクトの成果物を Visual Studio Code から Azure にリリースする前に、これらの成果物を更新する必要があります。 Azure でマネージド API 接続を使用するには、それらの認証方法を更新して、Azure で使用するための正しい形式にする必要があります。

認証の種類を更新する

認証を使用するマネージド API 接続ごとに、1 つ目と 2 つ目のコード例に示すように、authentication オブジェクトを Visual Studio Code のローカル形式から Azure portal 形式に更新する必要があります。

Visual Studio Code の形式

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
         },
         "connection": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
         },
         "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
         "authentication": {
            "type": "Raw",
            "scheme": "Key",
            "parameter": "@appsetting('sql-connectionKey')"
         }
      }
   }
}

Azure portal の形式

{
   "managedApiConnections": {
      "sql": {
         "api": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
         },
         "connection": {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
         },
         "connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
         "authentication": {
            "type": "ManagedServiceIdentity",
         }
      }
   }
}

必要に応じて API 接続を作成する

Standard ロジック アプリをローカル開発環境とは異なる Azure リージョンまたはサブスクリプションにデプロイする場合は、デプロイ前にこれらのマネージド API 接続を作成しておく必要があります。 Azure Resource Manager テンプレート (ARM テンプレート) のデプロイは、マネージド API 接続を作成する最も簡単な方法です。

次の例は、ARM テンプレートの SQL マネージド API の接続リソース定義を示しています。

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows", 
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

接続リソースの定義を完了できるように、properties オブジェクトに必要な値を検索するには、特定のコネクタに対して次の API を使用します。

GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01

応答にある connectionParameters オブジェクトを見つけます。これには、特定のコネクタのリソース定義を完了するために必要な情報が含まれています。 次の例は、SQL マネージド接続のリソース定義の例を示しています。

{
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016–06–01",
   "location": "[parameters('location')]",
   "name": "[parameters('connectionName')]",
   "properties": {
      "displayName": "sqltestconnector",
      "api": {
         "id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
      },
      "parameterValues": {
         "authType": "windows",
         "database": "TestDB",
         "password": "TestPassword",
         "server": "TestServer",
         "username": "TestUserName"
      }
   }
}

別の方法として、Azure Logic Apps のワークフロー デザイナーを使用して接続を作成するときに、ネットワーク トレースをキャプチャして確認できます。 前述のように、マネージド コネクタの API に送信された PUT 呼び出しを見つけて、要求本文で必要な情報をすべて確認します。

オンプレミス データ ゲートウェイ リソース定義

接続でオンプレミス データ ゲートウェイ リソースが使用されている場合、このリソース定義はコネクタ リソース定義とは別に存在します。 データ ゲートウェイのリソース定義を表示する場合は、「Azure Resource Manager テンプレートを使用して Azure Logic Apps のデプロイを自動化する」と「Microsoft.Web connectionGateways」を参照してください。

Azure へのリリース

Azure にデプロイするリリース パイプラインを設定するには、GitHub、Azure DevOps、または Azure CLI の関連付けられている手順に従います。

GitHub のデプロイでは、GitHub Actions (Azure Functions の GitHub Actions など) を使用してロジック アプリをデプロイできます。 この操作を行うには、次の情報を渡す必要があります。

  • デプロイに使用するロジック アプリの名前
  • すべてのワークフロー フォルダー、host.jsonconnections.jsonlocal.settings.json などの構成ファイル、その他の関連ファイルなど、実際のビルド成果物が含まれている ZIP ファイル。
  • 発行プロファイル (認証に使用される)
- name: 'Run Azure Functions Action'
  uses: Azure/functions-action@v1
  id: fa
  with:
   app-name: 'MyLogicAppName'
   package: 'MyBuildArtifact.zip'
   publish-profile: 'MyLogicAppPublishProfile'

詳細については、GitHub アクションを使用した継続的デリバリーに関する記事を参照してください。

Azure へのデプロイ後

各 API 接続にはアクセス ポリシーがあります。 zip デプロイが完了したら、Azure portal で Standard ロジック アプリのリソースを開き、各 API 接続のアクセス ポリシーを作成して、デプロイされたロジック アプリのアクセス許可を設定する必要があります。 zip のデプロイでは、アプリの設定は作成されません。 デプロイ後は、ロジック アプリ プロジェクトの local.settings.json ファイルに基づいて、これらのアプリ設定を作成する必要があります。

シングルテナント Azure Logic Apps でのエクスペリエンスについてご意見をお聞かせください。