Delen via


Overzicht: Implementatie voor Azure Logic Apps automatiseren met behulp van Azure Resource Manager-sjablonen

Van toepassing op: Azure Logic Apps (verbruik)

Wanneer u klaar bent om het maken en implementeren van uw logische app te automatiseren, kunt u de onderliggende werkstroomdefinitie van uw logische app uitbreiden naar een Azure Resource Manager-sjabloon. Deze sjabloon definieert de infrastructuur, resources, parameters en andere informatie voor het inrichten en implementeren van uw logische app. Door parameters te definiëren voor waarden die variëren bij de implementatie, ook wel parameteriseren genoemd, kunt u logische apps herhaaldelijk en consistent implementeren op basis van verschillende implementatiebehoeften.

Als u bijvoorbeeld implementeert in omgevingen voor ontwikkeling, testen en productie, gebruikt u waarschijnlijk verschillende verbindingsreeks s voor elke omgeving. U kunt sjabloonparameters declareren die verschillende verbindingsreeks accepteren en deze tekenreeksen vervolgens opslaan in een afzonderlijk parameterbestand. Op die manier kunt u deze waarden wijzigen zonder de sjabloon bij te werken en opnieuw te implementeren. Voor scenario's waarin u parameterwaarden hebt die gevoelig zijn of moeten worden beveiligd, zoals wachtwoorden en geheimen, kunt u deze waarden opslaan in Azure Key Vault en uw parameterbestand deze waarden laten ophalen. In deze scenario's zou u echter opnieuw implementeren om de huidige waarden op te halen.

In dit overzicht worden de kenmerken in een Resource Manager-sjabloon beschreven die een werkstroomdefinitie voor logische apps bevat. Zowel de sjabloon als de werkstroomdefinitie gebruiken JSON-syntaxis, maar er zijn enkele verschillen omdat de werkstroomdefinitie ook het schema workflowdefinitietaal volgt. Sjabloonexpressies en werkstroomdefinitieexpressies verschillen bijvoorbeeld in de wijze waarop ze verwijzen naar parameters en de waarden die ze kunnen accepteren.

Tip

Gebruik Visual Studio (gratis Community-editie of hoger) en de Azure Logic Apps Tools voor Visual Studio voor Visual Studio voor de eenvoudigste manier om een geldige sjabloon voor geparameteriseerde logische apps op te halen. Vervolgens kunt u uw logische app maken in Visual Studio of een bestaande logische app van Azure zoeken en downloaden naar Visual Studio.

U kunt ook sjablonen voor logische apps maken met behulp van Azure PowerShell met de LogicAppTemplate-module.

In de voorbeeldlogica-app in dit onderwerp wordt een Office 365 Outlook-trigger gebruikt die wordt geactiveerd wanneer er een nieuwe e-mail binnenkomt en een Azure Blob Storage-actie waarmee een blob wordt gemaakt voor de hoofdtekst van de e-mail en die blob wordt geüpload naar een Azure Storage-container. In de voorbeelden ziet u ook hoe u waarden kunt parameteriseren die variëren bij de implementatie.

Zie de volgende onderwerpen voor meer informatie over Resource Manager-sjablonen:

Zie Microsoft.Logic-resourcetypen voor informatie over sjabloonresources die specifiek zijn voor logische apps, integratieaccounts en artefacten van integratieaccounts.

Zie de volgende voorbeelden voor voorbeelden van sjablonen voor logische apps:

Voor de REST API van Azure Logic Apps begint u met het overzicht van de Rest API van Azure Logic Apps.

Sjabloonstructuur

Op het hoogste niveau volgt een Resource Manager-sjabloon deze structuur, die volledig wordt beschreven in de sjabloonstructuur en syntaxis van Azure Resource Manager:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {},
   "variables": {},
   "functions": [],
   "resources": [],
   "outputs": {}
}

Voor een sjabloon voor een logische app werkt u voornamelijk met deze sjabloonobjecten:

Kenmerk Beschrijving
parameters Declareert de sjabloonparameters voor het accepteren van de waarden die moeten worden gebruikt bij het maken en aanpassen van resources voor implementatie in Azure. Deze parameters accepteren bijvoorbeeld de waarden voor de naam en locatie van uw logische app, verbindingen en andere resources die nodig zijn voor de implementatie. U kunt deze parameterwaarden opslaan in een parameterbestand, dat verderop in dit onderwerp wordt beschreven. Zie Parameters - Resource Manager-sjabloonstructuur en syntaxis voor algemene informatie.
resources Definieert de resources voor het maken of bijwerken en implementeren van een Azure-resourcegroep, zoals uw logische app, verbindingen, Azure-opslagaccounts, enzovoort. Zie Resources - Resource Manager-sjabloonstructuur en syntaxis voor algemene informatie.

Uw sjabloon voor logische apps maakt gebruik van deze bestandsindeling:

<logic-app-name>.json

Belangrijk

Sjabloonsyntaxis is hoofdlettergevoelig, dus zorg ervoor dat u consistente behuizing gebruikt.

Sjabloonparameters

Een sjabloon voor een logische app heeft meerdere parameters objecten die op verschillende niveaus bestaan en verschillende functies uitvoeren. Op het hoogste niveau kunt u bijvoorbeeld sjabloonparameters declareren voor de waarden die tijdens de implementatie moeten worden geaccepteerd en gebruikt bij het maken en implementeren van resources in Azure, bijvoorbeeld:

  • Uw logische app

  • Verbindingen die uw logische app gebruikt voor toegang tot andere services en systemen via beheerde connectors

  • Andere resources die uw logische app nodig heeft voor implementatie

    Als uw logische app bijvoorbeeld gebruikmaakt van een integratieaccount voor B2B-scenario's (Business-to-Business), declareert het object op het hoogste niveau parameters van de sjabloon de parameter die de resource-id voor dat integratieaccount accepteert.

