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

 

Azure Logic AppをARMテンプレートを利用してデプロイしてみました。
ARMテンプレートのデプロイはPower Shellを使用します。
ARMテンプレートで指定するParameterは、CSVファイルから読み込みます。

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

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

作成状況を以下のようにしています。

    • 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を利用してGUIでLogic Appのデプロイを行う場合、以下の内容を指定します。今回は一番基本的な部分のみという事で、同じ内容を指定するようにしています。

    • Logic App名
    • リソースグループ名
    • ロケーション
    • Tag
    • 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”: {}
            }
        }
    ]
}

.ARMテンプレートのパラメータ設定用のCSVファイルを作成する

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

    • Logic App名
    • ロケーション
    • Tag

LogicApp-Basic.csv

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

3. Power ShellでARMテンプレートをデプロイする

デプロイ先のリソースグループ名、テンプレートファイルのパス、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で指定した値で作成した値で作成されている事が確認できます。