Azure Logic Apps での従量課金プランのロジック アプリ デプロイを自動化するために Azure Resource Manager テンプレートを作成する
適用対象: Azure Logic Apps (従量課金)
この記事では、従量課金プランのロジック アプリを自動的に作成およびデプロイするために、Azure Resource Manager テンプレートを作成する方法について説明します。 Azure Logic Apps には、従量課金プランのロジック アプリの作成だけでなく、デプロイ用のリソースとパラメーターの定義にも再利用できるあらかじめ構築されたロジック アプリ Azure Resource Manager テンプレートも用意されています。 このテンプレートを独自のビジネス シナリオで使用することも、要件に合わせてカスタマイズすることもできます。 デプロイに必要なワークフロー定義やその他のリソースを含むテンプレートの構造と構文の概要については、Azure Resource Manager テンプレートを使用したロジック アプリのデプロイの自動化について概説しているページを参照してください。
重要
この記事は、従量課金プランのロジック アプリのみを対象とし、Standard ロジック アプリは対象としていません。 テンプレート内の接続で使用する Azure のリソース グループと場所が、ロジック アプリと同じものであることを確認してください。
Azure Resource Manager テンプレートの詳細については、次のトピックを参照してください。
- Azure Resource Manager テンプレートの構造と構文
- Azure リソース マネージャーのテンプレートの作成
- クラウドの一貫性のための Azure Resource Manager テンプレートを開発する
Visual Studio を使用したテンプレートの作成
ほぼデプロイできる状態の有効なパラメーター化ロジック アプリ テンプレートを作成するには、Visual Studio (無料の Community Edition 以上) と Azure Logic Apps Tools for Visual Studio を使用する方法が最も簡単です。 その後に、Visual Studio でロジック アプリを作成するか、または Azure portal で既存のロジック アプリを見つけて Visual Studio にダウンロードします。
ロジック アプリをダウンロードすると、ロジック アプリの定義やその他のリソース (接続など) が含まれたテンプレートを取得できます。 また、このテンプレートは、ロジック アプリとその他のリソースのデプロイに使用される値のパラメーター化 (パラメーターの定義) を行います。 これらのパラメーターには、独立したパラメーター ファイルで値を提供できます。 これにより、デプロイのニーズに応じてこれらの値をより簡単に変更できます。 詳細については、以下のトピックを参照してください。
Azure PowerShell を使用したテンプレートの作成
Resource Manager テンプレートを作成するには、Azure PowerShell と LogicAppTemplate モジュールを使用します。 このオープン ソース モジュールは、最初にロジック アプリとロジック アプリで使用している接続を評価します。 次に、モジュールは、デプロイに必要なパラメーターでテンプレート リソースを生成します。
たとえば、Azure Service Bus キューからメッセージを受信し、Azure SQL Database にデータをアップロードするロジック アプリがあるとします。 このモジュールは、オーケストレーション ロジック全体を保存し、SQL および Service Bus の接続文字列をパラメーター化することで、それらの値をデプロイのニーズに応じて提供し、変更できるようにします。
これらのサンプルでは、Azure Resource Manager テンプレート、Azure DevOps の Azure Pipelines、および Azure PowerShell を使用してロジック アプリを作成およびデプロイする方法が示されています。
- サンプル:Azure Logic Apps を使用した Azure Pipelines の調整
- サンプル:Azure Logic Apps から Azure Storage アカウントに接続し、Azure DevOps に Azure Pipelines を使用してデプロイする
- サンプル:Azure Logic Apps から Azure Service Bus キューに接続し、Azure DevOps に Azure Pipelines を使用してデプロイする
- サンプル: Azure Logic Apps の Azure Functions アクションを設定し、Azure DevOps に Azure Pipelines を使用してデプロイする
- サンプル:Azure Logic Apps から統合アカウントに接続し、Azure DevOps に Azure Pipelines を使用してデプロイする
PowerShell モジュールをインストールする
Azure PowerShell がまだインストールされていない場合は、インストールします。
PowerShell ギャラリーから LogicAppTemplate モジュールをインストールする最も簡単な方法は、次のコマンドを実行することです。
Install-Module -Name LogicAppTemplate
最新バージョンに更新するには、次のコマンドを実行します。
Update-Module -Name LogicAppTemplate
または、手動でインストールする場合は、GitHub に示されている Logic App Template Creator での手順に従ってください。
Azure Resource Manager クライアントのインストール
LogicAppTemplate モジュールが Azure のテナントとサブスクリプションのアクセス トークンで機能するようにするには、Azure Resource Manager クライアント ツールをインストールします。これは、Azure Resource Manager API を呼び出すシンプルなコマンドライン ツールです。
このツールで Get-LogicAppTemplate
コマンドを実行すると、コマンドがまず ARMClient ツールを通じてアクセス トークンを取得し、トークンを PowerShell スクリプトにパイプし、テンプレートを JSON ファイルとして作成します。 このツールの詳細については、こちらの Azure Resource Manager クライアント ツールに関する記事を参照してください。
PowerShell を使用したテンプレートの生成
LogicAppTemplate モジュールと Azure CLI をインストールした後にテンプレートを生成するには、次の PowerShell コマンドを実行します。
$parameters = @{
Token = (az account get-access-token | ConvertFrom-Json).accessToken
LogicApp = '<logic-app-name>'
ResourceGroup = '<Azure-resource-group-name>'
SubscriptionId = $SubscriptionId
Verbose = $true
}
Get-LogicAppTemplate @parameters | Out-File C:\template.json
推奨事項に従って Azure Resource Manager クライアント ツールからトークンをパイプ処理するには、代わりに次のコマンドを実行します。この中の $SubscriptionId
はお使いの Azure サブスクリプション ID です。
$parameters = @{
LogicApp = '<logic-app-name>'
ResourceGroup = '<Azure-resource-group-name>'
SubscriptionId = $SubscriptionId
Verbose = $true
}
armclient token $SubscriptionId | Get-LogicAppTemplate @parameters | Out-File C:\template.json
抽出後に、次のコマンドを実行してテンプレートからパラメーター ファイルを作成できます。
Get-ParameterTemplate -TemplateFile $filename | Out-File '<parameters-file-name>.json'
Azure Key Vault 参照 (静的のみ) を使用して抽出する場合は、次のコマンドを実行します。
Get-ParameterTemplate -TemplateFile $filename -KeyVault Static | Out-File $fileNameParameter
パラメーター | 必須 | 説明 |
---|---|---|
TemplateFile | はい | テンプレート ファイルのファイル パス |
KeyVault | いいえ | 有効なキー コンテナー値の処理方法を記述する列挙。 既定では、 None です。 |