Hier volgt de algemene structuur en syntaxis voor een parameterdefinitie, die volledig wordt beschreven door Parameters - Resource Manager-sjabloonstructuur en -syntaxis:

"<parameter-name>": {
   "type": "<parameter-type>",
   "defaultValue": <default-parameter-value>,
   <other-parameter-attributes>,
   "metadata": {
      "description": "<parameter-description>"
   }
},

In dit voorbeeld ziet u alleen de sjabloonparameters voor de waarden die worden gebruikt voor het maken en implementeren van deze resources in Azure:

  • Naam en locatie voor uw logische app
  • Id die moet worden gebruikt voor een integratieaccount dat is gekoppeld aan de logische app
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {
         "type": "string",
         "minLength": 1,
         "maxLength": 80,
         "defaultValue": "MyLogicApp",
         "metadata": {
            "description": "The resource name for the logic app"
         }
      },
      "LogicAppLocation": {
         "type": "string",
         "minLength": 1,
         "defaultValue": "[resourceGroup().location]",
         "metadata": {
            "description": "The resource location for the logic app"
         }
      },
      "LogicAppIntegrationAccount": {
         "type":"string",
         "minLength": 1,
         "defaultValue": "/subscriptions/<Azure-subscription-ID>/resourceGroups/fabrikam-integration-account-rg/providers/Microsoft.Logic/integrationAccounts/fabrikam-integration-account",
         "metadata": {
            "description": "The ID to use for the integration account"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [],
   "outputs": {}
}

Behalve voor parameters die waarden verwerken die gevoelig zijn of moeten worden beveiligd, zoals gebruikersnamen, wachtwoorden en geheimen, bevatten defaultValue al deze parameters kenmerken, hoewel in sommige gevallen de standaardwaarden lege waarden zijn. De implementatiewaarden die voor deze sjabloonparameters moeten worden gebruikt, worden verstrekt door het voorbeeldparametersbestand dat verderop in dit onderwerp wordt beschreven.

Zie de volgende onderwerpen voor meer informatie over het beveiligen van sjabloonparameters:

Andere sjabloonobjecten verwijzen vaak naar sjabloonparameters, zodat ze de waarden kunnen gebruiken die door sjabloonparameters worden doorgegeven, bijvoorbeeld:

  • Het resourceobject van uw sjabloon, dat verderop in dit onderwerp wordt beschreven, definieert elke resource in Azure die u wilt maken en implementeren, zoals de resourcedefinitie van uw logische app. Deze resources gebruiken vaak sjabloonparameterwaarden, zoals de naam en locatie en verbindingsgegevens van uw logische app.

  • Op een dieper niveau in de resourcedefinitie van uw logische app declareert het parameterobject van uw werkstroomdefinitie parameters voor de waarden die moeten worden gebruikt tijdens de runtime van uw logische app. U kunt bijvoorbeeld parameters voor werkstroomdefinities declareren voor de gebruikersnaam en het wachtwoord die een HTTP-trigger gebruikt voor verificatie. Als u de waarden voor parameters voor werkstroomdefinities wilt opgeven, gebruikt u het parameters object dat zich buiten uw werkstroomdefinitie bevindt, maar nog steeds in de resourcedefinitie van uw logische app. In dit buitenste parameters object kunt u verwijzen naar eerder gedeclareerde sjabloonparameters, die waarden bij de implementatie kunnen accepteren vanuit een parameterbestand.

Wanneer u naar parameters verwijst, gebruiken sjabloonexpressies en -functies verschillende syntaxis en gedragen ze zich anders dan expressies en functies voor werkstroomdefinities. Zie Verwijzingen naar parameters verderop in dit onderwerp voor meer informatie over deze verschillen.

Aanbevolen procedures - sjabloonparameters

Hier volgen enkele aanbevolen procedures voor het definiëren van parameters:

  • Declareer alleen parameters voor waarden die variëren, afhankelijk van uw implementatiebehoeften. Declareer geen parameters voor waarden die hetzelfde blijven in verschillende implementatievereisten.

  • Neem het defaultValue kenmerk op dat lege waarden kan opgeven voor alle parameters, met uitzondering van waarden die gevoelig zijn of moeten worden beveiligd. Gebruik altijd beveiligde parameters voor gebruikersnamen, wachtwoorden en geheimen. Als u gevoelige parameterwaarden wilt verbergen of beveiligen, volgt u de richtlijnen in deze onderwerpen:

  • Als u namen van sjabloonparameters wilt onderscheiden van namen van parameters voor werkstroomdefinities, kunt u beschrijvende sjabloonparameternamen gebruiken, bijvoorbeeld: TemplateFabrikamPassword

Zie Best practices voor sjabloonparameters voor meer aanbevolen procedures voor sjablonen.

Sjabloonparametersbestand

Als u de waarden voor sjabloonparameters wilt opgeven, slaat u deze waarden op in een parameterbestand. Op die manier kunt u verschillende parametersbestanden gebruiken op basis van uw implementatiebehoeften. Dit is de indeling van de bestandsnaam die u wilt gebruiken:

  • Naam van sjabloonbestand voor logische app: <logic-app-name.json>
  • Bestandsnaam van parameters: <logic-app-name>.parameters.json

Hier volgt de structuur in het parameterbestand, dat een sleutelkluisverwijzing bevat voor het doorgeven van een beveiligde parameterwaarde met Azure Key Vault:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "<parameter-name-1>": {
         "value": "<parameter-value>"
      },
      "<parameter-name-2>": {
         "value": "<parameter-value>"
      },
      "<secured-parameter-name>": {
         "reference": {
            "keyVault": {
               "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/<key-vault-name>"
            },
            "secretName: "<secret-name>"
         }
      },
      <other-parameter-values>
   }
}

