演習 - ARM テンプレートを使用して基本的な Azure Logic Apps ワークフローをデプロイする
このユニットでは、Azure Resource Manager テンプレートを使用して Azure Logic Apps のワークフローをデプロイします。
Azure でのリソースの作成
通常、作成する必要があるすべての項目を保持するリソース グループを最初に作成します。 リソース グループにより、ソリューションを構成する仮想マシン (VM)、ディスク、ネットワーク インターフェイスなどのすべての要素を 1 つのユニットとして管理できます。
リソース グループは、Azure CLI コマンドの az group create
を使用して作成できます。 このコマンドは、サブスクリプションで一意のリソース グループ名を指定するために --name
を使用します。 また、このコマンドは、リソースの既定の Azure リージョンを指定するために --location
を使用します。
ただし、無料の Azure サンドボックス環境を使用しているため、リソース グループを作成する必要はありません。 代わりに、この演習で以前に作成したリソース グループ
基本的な Resource Manager テンプレートのダウンロードと調査
Cloud Shell ウィンドウの上部で、[その他] アイコン ([...]) を選択した後、[設定]>[クラシック バージョンに移動] を選択します。
Cloud Shell から次の
curl
コマンドを実行して、GitHub からテンプレートをダウンロードします。curl https://raw.githubusercontent.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/master/basic-template/template.json > basic-template.json
テンプレートを表示するには、組み込みエディターで開きます。
code basic-template.json
template.json に記述されているロジック アプリ ワークフロー定義を、次に一覧表示します。
{ "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "variables": {}, "resources": [ { "type": "Microsoft.Logic/workflows", "apiVersion": "2017-07-01", "name": "HelloLogicAppsTemplate", "location": "westus2", "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": { "manual": { "type": "Request", "kind": "Http", "inputs": { "method": "GET", "schema": {} } } }, "actions": { "Response": { "runAfter": {}, "type": "Response", "kind": "Http", "inputs": { "body": "Hello Logic Apps Template!", "statusCode": 200 } } }, "outputs": {} }, "parameters": {} } } ], "outputs": { "logicAppUrl": { "type": "string", "value": "[listCallbackURL(concat(resourceId('Microsoft.Logic/workflows/', 'HelloLogicAppsTemplate'), '/triggers/manual'), '2017-07-01').value]" } } }
前述の JSON 定義およびテンプレート名からわかるように、このロジック アプリ ワークフローは基本的なものです。 このアプリの主要なコンポーネントを見てみましょう。
次のスニペットでは、アプリが
HelloLogicAppsTemplate
と呼ばれていることがわかります。 この名前はテンプレートにハードコーディングされています。 アプリが実行される場所もwestus2
にハード コーディングされています。"name": "HelloLogicAppsTemplate", "location": "westus2",
下の triggers セクションまでスクロールすると、HTTP GET 要求でワークフローがトリガーされることがわかります。 このトリガーには
manual
という名前が付けられています。"triggers": { "manual": { "type": "Request", "kind": "Http", "inputs": { "method": "GET", "schema": {} } } },
さらに下の actions セクションでは、このワークフローに 1 つのステップまたはアクションが含まれていることがわかります。 このアクションは、メッセージ
Hello Azure Logic Apps Template!
を含む要求に応答します。"actions": { "Response": { "runAfter": {}, "type": "Response", "kind": "Http", "inputs": { "body": "Hello Logic Apps Template!", "statusCode": 200 } } },
Resource Manager テンプレートの outputs セクションには、
logicAppUrl
という 1 つの出力があります。 この出力変数により、デプロイされたロジック アプリ リソースの URL が一覧表示されます。 この URL を使用すると、アプリのテストが簡単になります。 出力ではlistCallbackURL
を使用して URL を作成しますが、ワークフロー名とトリガー名はどちらもここでハード コーディングされます。"outputs": { "logicAppUrl": { "type": "string", "value": "[listCallbackURL(concat(resourceId('Microsoft.Logic/workflows/', 'HelloLogicAppsTemplate'), '/triggers/manual'), '2017-07-01').value]" } }
ここでこのロジック アプリをデプロイしてテストしてみましょう。
テンプレートの検証とデプロイ
ロジック アプリ リソースをリソース グループにデプロイするため、az deployment group create
コマンドを使用します。 このコマンドを使用してデプロイするときに、--template-uri
パラメーターを使用してリモート テンプレートの場所を指定してデプロイすることができます。 この場合、ローカルにテンプレートをデプロイするので、--template-file
パラメーターを設定します。
Cloud Shell から
az deployment group validate
を実行して、テンプレートを検証します。az deployment group validate \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file basic-template.json
--template-file
引数は、ローカル テンプレートを指します。 テンプレートのファイル名は basic-template.json です。出力として大きな JSON ブロックが表示されます。これは、テンプレートが検証に合格したことを示します。
Azure Resource Manager によって、テンプレート パラメーターが設定され、ユーザーのサブスクリプション内でテンプレートが正常に実行されるかどうかが確認されます。
検証が失敗した場合は、エラーの詳細な説明が出力で示されます。
Cloud Shell で次の
az deployment group create
コマンドを実行して、ここでの基本テンプレートで定義されたロジック アプリ リソースをサンドボックス リソース グループにデプロイします。az deployment group create \ --name MyDeployment \ --resource-group "<rgn>[sandbox resource group name]</rgn>" \ --template-file basic-template.json
このコマンドは前のコマンドと似ていますが、デプロイの名前を指定する
--name
引数も含まれています。このコマンドは、完了するまでに 2 から 3 分かかります。 デプロイが完了すると、デプロイについて記述されているもう 1 つの大きな JSON ブロックが出力として表示されます。 JSON 結果内の
provisioningState
が値Succeeded
になっていることがわかります。
デプロイの確認
az deployment group show
を実行してデプロイを検証します。az deployment group show \ --name MyDeployment \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
前に確認したのと同じ JSON ブロックが表示されます。 デプロイに関するこれらの詳細が必要になった場合は、後でこのコマンドを実行できます。 デプロイとクラウドの使用状況を追跡するために使用する他のツールにフィードしやすいように、出力は JSON として構成されています。
アプリの動作を確認するには、JSON の結果で logicAppUrl の値を検索します。 URL を選択するか、コピーして新しいブラウザー ウィンドウに貼り付けます。 次のスクリーンショットに示すように、このページには、「Hello Azure Logic Apps Template!」メッセージが表示されます。
おめでとうございます。 Azure Resource Manager テンプレートを使用してロジック アプリ ワークフローが正常にデプロイされました。
この演習で説明したように、基本テンプレートには多くのハードコーディングされた値があります。 これらの値により、テンプレートの柔軟性が目標よりも低くなります。 パラメーターを使用してこの状況を改善できます。