Azure Logic Apps(ロジックアプリ)をARMテンプレートを使ってデプロイ(箱のみ)

ARM Template,Azure,Logic Apps,PowerShell/Azure CLI

Azure Logic AppをARMテンプレート+パラメータCSV+Power Shellで一括デプロイを試してみました。
ARMテンプレートで指定するParameterをCSVファイルから読み込む事により複数纏めてデプロイ出来ないかなぁという事でやってみました。

Logic Appのデプロイ自動化についてはマイクロソフト公式サイトに記載があります。今回は下記サイトを参考にLogic Appの一番基本的な部分だけを作るまでをやってみました。

Azure Resource Manager テンプレートを使用して Azure Logic Apps のデプロイを自動化する

ARMテンプレートを使ったデプロイに関しては以下の前提条件で試してみました。

    • Logic Appを2つ作成する
    • Logic Appのテンプレートを使う
    • Logic Appは基本設定のみ
    • パラメータの指定はCSVファイルを利用する
    • デプロイ先のリソースグループはデプロイ時に指定する

今回作成したものはGitHubにも公開しています。

スポンサーリンク

Logic Appで設定が必要な項目を確認してARMテンプレートを作成してみる

Azure Portalでの設定内容を確認してみます。

Azure Portalで確認してみた所Logic Appのデプロイを行う場合以下の内容を指定が必要な事が分かりました。この内容を指定するようにARMテンプレートを作ってみました。

    • ロジックアプリ名
    • リソースグループ名
    • 場所(ロケーション)
    • Tag(division;指定)
    • Log Analyticsの使用可否、ワークスペース名(今回は無しにしています。)

LogicApp-template-Basic-01.json

{
    “$schema": “https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    “contentVersion": “1.0.0.0",
    “parameters": {
        “workflows_LogicApp_name": {
            “type": “String",
            “metadata": {}
        },
        “location": {
            “type": “String",
            “defaultValue": “japaneast",
            “metadata":{} 
        },
        “tag": {
            “type": “String",
            “defaultValue":"notag",
            “metadata":{} 
        }
    },
    “variables": {},
    “resources": [
        {
            “type": “Microsoft.Logic/workflows",
            “apiVersion": “2017-07-01",
            “name": “[parameters('workflows_LogicApp_name’)]",
            “location": “[parameters('location’)]",
            “tags": {
                “division": “[parameters('tag’)]"
            },
            “properties": {
                “state": “Enabled",
                “definition": {
                    “$schema": “https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
                    “contentVersion": “1.0.0.0",
                    “parameters": {},
                    “triggers": {},
                    “actions": {},
                    “outputs": {}
                },
                “parameters": {}
            }
        }
    ]
}

Logic App のパラメータ設定用CSVファイルを作成

Logic App を作成する為にCSVから読み込むパラメータは以下の3つになります。この3つを指定するCSVを作成します。

    • ロジックアプリ名
    • 場所(ロケーション)
    • Tag

LogicApp-Basic.csv

LogicAppName,location,tag
LogicApp-Test01,japaneast,,
LogicApp-Test02,japaneast,TAG-Test,

Logic AppのARMテンプレートをパラメータCSV+Power Shell使ってデプロイ

デプロイ先のリソースグループ名、テンプレートファイルのパス、CSVファイルのパスを指定してデプロイを実施します。

TemplateDeploy_ImportCSV(LogicApp用)_01(公開用).ps1

#Logic App Template Deploy
#基本設定(RG名、LogicApp名、Location、Tagのみ指定)

param (
[String] [Parameter(Mandatory=$true)] $ResourceGroupName
)

$TemplateFilePath = “テンプレートファイルのパス名"
$ImportCSVPath = “CSVファイルのパス名"

# Inclued Configure Entries
$csv = Import-Csv -path $ImportCSVPath

# Template Deploy
foreach( $c in $csv ){

New-AzResourceGroupDeployment -ResourceGroupName $ResourceGroupName `
-TemplateFile $TemplateFilePath `
-workflows_LogicApp_name $c.LogicAppName `
-location $c.location `
-tag $c.tag
}

作成が成功すると、以下の通りにLogic Appが作成されたログが表示されます。

Outputs :

eploymentName : LogicApp-template-Basic-01
ResourceGroupName : リソースグループ名
ProvisioningState : Succeeded
Timestamp : 作成時刻
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
========================= ========================= ==========
workflows_LogicApp_name String LogicApp-Test01
location String japaneast
tag String

DeploymentName : LogicApp-template-Basic-01
ResourceGroupName : リソースグループ名
ProvisioningState : Succeeded
Timestamp : 作成時刻
Mode : Incremental
TemplateLink :
Parameters :
Name Type Value
========================= ========================= ==========
workflows_LogicApp_name String LogicApp-Test02
location String japaneast
tag String TAG-Test

CSVで指定した値で作成した値で作成されている事が確認できます。