In dit voorbeeldparametersbestand worden de waarden opgegeven voor de sjabloonparameters die eerder in dit onderwerp zijn gedeclareerd:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "LogicAppName": {
         "value": "Email-Processor-Logic-App"
      },
      "LogicAppLocation": {
         "value": "westeurope"
      }
   }
}

Sjabloonresources

Uw sjabloon heeft een resources object, een matrix die definities bevat voor elke resource die kan worden gemaakt en geïmplementeerd in Azure, zoals de resourcedefinitie van uw logische app, verbindingsresourcedefinities en eventuele andere resources die uw logische app nodig heeft voor implementatie.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Start connection resource definitions
      {
         <connection-resource-definition-1>
      },
      {
         <connection-resource-definition-2>
      }
   ],
   "outputs": {}
}

Notitie

Sjablonen kunnen resourcedefinities voor meerdere logische apps bevatten, dus zorg ervoor dat al uw logische app-resources dezelfde Azure-resourcegroep opgeven. Wanneer u de sjabloon implementeert in een Azure-resourcegroep met behulp van Visual Studio, wordt u gevraagd om welke logische app u wilt openen. Uw Azure-resourcegroepproject kan ook meer dan één sjabloon bevatten, dus zorg ervoor dat u het juiste parameterbestand selecteert wanneer u hierom wordt gevraagd.

Resourcedefinities weergeven

Als u de resourcedefinities voor alle resources in een Azure-resourcegroep wilt bekijken, downloadt u uw logische app van Azure naar Visual Studio. Dit is de eenvoudigste manier om een geldige sjabloon voor een geparameteriseerde logische app te maken die voornamelijk gereed is voor implementatie.

Zie de volgende onderwerpen voor algemene informatie over sjabloonbronnen en hun kenmerken:

Resourcedefinitie van logische app

De werkstroomresourcedefinitie van uw logische app in een sjabloon begint met het properties object, dat deze informatie bevat:

  • De status van uw logische app bij de implementatie
  • De id voor een integratieaccount dat wordt gebruikt door uw logische app
  • De werkstroomdefinitie van uw logische app
  • Een parameters object waarmee de waarden worden ingesteld die tijdens runtime moeten worden gebruikt
  • Andere resourcegegevens over uw logische app, zoals naam, type, locatie, configuratie-instellingen voor runtime, enzovoort
{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            "state": "<Enabled or Disabled>",
            "integrationAccount": {
               "id": "[parameters('LogicAppIntegrationAccount')]" // Template parameter reference
            },
            "definition": {<workflow-definition>},
            "parameters": {<workflow-definition-parameter-values>},
            "accessControl": {},
            "runtimeConfiguration": {}
         },
         "name": "[parameters('LogicAppName')]", // Template parameter reference
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]", // Template parameter reference
         "tags": {
           "displayName": "LogicApp"
         },
         "apiVersion": "2019-05-01",
         "dependsOn": [
         ]
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Dit zijn de kenmerken die specifiek zijn voor de resourcedefinitie van uw logische app:

Kenmerk Vereist Type Description
state Ja String De status van uw logische app bij de implementatie, waarbij Enabled betekent dat uw logische app live is en Disabled dat uw logische app inactief is. Als u bijvoorbeeld niet klaar bent om uw logische app live te laten gaan, maar een conceptversie wilt implementeren, kunt u de Disabled optie gebruiken.
integrationAccount Nee Object Als uw logische app gebruikmaakt van een integratieaccount, waarin artefacten voor B2B-scenario's (Business-to-Business) worden opgeslagen, bevat dit object het id kenmerk, waarmee de id voor het integratieaccount wordt opgegeven.
definition Ja Object De onderliggende werkstroomdefinitie van uw logische app. Dit is hetzelfde object dat wordt weergegeven in de codeweergave en wordt volledig beschreven in het onderwerp Schemadefinitietaal voor werkstroomdefinitietaal . In deze werkstroomdefinitie declareert het parameters object parameters voor de waarden die tijdens de runtime van de logische app moeten worden gebruikt. Zie Werkstroomdefinitie en -parameters voor meer informatie.

Als u de kenmerken in de werkstroomdefinitie van uw logische app wilt weergeven, schakelt u over van de ontwerpweergave naar de codeweergave in Azure Portal of Visual Studio, of gebruikt u een hulpprogramma zoals Azure Resource Explorer.

parameters Nee Object De parameterwaarden voor de werkstroomdefinitie die moeten worden gebruikt tijdens de runtime van de logische app. De parameterdefinities voor deze waarden worden weergegeven in het parameterobject van uw werkstroomdefinitie. Als uw logische app beheerde connectors gebruikt voor toegang tot andere services en systemen, bevat dit object ook een $connections object waarmee de verbindingswaarden worden ingesteld die tijdens runtime moeten worden gebruikt.
accessControl Nee Object Voor het opgeven van beveiligingskenmerken voor uw logische app, zoals het beperken van IP-toegang tot aanvragen van triggers of invoer en uitvoer van de uitvoeringsgeschiedenis. Zie Beveiligde toegang tot logische apps voor meer informatie.
runtimeConfiguration Nee Object Voor het opgeven van eigenschappen operationOptions die bepalen hoe uw logische app zich gedraagt tijdens runtime. U kunt uw logische app bijvoorbeeld uitvoeren in de modus voor hoge doorvoer.

Zie Microsoft.Logic-resourcetypen voor meer informatie over resourcedefinities voor deze Azure Logic Apps-objecten:

Werkstroomdefinitie en -parameters

De werkstroomdefinitie van uw logische app wordt weergegeven in het definition object, dat wordt weergegeven in het object in de properties resourcedefinitie van uw logische app. Dit definition object is hetzelfde object dat wordt weergegeven in de codeweergave en wordt volledig beschreven in de schemaverwijzing voor het onderwerp Werkstroomdefinitietaal . Uw werkstroomdefinitie bevat een binnenste parameters declaratieobject waar u nieuwe of bestaande parameters kunt definiëren voor de waarden die tijdens runtime door uw werkstroomdefinitie worden gebruikt. U kunt vervolgens verwijzen naar deze parameters in de trigger of acties in uw werkstroom. Dit parameters object is standaard leeg, tenzij uw logische app verbindingen met andere services en systemen maakt via beheerde connectors.

