シングルテナントの 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 デプロイの概要に関する記事を参照してください。
前提条件
アクティブなサブスクリプションが含まれる Azure アカウント。 Azure サブスクリプションをお持ちでない場合は、無料アカウントを作成してください。
Visual Studio Code (無料)、Visual Studio Code 用 Azure Logic Apps (Standard) 拡張機能、その他の関連する前提条件。
DevOps ツールやプロセスで使用する Standard ロジック アプリ。
Azure portal から Standard ロジック アプリ リソースの成果物ファイルをダウンロードするか、Visual Studio Code と Visual Studio Code 用 Azure Logic Apps (Standard) 拡張機能を使用して作成した Standard Logic Apps プロジェクトを使用することができます。
ポータブル: ダウンロードした ZIP ファイルには、workflow.json、connections.json、host.json、local.settings.json などの Standard ロジック アプリの成果物ファイルが含まれています。 ポータルから Standard ロジック アプリの成果物ファイルをダウンロードする方法のセクションを参照してください。
Visual Studio Code: デプロイ先として、Azure portal に空の Standard ロジック アプリ リソースが必要です。 空の Standard ロジック アプリ リソースをすばやく作成するには、シングルテナントベースのロジック アプリ ワークフローの作成 - ポータルに関する記事を参照してください。
既存のロジック アプリまたはインフラストラクチャがない場合は、リンクされたサンプルの Standard ロジック アプリ プロジェクトを使用して、GitHub と Azure DevOps のどちらを使用するかに基づいて、サンプル ロジック アプリとインフラストラクチャをデプロイできます。 サンプル ロジック アプリを実行するために含まれるサンプル プロジェクトとリソースの詳細については、「インフラストラクチャ リソースのデプロイ」を参照してください。
インフラストラクチャ リソースのデプロイ
事前に Standard ロジック アプリまたはインフラストラクチャをセットアップせずに DevOps デプロイ エクスペリエンスを試すには、次のサンプル プロジェクトを使用して、GitHub と Azure DevOps のどちらを使用するかに基づいてサンプルの Standard ロジック アプリとインフラストラクチャのデプロイを設定できるようにします。
シングルテナントの Azure Logic Apps 用の GitHub サンプル
このサンプルには、Standard ロジック アプリ プロジェクトの例に加え、Azure デプロイと GitHub Actions の例が含まれています。
シングルテナントの Azure Logic Apps 用の Azure DevOps サンプル
このサンプルには、Standard ロジック アプリ プロジェクトの例に加え、Azure デプロイと Azure Pipelines の例が含まれています。
どちらのサンプルにも、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 ロジック アプリ プロジェクトとインフラストラクチャ リソース間の依存関係を示しています。
ポータルから Standard ロジック アプリの成果物をダウンロードする
Standard ロジック アプリが Azure portal にある場合は、workflow.json、connections.json、host.json、local.settings.json などのロジック アプリの成果物ファイルを含む ZIP ファイルをダウンロードできます。
Azure portal で、ご利用の Standard ロジック アプリ リソースを検索して開きます。
ロジック アプリのメニューで、 [概要] を選択します。
[概要] ツール バーで、[アプリ コンテンツのダウンロード] を選択します。 表示される確認ボックスで、[ダウンロード] を選択します。
プロンプトが表示されたら、[名前を付けて保存] を選択し、目的のローカル フォルダーを参照して、[保存] を選択して ZIP ファイルを保存します。
ZIP ファイルを展開します。
Visual Studio Code で、展開したファイルが含まれているフォルダーを開きます。
フォルダーを開くと、Visual Studio Code によって、ワークスペースが自動的に作成されます。
DevOps を使用したデプロイに必要なフォルダーとファイルのみを含むように、フォルダーの内容を編集します。
完了したら、変更を保存します。
ロジック アプリをビルドしてデプロイする (zip デプロイ)
Standard ロジック アプリをインフラストラクチャにデプロイするビルド パイプラインとリリース パイプラインを Azure の内部または外部に設定できます。
プロジェクトの構築
Standard ロジック アプリ プロジェクトと成果物ファイルをソース リポジトリ (GitHub や Azure DevOps など) にプッシュします。
次の対応するアクションを実行して、ロジック アプリ プロジェクトの種類に基づいてビルド パイプラインを設定します。
プロジェクトの種類 説明と手順 Nuget ベース NuGet ベースのプロジェクト構造は、.NET Framework に基づきます。 これらのプロジェクトをビルドするには、.NET Standard のビルド手順に従ってください。 詳細については、「MSBuild を使用して NuGet パッケージを作成する」のドキュメントを参照してください。 バンドルベース 拡張機能のバンドルベースのプロジェクトは言語固有ではないため、言語固有のビルド手順は必要ありません。 任意の方法でプロジェクト ファイルを zip 圧縮します。
重要
ZIP ファイルのルート レベルにプロジェクトの実際のビルド成果物が含まれていることを確認します。具体的には、すべてのワークフロー フォルダー、host.json、connections.json、local.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.json、connections.json、local.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 でのエクスペリエンスについてご意見をお聞かせください。
- バグまたは問題については、GitHub で問題を作成してください。
- 質問、要望、コメント、その他のフィードバックについては、このフィードバック フォームを使用してください。