練習 - 使用 ARM 範本部署基本的 Azure Logic Apps 工作流程
在本單元中,我們將使用 Azure Resource Manager 範本部署 Azure Logic Apps 中的工作流程。
在 Azure 中建立資源
通常,我們會先建立資源群組,以保存我們需要建立的所有項目。 資源群組可協助管理將解決方案構成一個單位的所有虛擬機器 (VM)、磁碟、網路介面,以及其他元素。
我們可以使用 Azure CLI 命令 az group create
來建立資源群組。 此命令會採用 --name
,在訂閱中提供唯一的資源群組名稱。 該命令也會採用 --location
來提供資源的預設 Azure 區域。
然而,我們是使用免費的 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",
向下捲動至 [觸發程序] 區段,我們會看到工作流程為使用 HTTP GET 要求所觸發。 觸發程序稱為
manual
。"triggers": { "manual": { "type": "Request", "kind": "Http", "inputs": { "method": "GET", "schema": {} } } },
繼續向下捲動至 [動作] 區段,我們將了解此工作流程包含一個步驟或動作。 此動作會使用訊息
Hello Azure Logic Apps Template!
回應要求。"actions": { "Response": { "runAfter": {}, "type": "Response", "kind": "Http", "inputs": { "body": "Hello Logic Apps Template!", "statusCode": 200 } } },
Resource Manager 範本的 [輸出] 區段具有稱為
logicAppUrl
的單一輸出。 此輸出變數會列出已部署邏輯應用程式資源的 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
引數來指定您部署的名稱。完成此命令大約需要兩到三分鐘。 部署完成之後,您將看到另一個大型 JSON 區塊作為描述部署的輸出。 您將在 JSON 結果中看到值為
Succeeded
的provisioningState
。
驗證部署
執行
az deployment group show
以驗證部署:az deployment group show \ --name MyDeployment \ --resource-group "<rgn>[sandbox resource group name]</rgn>"
您會看到先前看到的相同 JSON 區塊。 如果您需要與部署相關的這些詳細資料,可以稍後再執行此命令。 輸出的結構為 JSON,以方便饋送至您可能會用來追蹤部署和雲端使用量的其他工具。
若要查看作用中的應用程式,請在 JSON 結果中尋找 logicAppUrl 值。 選取 URL,或將其複製並貼上至新的瀏覽器視窗中。 此頁面顯示「您好,Azure Logic Apps 範本!」訊息,如下列螢幕擷取畫面所示:
恭喜! 您已使用 Azure Resource Manager 範本成功部署邏輯應用程式工作流程。
正如我們在本練習中所述,基本範本具有許多硬式編碼值。 這些值使得範本不如我們希望的有彈性。 我們可以使用參數來改善此情況。