Als u de waarden voor parameters voor werkstroomdefinities wilt instellen, gebruikt u het parameters object dat zich buiten uw werkstroomdefinitie bevindt, maar nog steeds in de resourcedefinitie van uw logische app. In dit buitenste parameters object kunt u vervolgens verwijzen naar de eerder gedeclareerde sjabloonparameters, die waarden bij de implementatie kunnen accepteren vanuit een parameterbestand.

Tip

Als best practice kunt u niet rechtstreeks verwijzen naar sjabloonparameters, die tijdens de implementatie worden geëvalueerd, vanuit de werkstroomdefinitie. Declareer in plaats daarvan een werkstroomdefinitieparameter, die u vervolgens kunt instellen in het parameters object dat zich buiten uw werkstroomdefinitie bevindt, maar nog steeds in de resourcedefinitie van uw logische app. Zie Verwijzingen naar parameters voor meer informatie.

Deze syntaxis laat zien waar u parameters kunt declareren op zowel de sjabloon- als werkstroomdefinitieniveaus, samen met waar u deze parameterwaarden kunt instellen door te verwijzen naar de parameters voor de sjabloon- en werkstroomdefinitie:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "<template-parameter-name>": {
         "type": "<parameter-type>",
         "defaultValue": "<parameter-default-value>",
         "metadata": {
            "description": "<parameter-description>"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <other-logic-app-resource-properties>,
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {<action-definitions>},
               // Workflow definition parameters
               "parameters": {
                  "<workflow-definition-parameter-name>": {
                     "type": "<parameter-type>",
                     "defaultValue": "<parameter-default-value>",
                     "metadata": {
                        "description": "<parameter-description>"
                     }
                  }
               },
               "triggers": {
                  "<trigger-name>": {
                     "type": "<trigger-type>",
                     "inputs": {
                         // Workflow definition parameter reference
                         "<attribute-name>": "@parameters('<workflow-definition-parameter-name')"
                     }
                  }
               },
               <...>
            },
            // Workflow definition parameter value
            "parameters": {
               "<workflow-definition-parameter-name>": { 
                  "value": "[parameters('<template-parameter-name>')]"
               }
            },
            "accessControl": {}
         },
         <other-logic-app-resource-definition-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Parameters voor definitie van beveiligde werkstroom

Voor een parameter voor werkstroomdefinities die gevoelige informatie, wachtwoorden, toegangssleutels of geheimen tijdens runtime verwerkt, declareert of bewerkt u de parameter om het securestring of secureobject parametertype te gebruiken. U kunt naar deze parameter verwijzen in en binnen uw werkstroomdefinitie. Declareer op het hoogste niveau van de sjabloon een parameter met hetzelfde type om deze informatie tijdens de implementatie te verwerken.

Als u de waarde voor de parameter voor de werkstroomdefinitie wilt instellen, gebruikt u het parameters object dat zich buiten de werkstroomdefinitie bevindt , maar nog steeds binnen de resourcedefinitie van de logische app om te verwijzen naar de sjabloonparameter. Als u de waarde wilt doorgeven aan de sjabloonparameter bij de implementatie, slaat u die waarde op in Azure Key Vault en verwijst u naar die sleutelkluis in het parameterbestand dat wordt gebruikt door uw sjabloon bij de implementatie.

In deze voorbeeldsjabloon ziet u hoe u deze taken kunt uitvoeren door beveiligde parameters te definiëren wanneer dat nodig is, zodat u hun waarden kunt opslaan in Azure Key Vault:

  • Declareer beveiligde parameters voor de waarden die worden gebruikt om toegang te verifiëren.
  • Gebruik deze waarden op zowel het sjabloon- als werkstroomdefinitieniveau.
  • Geef deze waarden op met behulp van een parameterbestand.

Sjabloon

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      <previously-defined-template-parameters>,
      // Additional template parameters for passing values to use in workflow definition
      "TemplateAuthenticationType": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The type of authentication used for the Fabrikam portal"
         }
      },
      "TemplateFabrikamPassword": {
         "type": "securestring",
         "metadata": {
            "description": "The password for the Fabrikam portal"
         }
      },
      "TemplateFabrikamUserName": {
         "type": "securestring",
         "metadata": {
            "description": "The username for the Fabrikam portal"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <other-logic-app-resource-properties>,
            // Start workflow definition
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {<action-definitions>},
               // Workflow definition parameters
               "parameters": {
                  "authenticationType": {
                     "type": "string",
                     "defaultValue": "",
                     "metadata": {
                        "description": "The type of authentication used for the Fabrikam portal"
                     }
                  },
                  "fabrikamPassword": {
                     "type": "securestring",
                     "metadata": {
                        "description": "The password for the Fabrikam portal"
                     }
                  },
                  "fabrikamUserName": {
                     "type": "securestring",
                     "metadata": {
                        "description": "The username for the Fabrikam portal"
                     }
                  }
               },
               "triggers": {
                  "HTTP": {
                     "inputs": {
                        "authentication": {
                           // Reference workflow definition parameters
                           "password": "@parameters('fabrikamPassword')",
                           "type": "@parameters('authenticationType')",
                           "username": "@parameters('fabrikamUserName')"
                        }
                     },
                     "recurrence": {<...>},
                     "type": "Http"
                  }
               },
               <...>
            },
            // End workflow definition
            // Start workflow definition parameter values
            "parameters": {
               "authenticationType": {
                  "value": "[parameters('TemplateAuthenticationType')]" // Template parameter reference
               },
               "fabrikamPassword": {                  
                  "value": "[parameters('TemplateFabrikamPassword')]" // Template parameter reference
               },
               "fabrikamUserName": {
                  "value": "[parameters('TemplateFabrikamUserName')]" // Template parameter reference
               }
            },
            "accessControl": {}
         },
         <other-logic-app-resource-attributes>
      }
      // End logic app resource definition
   ],
   "outputs": {}
}

