Exercício - Implantar um fluxo de trabalho básico do Azure Logic Apps usando um modelo ARM

Concluído

Nesta unidade, implantaremos um fluxo de trabalho nos Aplicativos Lógicos do Azure usando um modelo do Azure Resource Manager.

Criar recursos no Azure

Normalmente, primeiro criamos um grupo de recursos para armazenar todos os itens que precisamos criar. Um grupo de recursos nos ajuda a administrar todas as máquinas virtuais (VMs), discos, interfaces de rede e outros elementos que compõem nossa solução como uma unidade.

Podemos criar um grupo de recursos com o comando az group createAzure CLI . Este comando leva um para fornecer um --name nome de grupo de recursos exclusivo em nossa assinatura. O comando também usa a para fornecer a --location região padrão do Azure para os recursos.

No entanto, estamos usando o ambiente seguro gratuito do Azure, portanto, você não precisa criar um grupo de recursos. Em vez disso, você pode usar o grupo de recursos criado anteriormente [nome do grupo de recursos da área restrita] neste exercício.

Transferir e examinar um modelo básico do Resource Manager

  1. No Cloud Shell, execute o seguinte curl comando para baixar o modelo do GitHub:

    curl https://raw.githubusercontent.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/master/basic-template/template.json > basic-template.json
    
  2. Para visualizar o modelo, abra-o no editor incorporado:

    code basic-template.json
    

    A definição de fluxo de trabalho do aplicativo lógico descrita no template.json é mostrada na lista a seguir:

    {
        "$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]"
            }
         }
    }
    

    Como você pode ver na definição JSON anterior, e como o nome do modelo sugere, esse fluxo de trabalho de aplicativo lógico é básico. Vamos examinar os principais componentes desta aplicação.

    No fragmento a seguir, podemos ver que a aplicação se chama HelloLogicAppsTemplate. Esse nome é codificado no modelo. O local em que o aplicativo é executado também é codificado para westus2.

    "name": "HelloLogicAppsTemplate",
    "location": "westus2",
    

    Rolando para baixo até a seção de gatilhos , vemos que o fluxo de trabalho é acionado com uma solicitação HTTP GET. O acionador é denominado manual.

    "triggers": {
        "manual": {
            "type": "Request",
            "kind": "Http",
            "inputs": {
                "method": "GET",
                "schema": {}
            }
        }
    },
    

    Mais abaixo, na seção de ações, aprendemos que esse fluxo de trabalho contém uma etapa ou ação. Esta ação responde à solicitação com a mensagem Hello Azure Logic Apps Template!.

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

    A seção de saídas do modelo do Gerenciador de Recursos tem uma única saída chamada logicAppUrl. Essa variável de saída lista a URL do recurso do aplicativo lógico implantado. Esse URL facilita o teste do aplicativo. A saída é usada listCallbackURL para criar a URL, mas o nome do fluxo de trabalho e o nome do gatilho são codificados aqui.

    "outputs": {
        "logicAppUrl": {
           "type": "string",
           "value": "[listCallbackURL(concat(resourceId('Microsoft.Logic/workflows/', 'HelloLogicAppsTemplate'), '/triggers/manual'), '2017-07-01').value]"
        }
     }
    

    Vamos agora implementar esta aplicação lógica e testá-la.

Validar e implementar o modelo

Para implantar nosso recurso de aplicativo lógico, usaremos o az deployment group create comando porque estamos implantando em um grupo de recursos. Ao implementar com este comando, pode optar por implementar um modelo remoto ao especificar a localização com o parâmetro --template-uri. No nosso caso, queremos implementar o modelo que temos localmente, portanto, vamos definir o parâmetro --template-file.

  1. No Cloud Shell, execute az deployment group validate para validar o modelo:

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

    O argumento --template-file aponta para o modelo local. O nome de ficheiro do modelo é basic-template.json.

    Você verá um grande bloco JSON como saída, que informa que o modelo passou na validação.

    O Azure Resource Manager preenche os parâmetros do modelo e verifica se o mesmo seria executado com êxito na sua subscrição.

    Se a validação falhar, você verá uma descrição detalhada da falha na saída.

  2. Execute o seguinte az deployment group create comando no Cloud Shell para implantar o recurso de aplicativo lógico definido por nosso modelo básico em nosso grupo de recursos de área restrita:

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

    Este comando é semelhante ao comando anterior, mas também inclui o argumento --name para dar um nome à sua implementação.

    A conclusão deste comando demora dois a três minutos. Quando a implantação for concluída, você verá outro grande bloco JSON como saída que descreve a implantação. Você verá provisioningState no resultado JSON com o valor Succeeded.

Verificar a implementação

  1. Execute az deployment group show para verificar a implantação:

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

    Você vê o mesmo bloco JSON que viu anteriormente. Pode executar este comando posteriormente, se precisar destes detalhes sobre a implementação. O resultado é estruturado como JSON para que seja mais fácil de utilizar em eventuais ferramentas para controlar as suas implementações e utilização da cloud.

  2. Para ver a aplicação em ação, localize o valor logicAppUrl no resultado do JSON. Selecione o URL ou copie-o e cole-o em uma nova janela do navegador. A página exibe a mensagem Hello Azure Logic Apps Template! , conforme mostrado na captura de tela a seguir:

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

Parabéns! Você implantou com êxito um fluxo de trabalho de aplicativo lógico usando um modelo do Azure Resource Manager.

Como observamos neste exercício, o modelo básico tem muitos valores codificados. Esses valores tornam o modelo menos flexível do que gostaríamos. Podemos melhorar a situação usando parâmetros.