Упражнение. Развертывание базового рабочего процесса Azure Logic Apps с помощью шаблона ARM

Завершено

В этом уроке мы развернем рабочий процесс в Azure Logic Apps с помощью шаблона Azure Resource Manager.

Создание ресурсов в Azure

Обычно сначала создается группа ресурсов для хранения всех объектов, которые еще необходимо создать. Группа ресурсов помогает администрировать все виртуальные машины, диски, сетевые интерфейсы и другие элементы, составляющие решение.

Группу ресурсов можно создать с помощью команды Azure CLI az group create. Эта команда принимает параметр --name, указывающий уникальное имя группы ресурсов в подписке. Команда также принимает параметр --location, указывающий регион Azure по умолчанию для ресурсов.

Однако мы используем бесплатную среду песочницы Azure, поэтому создавать группу ресурсов не нужно. Вместо этого в данном упражнении можно использовать созданную ранее группу ресурсов [имя группы ресурсов песочницы].

Скачивание и изучение базового шаблона Resource Manager

  1. В Cloud Shell выполните следующую curl команду, чтобы скачать шаблон из GitHub:

    curl https://raw.githubusercontent.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/master/basic-template/template.json > basic-template.json
    
  2. Чтобы просмотреть шаблон, откройте его в встроенном редакторе:

    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": {}
            }
        }
    },
    

    Далее в разделе действий мы узнаем, что этот рабочий процесс содержит один шаг или действие. Это действие выдает в ответ на запрос сообщение Hello Azure Logic Apps Template!.

    "actions": {
        "Response": {
            "runAfter": {},
            "type": "Response",
            "kind": "Http",
            "inputs": {
                "body": "Hello Logic Apps Template!",
                "statusCode": 200
            }
        }
    },
    

    В разделе outputs шаблона 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. Выполните следующую az deployment group create команду в Cloud Shell, чтобы развернуть ресурс приложения логики, определенный нашим базовым шаблоном, в группе ресурсов песочницы:

    az deployment group create \
    --name MyDeployment \
    --resource-group "<rgn>[sandbox resource group name]</rgn>" \
    --template-file basic-template.json
    

    Эта команда похожа на предыдущую, но включает в себя аргумент --name, задающий имя развертывания.

    Выполнение этой команды занимает от двух до трех минут. После завершения развертывания вы увидите другой большой блок JSON в качестве выходных данных, описывающих развертывание. Результат JSON отображается provisioningState со значением Succeeded.

Проверка развертывания

  1. Выполните проверку az deployment group show развертывания:

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

    Вы увидите тот же блок JSON, что и ранее. Эту команду можно выполнять каждый раз, когда вам нужно получить информацию о развертывании. Выходные данные имеют формат JSON, что упрощает их передачу в другие средства для отслеживания развертываний и использования облака.

  2. Чтобы запустить приложение, найдите значение logicAppUrl в результате JSON. Выберите URL-адрес или скопируйте его и вставьте его в новое окно браузера. На странице отображается сообщение "Шаблон Hello Azure Logic Apps!" , как показано на следующем снимке экрана:

    Screenshot with Web browser displaying response from our basic logic app workflow.

Поздравляем! Вы успешно развернули рабочий процесс приложения логики с помощью шаблона Azure Resource Manager.

Как было упомянуто в этом упражнении, базовый шаблон включает множество жестко заданных значений. Это делает шаблон менее гибкими, чем хотелось бы. Ситуацию можно улучшить с помощью параметров.