Parameterbestand

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      <previously-defined-template-parameter-values>,
     "TemplateAuthenticationType": {
        "value": "Basic"
     },
     "TemplateFabrikamPassword": {
        "reference": {
           "keyVault": {
              "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
           },
           "secretName": "FabrikamPassword"
        }
     },
     "TemplateFabrikamUserName": {
        "reference": {
           "keyVault": {
              "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
           },
           "secretName": "FabrikamUserName"
        }
     }
   }
}

Aanbevolen procedures : parameters voor werkstroomdefinities

Volg deze aanbevolen procedures om ervoor te zorgen dat logic app Designer parameters voor werkstroomdefinities correct kan weergeven:

Zie Parameters - Workflow Definition Language voor meer informatie over parameters voor werkstroomdefinities.

Verbindingsresourcedefinities

Wanneer uw logische app verbindingen met andere services en systemen maakt en gebruikt met behulp van beheerde connectors, bevat het object van resources uw sjabloon de resourcedefinities voor deze verbindingen. Hoewel u verbindingen maakt vanuit een logische app, zijn verbindingen afzonderlijke Azure-resources met hun eigen resourcedefinities. Als uw verbinding gebruikmaakt van een on-premises gegevensgatewayresource, bestaat deze resourcedefinitie ook afzonderlijk van de resourcedefinitie van de connector. Zie de resourcedefinities van de on-premises gegevensgateway en Microsoft.Web connectionGateways voor meer informatie.

Als u verbindingsresourcedefinities wilt bekijken, downloadt u uw logische app van Azure naar Visual Studio. Dit is de eenvoudigste manier om een geldige sjabloon voor een geparameteriseerde logische app te maken die meestal klaar is voor implementatie.

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {<template-parameters>},
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Start connection resource definitions
      {
         <connection-resource-definition-1>
      },
      {
         <connection-resource-definition-2>
      }
   ],
   "outputs": {}
}

Verbindingsresourcedefinities verwijzen naar de parameters op het hoogste niveau van de sjabloon voor hun waarden, zodat u deze waarden bij de implementatie kunt opgeven met behulp van een parameterbestand. Zorg ervoor dat verbindingen dezelfde Azure-resourcegroep en -locatie gebruiken als uw logische app.

Hier volgt een voorbeeld van een resourcedefinitie voor een Office 365 Outlook-verbinding en de bijbehorende sjabloonparameters:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "office365_1_Connection_Name": {
         "type": "string",
         "defaultValue": "office365",
         "metadata": {
            "description": "The resource name for the Office 365 Outlook connection"
         }
      },
      "office365_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The display name for the Office 365 Outlook connection"
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         <logic-app-resource-definition>
      },
      // Office 365 Outlook API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         // Template parameter reference for connection name
         "name": "[parameters('office365_1_Connection_Name')]",
         // Template parameter reference for connection resource location. Must match logic app location.
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               // Connector ID
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            // Template parameter reference for connection display name
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      }
   ],
   "outputs": {}
}

De resourcedefinitie van uw logische app werkt ook op deze manieren met verbindingsresourcedefinities:

  • Binnen uw werkstroomdefinitie declareert het parameters object een $connections parameter voor de verbindingswaarden die moeten worden gebruikt tijdens de runtime van de logische app. De trigger of actie waarmee een verbinding wordt gemaakt, maakt ook gebruik van de bijbehorende waarden die door deze $connections parameter worden doorgegeven.

  • Buiten de werkstroomdefinitie, maar nog steeds in de resourcedefinitie van uw logische app, parameters worden de waarden ingesteld die tijdens runtime voor de $connections parameter moeten worden gebruikt door te verwijzen naar de bijbehorende sjabloonparameters. Deze waarden gebruiken sjabloonexpressies om te verwijzen naar resources die de metagegevens voor de verbindingen in uw logische app veilig opslaan.

    Metagegevens kunnen bijvoorbeeld verbindingsreeks en toegangstokens bevatten, die u kunt opslaan in Azure Key Vault. Als u deze waarden wilt doorgeven aan uw sjabloonparameters, verwijst u naar die sleutelkluis in het parameterbestand dat wordt gebruikt door uw sjabloon tijdens de implementatie. Zie Verwijzingen naar parameters verderop in dit onderwerp voor meer informatie over verschillen in verwijzingen naar parameters .

    Wanneer u de werkstroomdefinitie van uw logische app opent in de codeweergave via Azure Portal of Visual Studio, wordt het $connections object buiten uw werkstroomdefinitie weergegeven, maar op hetzelfde niveau. Deze volgorde in de codeweergave maakt deze parameters gemakkelijker te raadplegen wanneer u de werkstroomdefinitie handmatig bijwerkt:

    {
       "$connections": {<workflow-definition-parameter-connection-values-runtime},
       "definition": {<workflow-definition>}
    }
    
  • De resourcedefinitie van uw logische app heeft een dependsOn object dat de afhankelijkheden aangeeft van de verbindingen die door uw logische app worden gebruikt.

Elke verbinding die u maakt, heeft een unieke naam in Azure. Wanneer u meerdere verbindingen met dezelfde service of hetzelfde systeem maakt, wordt elke verbindingsnaam toegevoegd met een getal, dat wordt verhoogd met elke nieuwe verbinding die bijvoorbeeld office365wordt gemaakt, office365-1enzovoort.

