練習 - 使用 ARM 範本部署基本的 Azure Logic Apps 工作流程

已完成

在本單元中,我們將使用 Azure Resource Manager 範本部署 Azure Logic Apps 中的工作流程。

在 Azure 中建立資源

通常,我們會先建立資源群組,以保存我們需要建立的所有項目。 資源群組可協助管理將解決方案構成一個單位的所有虛擬機器 (VM)、磁碟、網路介面,以及其他元素。

我們可以使用 Azure CLI 命令 az group create 來建立資源群組。 此命令會採用 --name,在訂閱中提供唯一的資源群組名稱。 該命令也會採用 --location 來提供資源的預設 Azure 區域。

然而,我們是使用免費的 Azure 沙箱環境,因此您不需要建立資源群組。 相反地,您可以在本練習中使用先前建立的資源群組 [sandbox resource group name] (沙箱資源群組名稱)

下載並檢查基本的 Resource Manager 範本

  1. 在 Cloud Shell 視窗頂端,選取 [更多] 圖示 ([...]),然後選取 [設定]>[前往傳統版本]

  2. 從 Cloud Shell 中,執行下列 curl 命令以從 GitHub 下載範本:

    curl https://raw.githubusercontent.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/master/basic-template/template.json > basic-template.json
    
  3. 若要檢視範本,請在內建編輯器中開啟它:

    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 參數。

  1. 從 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 會填入範本參數,並檢查範本是否會成功地在訂用帳戶中執行。

    如果驗證失敗,您會在輸出中看到失敗的詳細描述。

  2. 在 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 結果中看到值為 SucceededprovisioningState

驗證部署

  1. 執行 az deployment group show 以驗證部署:

    az deployment group show \
    --name MyDeployment \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" 
    

    您會看到先前看到的相同 JSON 區塊。 如果您需要與部署相關的這些詳細資料,可以稍後再執行此命令。 輸出的結構為 JSON,以方便饋送至您可能會用來追蹤部署和雲端使用量的其他工具。

  2. 若要查看作用中的應用程式,請在 JSON 結果中尋找 logicAppUrl 值。 選取 URL,或將其複製並貼上至新的瀏覽器視窗中。 此頁面顯示「您好,Azure Logic Apps 範本!」訊息,如下列螢幕擷取畫面所示:

    網頁瀏覽器的螢幕擷取畫面,其中顯示來自基本邏輯應用程式工作流程的回應。

恭喜! 您已使用 Azure Resource Manager 範本成功部署邏輯應用程式工作流程。

正如我們在本練習中所述,基本範本具有許多硬式編碼值。 這些值使得範本不如我們希望的有彈性。 我們可以使用參數來改善此情況。