Oefening: een eenvoudige Azure Logic Apps-werkstroom implementeren met behulp van een ARM-sjabloon

Voltooid

In deze les implementeren we een werkstroom in Azure Logic Apps met behulp van een Azure Resource Manager-sjabloon.

Resources maken in Azure

Normaal gesproken maken we eerst een resourcegroep om alle items te bewaren die we moeten maken. Een resourcegroep helpt ons bij het beheren van alle virtuele machines (VM's), schijven, netwerkinterfaces en andere elementen waaruit onze oplossing bestaat als een eenheid.

We kunnen een resourcegroep maken met de Azure CLI-opdracht az group create. Met deze opdracht wordt een --name unieke resourcegroepnaam in ons abonnement opgegeven. Met de opdracht wordt ook de --location standaard Azure-regio voor de resources opgegeven.

We gebruiken echter de gratis Azure-sandboxomgeving, dus u hoeft geen resourcegroep te maken. In plaats daarvan kunt u in deze oefening de eerder gemaakte resourcegroep [naam sandbox-resourcegroep] gebruiken.

Een eenvoudige Resource Manager-sjabloon downloaden en onderzoeken

  1. Voer vanuit Cloud Shell de volgende curl opdracht uit om de sjabloon te downloaden vanuit GitHub:

    curl https://raw.githubusercontent.com/MicrosoftDocs/mslearn-logic-apps-and-arm-templates/master/basic-template/template.json > basic-template.json
    
  2. Als u de sjabloon wilt weergeven, opent u deze in de ingebouwde editor:

    code basic-template.json
    

    De werkstroomdefinitie van de logische app die wordt beschreven in template.json wordt weergegeven in de volgende lijst:

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

    Zoals u kunt zien in de voorgaande JSON-definitie en zoals de sjabloonnaam al doet vermoeden, is deze werkstroom voor logische apps eenvoudig. We gaan eens kijken naar de belangrijkste componenten van deze app.

    In het volgende fragment zien we dat de app HelloLogicAppsTemplate wordt genoemd. Deze naam is vastgelegd in de sjabloon. De locatie waarop de app wordt uitgevoerd, is ook vastgelegd in westus2.

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

    Als u omlaag schuift naar de sectie triggers , zien we dat de werkstroom wordt geactiveerd met een HTTP GET-aanvraag. De trigger heeft de naam manual.

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

    Verderop in de sectie acties leren we dat deze werkstroom één stap of actie bevat. Deze actie reageert op de aanvraag met het bericht Hello Azure Logic Apps Template!.

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

    De uitvoersectie van de Resource Manager-sjabloon bevat één uitvoer met de naam logicAppUrl. Deze uitvoervariabele bevat de URL voor de geïmplementeerde logische app-resource. Deze URL maakt het testen van de app eenvoudiger. De uitvoer maakt gebruik listCallbackURL van de URL, maar de naam van de werkstroom en de triggernaam zijn hier beide vastgelegd.

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

    We gaan nu deze logische app implementeren en testen.

De sjabloon valideren en implementeren

Als u de resource van de logische app wilt implementeren, gebruiken we de az deployment group create opdracht omdat we implementeren in een resourcegroep. Bij het implementeren met deze opdracht kunt u ervoor kiezen een externe sjabloon te implementeren door de locatie ervan op te geven met parameter --template-uri. In dit geval willen we de sjabloon lokaal implementeren, dus stellen we parameter --template-file in.

  1. Voer vanuit Cloud Shell uit az deployment group validate om de sjabloon te valideren:

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

    Argument --template-file verwijst naar de lokale sjabloon. De bestandsnaam van de sjabloon is basic-template.json.

    U ziet een groot JSON-blok als uitvoer, waarmee wordt aangegeven dat de sjabloon is gevalideerd.

    Azure Resource Manager vult de sjabloonparameters in en controleert of de sjabloon met succes kan worden uitgevoerd in uw abonnement.

    Als de validatie is mislukt, ziet u een gedetailleerde beschrijving van de fout in de uitvoer.

  2. Voer de volgende az deployment group create opdracht uit in Cloud Shell om de logische app-resource te implementeren die is gedefinieerd door onze basissjabloon in onze sandbox-resourcegroep:

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

    Deze opdracht lijkt op de vorige opdracht, maar bevat ook het argument --name om de implementatie een naam te geven.

    Het uitvoeren van deze opdracht neemt ongeveer twee à drie minuten in beslag. Wanneer de implementatie is voltooid, ziet u een ander groot JSON-blok als uitvoer waarin de implementatie wordt beschreven. U ziet provisioningState in het JSON-resultaat met de waarde Succeeded.

Implementatie verifiëren

  1. Voer deze opdracht uit az deployment group show om de implementatie te controleren:

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

    U ziet hetzelfde JSON-blok dat u eerder hebt gezien. U kunt deze opdracht later altijd opnieuw uitvoeren als u deze gegevens van de implementatie wilt opvragen. De uitvoer is gestructureerd als JSON omdat de gegevens dan gemakkelijker kunnen worden gebruikt in andere hulpprogramma’s die u mogelijk gebruikt voor het traceren van implementaties en cloudgebruik.

  2. Als u de app in werking wilt zien, zoekt u de waarde logicAppUrl in het JSON-resultaat. Selecteer de URL of kopieer en plak deze in een nieuw browservenster. Op de pagina wordt het bericht Hello Azure Logic Apps Template! weergegeven, zoals wordt weergegeven in de volgende schermopname:

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

Gefeliciteerd. U hebt een werkstroom voor een logische app geïmplementeerd met behulp van een Azure Resource Manager-sjabloon.

Zoals we in deze oefening hebben genoteerd, heeft de basissjabloon veel vastgelegde waarden. Deze waarden maken de sjabloon minder flexibel dan we willen. We kunnen de situatie verbeteren met behulp van parameters.