In dit voorbeeld ziet u de interacties tussen de resourcedefinitie van uw logische app en een verbindingsresourcedefinitie voor Office 365 Outlook:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "office365_1_Connection_Name": {<parameter-definition>},
      "office365_1_Connection_DisplayName": {<parameter-definition>}
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         // Start logic app resource definition
         "properties": {
            <...>,
            "definition": {
               <...>,
               "parameters": {
                  // Workflow definition "$connections" parameter
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               <...>
            },
            "parameters": {
               // Workflow definition "$connections" parameter values to use at runtime
               "$connections": {
                  "value": {
                     "office365": {
                        // Template parameter references
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]",
                        "connectionName": "[parameters('office365_1_Connection_Name')]"
                     }
                  }
               }
            }
         },
         <other-logic-app-resource-information>,
         "dependsOn": [
            "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]"
         ]
         // End logic app resource definition
      },
      // Office 365 Outlook API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         // Template parameter reference for connection name
         "name": "[parameters('office365_1_Connection_Name')]",
         // Template parameter reference for connection resource location. Must match logic app location.
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               // Connector ID
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            // Template parameter reference for connection display name
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      }
   ],
   "outputs": {}
}

Resourcedefinities voor on-premises gegevensgateway

Als uw verbinding gebruikmaakt van een on-premises gegevensgatewayresource, bestaat deze resourcedefinitie afzonderlijk van de resourcedefinitie van de connector. Voer de volgende stappen uit om de resourcedefinitie van de gegevensgateway weer te geven:

  1. Zoek en bekijk in Azure Portal de Azure-resource voor uw on-premises gegevensgateway.

  2. Selecteer in het resourcemenu onder Automation de optie Sjabloon Exporteren.

    Nadat Azure de sjabloon heeft gegenereerd, wordt de resourcedefinitie van de gateway weergegeven in het codevenster.

Zie Microsoft.Web connectionGateways voor meer informatie.

Verbindingsparameters beveiligen

Voor een verbindingsparameter die gevoelige informatie, wachtwoorden, toegangssleutels of geheimen verwerkt, bevat de resourcedefinitie van de verbinding een parameterValues object waarmee deze waarden worden opgegeven in de naam-waardepaarindeling. Als u deze informatie wilt verbergen, kunt u de sjabloonparameters voor deze waarden declareren of bewerken met behulp van de securestring of secureobject parametertypen. U kunt die informatie vervolgens opslaan in Azure Key Vault. Als u deze waarden wilt doorgeven aan uw sjabloonparameters, verwijst u naar die sleutelkluis in het parameterbestand dat wordt gebruikt door uw sjabloon tijdens de implementatie.

Hier volgt een voorbeeld van de accountnaam en toegangssleutel voor een Azure Blob Storage-verbinding:

Parameterbestand

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
   "contentVersion": "1.0.0.0",
   // Template parameter values
   "parameters": {
      "LogicAppName": {
         "value": "Email-Processor-Logic-App"
      },
      "LogicAppLocation": {
         "value": "westeurope"
      },
      "azureblob_1_Connection_Name": {
         "value": "Fabrikam-Azure-Blob-Storage-Connection"
      },
      "azureblob_1_Connection_DisplayName": {
         "value": "Fabrikam-Storage"
      },
      "azureblob_1_accountName": {
         "value": "Fabrikam-Storage-Account"
      },
      "azureblob_1_accessKey": {
         "reference": {
            "keyVault": {
               "id": "/subscriptions/<Azure-subscription-ID>/resourceGroups/<Azure-resource-group-name>/Microsoft.KeyVault/vaults/fabrikam-key-vault"
            },
            "secretName": "FabrikamStorageKey"
         }
      }
   }
}

Sjabloon

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   // Template parameters
   "parameters": {
      "LogicAppName": {<parameter-definition>},
      "LogicAppLocation": {<parameter-definition>},
      "azureblob_1_Connection_Name": {<parameter-definition>},
      "azureblob_1_Connection_DisplayName": {<parameter-definition>},
      "azureblob_1_accountName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }
      },
      "azureblob_1_accessKey": {
         "type": "secureobject",
         "metadata": {
            "description": "Specify a valid primary/secondary storage account access key."
         }
      }
   },
   "variables": {},
   "functions": [],
   "resources": [
      {
         "properties": {
            "state": "Disabled",
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {
                  // Azure Blob Storage action
                  "Create_blob": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              // Workflow definition parameter reference for values to use at runtime
                              "name": "@parameters('$connections')['azureblob']['connectionId']"
                           }
                        },
                     },
                     "method": "post",
                     "body": "@triggerBody()?['Body']",
                     "path": "/datasets/default/files",
                     "queries": {
                        "folderPath": "/emails",
                        "name": "@triggerBody()?['Subject']",
                        "queryParametersSingleEncoded": true
                     },
                     "runAfter": {},
                     "runtimeConfiguration": {
                        "contentTransfer": {
                           "transferMode": "Chunked"
                        }
                     }
                  }
               },
               "parameters": {
                  // Workflow definition parameter for values to use at runtime
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               "triggers": {<trigger-definition>},
               "contentVersion": "1.0.0.0",
               "outputs": {}
            },
            "parameters": {
               "$connections": {
                  "value": {
                     // Template parameter references for values to use at runtime
                     "azureblob": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
                        "connectionName": "[parameters('azureblob_1_Connection_Name')]"
                    }
                  }
               }
            },
            "name": "[parameters('LogicAppName')]",
            "type": "Microsoft.Logic/workflows",
            "location": "[parameters('LogicAppLocation')]",
            "tags": {
               "displayName": "LogicApp"
            },
            "apiVersion": "2019-05-01",
            // Template parameter reference for value to use at deployment
            "dependsOn": [
               "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]"
            ]
         }
      },
      // Azure Blob Storage API connection resource definition
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('azureblob_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]"
            },
            "displayName": "[parameters('azureblob_1_Connection_DisplayName')]",
            // Template parameter reference for values to use at deployment
            "parameterValues": {
               "accountName": "[parameters('azureblob_1_accountName')]",
               "accessKey": "[parameters('azureblob_1_accessKey')]"
            }
         }
      }
   ],
   "outputs": {}
}

