Azure Logic AppをARMテンプレートを使ってデプロイ(箱のみ)

 

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

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

https://docs.microsoft.com/ja-jp/azure/logic-apps/logic-apps-azure-resource-manager-templates-overview

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

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

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

https://github.com/Tama-negi/Li-akb-branch-office/tree/PowerShell_Azure/LogicApp_Deploy_Basic_20200418

1 .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 のARMテンプレートのパラメータ設定用のCSVファイルを作成する

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

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

LogicApp-Basic.csv

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

3. Logic AppのARMテンプレートを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で指定した値で作成した値で作成されている事が確認できます。