Verbindingen verifiëren

Na de implementatie werkt uw logische app end-to-end met geldige parameters. U moet echter nog steeds OAuth-verbindingen autoriseren om geldige toegangstokens te genereren voor het verifiëren van uw referenties. Zie OAuth-verbindingen autoriseren voor meer informatie.

Sommige verbindingen ondersteunen het gebruik van een Microsoft Entra-service-principal om verbindingen te autoriseren voor een logische app die is geregistreerd in Microsoft Entra-id. Deze definitie van de Azure Data Lake-verbindingsresource laat bijvoorbeeld zien hoe u verwijst naar de sjabloonparameters die de informatie van de service-principal verwerken en hoe de sjabloon deze parameters declareert:

Definitie van verbindingsresource

{
   <other-template-objects>
   "type": "Microsoft.Web/connections",
   "apiVersion": "2016-06-01",
   "name": "[parameters('azuredatalake_1_Connection_Name')]",
   "location": "[parameters('LogicAppLocation')]",
   "properties": {
      "api": {
         "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', 'resourceGroup().location', '/managedApis/', 'azuredatalake')]"
      },
      "displayName": "[parameters('azuredatalake_1_Connection_DisplayName')]",
      "parameterValues": {
         "token:clientId": "[parameters('azuredatalake_1_token:clientId')]",
         "token:clientSecret": "[parameters('azuredatalake_1_token:clientSecret')]",
         "token:TenantId": "[parameters('azuredatalake_1_token:TenantId')]",
         "token:grantType": "[parameters('azuredatalake_1_token:grantType')]"
      }
   }
}
Kenmerk Beschrijving
token:clientId De toepassings- of client-id die is gekoppeld aan uw service-principal
token:clientSecret De sleutelwaarde die is gekoppeld aan uw service-principal
token:TenantId De map-id voor uw Microsoft Entra-tenant
token:grantType Het aangevraagde toekenningstype, dat moet zijn client_credentials. Zie Microsoft Identity Platform en de OAuth 2.0-clientreferentiestroom voor meer informatie.

Sjabloonparameterdefinities

Het object op het hoogste niveau van parameters de sjabloon declareert deze parameters voor de voorbeeldverbinding:

{
   "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
   "contentVersion": "1.0.0.0",
   "parameters": {
      "azuredatalake_1_Connection_Name": {
        "type": "string",
        "defaultValue": "azuredatalake"
      },
      "azuredatalake_1_Connection_DisplayName": {
        "type": "string",
        "defaultValue": "<connection-name>"
      },
      "azuredatalake_1_token:clientId": {
        "type": "securestring",
        "metadata": {
          "description": "Client (or Application) ID of the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:clientSecret": {
        "type": "securestring",
        "metadata": {
          "description": "Client secret of the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:TenantId": {
        "type": "securestring",
        "metadata": {
          "description": "The tenant ID of for the Azure Active Directory application."
        }
      },
      "azuredatalake_1_token:resourceUri": {
        "type": "string",
        "metadata": {
          "description": "The resource you are requesting authorization to use."
        }
      },
      "azuredatalake_1_token:grantType": {
        "type": "string",
        "metadata": {
          "description": "Grant type"
        },
        "defaultValue": "client_credentials",
        "allowedValues": [
          "client_credentials"
        ]
      },
      // Other template parameters
   }
   // Other template objects
}

Zie de volgende onderwerpen voor meer informatie over het werken met service-principals:

Verwijzingen naar parameters

Als u naar sjabloonparameters wilt verwijzen, kunt u sjabloonexpressies gebruiken met sjabloonfuncties die tijdens de implementatie worden geëvalueerd. Sjabloonexpressies gebruiken vierkante haken ([]):

"<attribute-name>": "[parameters('<template-parameter-name>')]"

Als u wilt verwijzen naar parameters voor werkstroomdefinitiedefinities, gebruikt u expressies en functies voor werkstroomdefinitietaal, die tijdens runtime worden geëvalueerd. U ziet mogelijk dat sommige sjabloonfuncties en werkstroomdefinitiefuncties dezelfde naam hebben. Expressies voor werkstroomdefinities beginnen met het symbool 'at' (@):

"<attribute-name>": "@parameters('<workflow-definition-parameter-name>')"

U kunt sjabloonparameterwaarden doorgeven aan de werkstroomdefinitie die uw logische app tijdens runtime kan gebruiken. Vermijd echter het gebruik van sjabloonparameters, expressies en syntaxis in uw werkstroomdefinitie, omdat logic app Designer geen sjabloonelementen ondersteunt. Bovendien kunnen syntaxis en expressies van sjablonen uw code bemoeilijken vanwege verschillen in wanneer expressies worden geëvalueerd.

Volg in plaats daarvan deze algemene stappen om de parameters voor werkstroomdefinities te declareren en ernaar te verwijzen die tijdens runtime moeten worden gebruikt, de sjabloonparameters te declareren en ernaar te verwijzen die tijdens de implementatie moeten worden gebruikt, en geef de waarden op die tijdens de implementatie moeten worden doorgegeven met behulp van een parameterbestand. Zie de sectie Werkstroomdefinitie en parameters eerder in dit onderwerp voor meer informatie.

  1. Maak uw sjabloon en declareer de sjabloonparameters voor de waarden die u tijdens de implementatie wilt accepteren en gebruiken.

  2. Declareer in uw werkstroomdefinitie de parameters voor de waarden die tijdens runtime moeten worden geaccepteerd en gebruikt. U kunt vervolgens verwijzen naar deze waarden in en binnen uw werkstroomdefinitie.

  3. Stel in het parameters object dat zich buiten uw werkstroomdefinitie bevindt, maar zich nog steeds in de resourcedefinitie van uw logische app bevindt, de waarden voor uw werkstroomdefinitieparameters in door te verwijzen naar de bijbehorende sjabloonparameters. Op die manier kunt u sjabloonparameterwaarden doorgeven aan de parameters van uw werkstroomdefinitie.

  4. Geef in het parameterbestand de waarden op die voor uw sjabloon moeten worden gebruikt bij de implementatie.

Volledige voorbeeldsjabloon

Hier volgt de voorbeeldsjabloon met parameters die wordt gebruikt door de voorbeelden van dit onderwerp:

{
  "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
   "parameters": {
      "LogicAppName": {
         "type": "string",
         "minLength": 1,
         "maxLength": 80,
         "defaultValue": "MyLogicApp",
         "metadata": {
            "description": "The resource name to use for the logic app"
         }
      },
      "LogicAppLocation": {
         "type": "string",
         "minLength": 1,
         "defaultValue": "[resourceGroup().location]",
         "metadata": {
            "description": "The resource location to use for the logic app"
         }
      },
      "office365_1_Connection_Name": {
         "type": "string",
         "defaultValue": "office365",
         "metadata": {
            "description": "The resource name to use for the Office 365 Outlook connection"
         }
      },
      "office365_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "The display name to use for the Office 365 Outlook connection"
         }
      },
      "azureblob_1_Connection_Name": {
         "type": "string",
         "defaultValue": "azureblob",
         "metadata": {
            "description": "The resource name to use for the Azure Blob storage account connection"
         }
      },
      "azureblob_1_Connection_DisplayName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }

      },
      "azureblob_1_accountName": {
         "type": "string",
         "defaultValue": "",
         "metadata": {
            "description": "Name of the storage account the connector should use."
         }
      },
      "azureblob_1_accessKey": {
         "type": "securestring",
         "metadata": {
            "description": "Specify a valid primary/secondary storage account access key."
         }
      },
      "LogicAppIntegrationAccount": {
         "type":"string",
         "minLength": 1,
         "defaultValue": "/subscriptions/<Azure-subscription-ID>/resourceGroups/fabrikam-integration-account-rg/providers/Microsoft.Logic/integrationAccounts/fabrikam-integration-account",
         "metadata": {
            "description": "The ID to use for the integration account"
         }
      }
   },
   "variables": {},
   "resources": [
      {
         "properties": {
            "state": "Disabled",
            "integrationAccount": {
              "id": "[parameters('LogicAppIntegrationAccount')]"
            },
            "definition": {
               "$schema": "https://schema.management.azure.com/providers/Microsoft.Logic/schemas/2016-06-01/workflowdefinition.json#",
               "actions": {
                  "Create_blob": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              "name": "@parameters('$connections')['azureblob']['connectionId']"
                           }
                        }
                     },
                     "method": "post",
                     "body": "@triggerBody()?['Body']",
                     "path": "/datasets/default/files",
                     "queries": {
                        "folderPath": "/emails",
                        "name": "@triggerBody()?['Subject']",
                        "queryParametersSingleEncoded": true
                     },
                     "runAfter": {},
                     "runtimeConfiguration": {
                        "contentTransfer": {
                           "transferMode": "Chunked"
                        }
                     }
                  }
               },
               "parameters": {
                  "$connections": {
                     "defaultValue": {},
                     "type": "Object"
                  }
               },
               "triggers": {
                  "When_a_new_email_arrives": {
                     "type": "ApiConnection",
                     "inputs": {
                        "host": {
                           "connection": {
                              "name": "@parameters('$connections')['office365']['connectionId']"
                           }
                        },
                        "method": "get",
                        "path": "/Mail/OnNewEmail",
                        "queries": {
                           "folderPath": "Inbox",
                           "importance": "Any",
                           "fetchOnlyWithAttachment": false,
                           "includeAttachments": false
                        }
                     },
                     "recurrence": {
                        "frequency": "Day",
                        "interval": 1
                     },
                     "splitOn": "@triggerBody()?['value']"
                  }
               },
               "contentVersion": "1.0.0.0",
               "outputs": {}
            },
            "parameters": {
               "$connections": {
                  "value": {
                     "azureblob": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
                        "connectionName": "[parameters('azureblob_1_Connection_Name')]"
                     },
                     "office365": {
                        "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]",
                        "connectionId": "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]",
                        "connectionName": "[parameters('office365_1_Connection_Name')]"
                     }
                  }
               }
            },
            "accessControl": {}
         },
         "name": "[parameters('LogicAppName')]",
         "type": "Microsoft.Logic/workflows",
         "location": "[parameters('LogicAppLocation')]",
         "tags": {
            "displayName": "LogicApp"
         },
         "apiVersion": "2019-05-01",
         "dependsOn": [
            "[resourceId('Microsoft.Web/connections', parameters('azureblob_1_Connection_Name'))]",
            "[resourceId('Microsoft.Web/connections', parameters('office365_1_Connection_Name'))]"
         ]
      },
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('office365_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
                "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'office365')]"
            },
            "displayName": "[parameters('office365_1_Connection_DisplayName')]"
         }
      },
      {
         "type": "Microsoft.Web/connections",
         "apiVersion": "2016-06-01",
         "name": "[parameters('azureblob_1_Connection_Name')]",
         "location": "[parameters('LogicAppLocation')]",
         "properties": {
            "api": {
               "id": "[concat(subscription().id, '/providers/Microsoft.Web/locations/', parameters('LogicAppLocation'), '/managedApis/', 'azureblob')]"
            },
            "displayName": "[parameters('azureblob_1_Connection_DisplayName')]",
            "parameterValues": {
               "accountName": "[parameters('azureblob_1_accountName')]",
               "accessKey": "[parameters('azureblob_1_accessKey')]"
            }
         }
      }
   ],
   "outputs": {}
}

Volgende stappen