Overzicht: Implementatie voor Azure Logic Apps automatiseren met behulp van Azure Resource Manager sjablonen
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 tijdens de implementatie, ook wel parameteriseren genoemd, kunt u herhaaldelijk en consistent logische apps implementeren op basis van verschillende implementatiebehoeften.
Als u bijvoorbeeld implementeert in omgevingen voor ontwikkeling, test en productie, gebruikt u waarschijnlijk verschillende verbindingsreeksen voor elke omgeving. U kunt sjabloonparameters declaren die verschillende verbindingsreeksen accepteren en deze tekenreeksen vervolgens opslaan in een afzonderlijk parametersbestand. Op die manier kunt u deze waarden wijzigen zonder dat u de sjabloon moet bijwerken en opnieuw moet toepassen. 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 moeten worden gebruikt om de huidige waarden op te halen.
In dit overzicht worden de kenmerken in een Resource Manager sjabloon beschreven die een werkstroomdefinitie voor een logische app bevat. Zowel de sjabloon als uw werkstroomdefinitie gebruiken de JSON-syntaxis, maar er zijn enkele verschillen omdat de werkstroomdefinitie ook het schema van de werkstroomdefinitietaal volgt. Sjabloonexpressie en werkstroomdefinitie-expressies verschillen bijvoorbeeld in de manier waarop ze verwijzen naar parameters en de waarden die ze kunnen accepteren.
Tip
Gebruik Visual Studio (gratis Community Edition of hoger) en de Azure Logic Apps Tools for Visual Studio voor de eenvoudigste manier om een geldige, geparameteriseerde logische app-sjabloon op te halen die voornamelijk gereed is voor implementatie. 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 Azure PowerShell met de LogicAppTemplate-module.
De voorbeeldlogica-app in dit onderwerp maakt gebruik van een Office 365 Outlook-trigger die wordt uitgevoerd wanneer er een nieuwe e-mail binnenkomt en een Azure Blob Storage-actie waarmee een blob voor de e-mail wordt gemaakt en die blob wordt geüpload naar een Azure Storage-container. De voorbeelden laten ook zien hoe u waarden kunt parameteriseren die variëren tijdens de implementatie.
Zie de volgende onderwerpen voor Resource Manager informatie over sjablonen:
- Azure Resource Manager sjabloonstructuur en syntaxis
- Best practices voor Azure Resource Manager-sjablonen
- Azure Resource Manager-sjablonen voor consistentie van de cloud ontwikkelen
Zie Microsoft.Logic resource types (Microsoft.Logic-resourcetypen)voor informatie over sjabloonresources die specifiek zijn voor logische apps, integratieaccounts, artefacten van integratieaccounts en integratieserviceomgevingen.
Zie de volgende voorbeelden voor voorbeeldsjablonen voor logische apps:
- Volledige sjabloon die wordt gebruikt voor de voorbeelden van dit onderwerp
- Voorbeeld van een sjabloon voor logische apps in GitHub
Voor de Logic Apps REST API begint u met het Azure Logic Apps REST API overzicht.
Sjabloonstructuur
Op het hoogste niveau volgt Resource Manager deze structuur, die volledig wordt beschreven in Azure Resource Manager en syntaxis van de sjabloonstructuur:
{
"$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 logische apps werkt u voornamelijk met deze sjabloonobjecten:
| Kenmerk | Beschrijving |
|---|---|
parameters |
Declareer 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 implementatie. U kunt deze parameterwaarden opslaan in een parameterbestand, dat later in dit onderwerp wordt beschreven. Zie Parameters - Resource Manager sjabloonstructuur en syntaxis voor algemene informatie. |
resources |
Definieert de resources die moeten worden gemaakt of bijgewerkt en geïmplementeerd in een Azure-resourcegroep, zoals uw logische app, verbindingen, Azure-opslagaccounts, en meer. Zie Resources - Resource Manager sjabloonstructuur en syntaxis voor algemene informatie. |
Uw sjabloon voor logische apps maakt gebruik van deze bestandsnaamindeling:
<logic-app-name>.json
Belangrijk
Sjabloonsyntaxis is casegevoelig, dus zorg ervoor dat u consistent casing gebruikt.
Sjabloonparameters
Een sjabloon voor logische apps heeft parameters meerdere objecten die op verschillende niveaus bestaan en verschillende functies uitvoeren. Op het hoogste niveau kunt u bijvoorbeeld sjabloonparameters declaren 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 door uw logica worden 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), declareer het object op het hoogste niveau van de sjabloon de parameter die de resource-id voor dat integratieaccount
parametersaccepteert.
Hier is 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": {}
}
Met uitzondering van parameters die waarden verwerken die gevoelig zijn of moeten worden beveiligd, zoals gebruikersnamen, wachtwoorden en geheimen, bevatten al deze parameters kenmerken, hoewel in sommige gevallen de standaardwaarden lege waarden defaultValue zijn. De implementatiewaarden die moeten worden gebruikt voor deze sjabloonparameters worden geleverd door het voorbeeldparameterbestand dat verder wordt beschreven in dit onderwerp.
Zie de volgende onderwerpen voor meer informatie over het beveiligen van sjabloonparameters:
- Beveiligingsaanbevelingen voor sjabloonparameters
- Beveiliging voor sjabloonparameters verbeteren
- Beveiligde parameterwaarden doorgeven met Azure Key Vault
Andere sjabloonobjecten verwijzen vaak naar sjabloonparameters, zodat ze de waarden kunnen gebruiken die sjabloonparameters doorgeven, bijvoorbeeld:
Het resources-objectvan uw sjabloon , dat verder wordt beschreven in dit onderwerp, 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 parametersobject van uw werkstroomdefinitie parameters voor de waarden die moeten worden gebruikt tijdens de runtime van uw logische app. U kunt bijvoorbeeld werkstroomdefinitieparameters declareer voor de gebruikersnaam en het wachtwoord die een HTTP-trigger gebruikt voor verificatie. Als u de waarden voor werkstroomdefinitieparameters wilt opgeven, gebruikt u het object dat zich buiten uw werkstroomdefinitie maar nog steeds binnen de
parametersresourcedefinitie van uw logische app. In dit buitenste object kunt u verwijzen naar eerder gedeclareerde sjabloonparameters, die waarden kunnen accepteren bijparametersde implementatie vanuit een parametersbestand.
Bij het verwijzen naar parameters gebruiken sjabloonexpressies en -functies verschillende syntaxis en gedragen ze zich anders dan expressies en functies van werkstroomdefinitie. Zie Verwijzingen naar parameters verder op dit onderwerp voor meer informatie over deze verschillen.
Best practices - sjabloonparameters
Hier volgen enkele best practices voor het definiëren van parameters:
Declareer parameters alleen voor waarden die variëren, afhankelijk van uw implementatiebehoeften. Declareer geen parameters voor waarden die hetzelfde blijven bij verschillende implementatievereisten.
Neem het kenmerk op, waarmee lege waarden kunnen worden opgegeven, voor alle parameters behalve voor waarden
defaultValuedie 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 sjabloonparameternamen wilt onderscheiden van namen van werkstroomdefinitieparameters, kunt u beschrijvende sjabloonparameternamen gebruiken, bijvoorbeeld:
TemplateFabrikamPassword
Zie Best practices voor sjabloonparameters voor meer best practices voor sjablonen.
Bestand met sjabloonparameters
Sla deze waarden op in een parametersbestand om de waarden voor sjabloonparameters op te geven. Op die manier kunt u verschillende parameters gebruiken op basis van uw implementatiebehoeften. Dit is de indeling van de bestandsnaam die moet worden gebruikt:
- Naam van sjabloonbestand voor logische < app: logic-app-name>.json
- Bestandsnaam van parameters: < logic-app-name>.parameters.json
Hier is 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 voorbeeldparameterbestand 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 -object. Dit is een matrix die definities bevat voor elke resource die in Azure moet worden gemaakt en geïmplementeerd, zoals de resourcedefinitie van uw logische app, resourcedefinities voor verbindingen en andere resources die uw logische app nodig heeft voor resources 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 alle resources van uw logische app dezelfde Azure-resourcegroep opgeven. Wanneer u de sjabloon implementeert in een Azure-resourcegroep met behulp van Visual Studio, wordt u gevraagd welke logische app u wilt openen. Uw Azure-resourcegroepproject kan ook meer dan één sjabloon bevatten, dus zorg ervoor dat u het juiste parametersbestand selecteert wanneer u daarom 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 geparameteriseerde logische app-sjabloon 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 de volgende informatie bevat:
- De status van uw logische app tijdens de implementatie
- De id voor elk integratieaccount dat wordt gebruikt door uw logische app
- De werkstroomdefinitie van uw logische app
- Een
parametersobject dat de waarden in stelt die tijdens runtime moeten worden gebruikt - Andere resource-informatie over uw logische app, zoals naam, type, locatie, eventuele configuratie-instellingen voor runtime, en meer
{
"$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": "2016-06-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 | Beschrijving |
|---|---|---|---|
state |
Ja | Tekenreeks | De status van uw logische app tijdens de implementatie, waarbij uw logische app live is en betekent dat uw Enabled Disabled logische app inactief is. Als u er bijvoorbeeld niet klaar voor bent om uw logische app live te laten gaan, maar u een conceptversie wilt implementeren, kunt u de optie Disabled gebruiken. |
integrationAccount |
No | Object | Als uw logische app gebruikmaakt van een integratieaccount, waarin artefacten voor B2B-scenario's (Business-to-Business) worden opschreven, bevat dit object het kenmerk , waarmee de id voor het integratieaccount wordt id opgegeven. |
definition |
Ja | Object | De onderliggende werkstroomdefinitie van uw logische app. Dit is hetzelfde object dat wordt weergegeven in de codeweergave en volledig wordt beschreven in het onderwerp Schemaverwijzing voor werkstroomdefinitietaal. In deze werkstroomdefinitie parameters declareer het object parameters voor de waarden die moeten worden gebruikt tijdens runtime van logische apps. Zie Werkstroomdefinitie en parameters voor meer informatie. Als u de kenmerken in de werkstroomdefinitie van uw logische app wilt weergeven, schakelt u over van 'ontwerpweergave' naar 'codeweergave' in de Azure Portal of Visual Studio of met behulp van een hulpprogramma zoals Azure Resource Explorer. |
parameters |
No | Object | De parameterwaarden van 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 gebruikmaakt van beheerde connectors voor toegang tot andere services en systemen, bevat dit object ook een object waarmee de verbindingswaarden voor $connections runtime worden gebruikt. |
accessControl |
No | Object | Voor het opgeven van beveiligingskenmerken voor uw logische app, zoals het beperken van IP-toegang tot aanvraagtriggers of invoer en uitvoer van de uitvoer van de uitvoergeschiedenis. Zie Beveiligde toegang tot logische apps voor meer informatie. |
runtimeConfiguration |
No | Object | Voor het opgeven van eigenschappen die bepalen hoe uw logische app zich operationOptions gedraagt tijdens run time. U kunt uw logische app bijvoorbeeld uitvoeren in de modus voor hoge doorvoer. |
Definitie van door integratieserviceomgeving beheerde API-resource
Artefacten van integratieaccounts:
Werkstroomdefinitie en -parameters
De werkstroomdefinitie van uw logische app wordt weergegeven in het -object, dat wordt weergegeven in het object in de definition properties resourcedefinitie van uw logische app. Dit object is hetzelfde object dat wordt weergegeven in de codeweergave en volledig wordt beschreven in het onderwerp definition Schemaverwijzing voor werkstroomdefinitietaal. Uw werkstroomdefinitie bevat een inner declaratieobject waarin u nieuwe parameters kunt definiëren of bestaande parameters kunt bewerken voor de waarden die tijdens runtime door uw parameters werkstroomdefinitie worden gebruikt. U kunt vervolgens verwijzen naar deze parameters in de trigger of acties in uw werkstroom. Dit object is standaard leeg, tenzij uw logische app via beheerde connectors verbindingen maakt met andere parameters services en systemen.
Als u de waarden voor werkstroomdefinitieparameters wilt instellen, gebruikt u het object dat zich buiten uw werkstroomdefinitie maar nog steeds binnen de parameters resourcedefinitie van uw logische app. In dit buitenste object kunt u vervolgens verwijzen naar uw eerder gedeclareerde sjabloonparameters, die waarden kunnen accepteren tijdens de implementatie parameters vanuit een parametersbestand.
Tip
Als een best practice verwijst u niet rechtstreeks vanuit de werkstroomdefinitie naar sjabloonparameters, die tijdens de implementatie worden geëvalueerd. Declareer in plaats daarvan een werkstroomdefinitieparameter, die u vervolgens kunt instellen in het object dat zich buiten uw werkstroomdefinitie maar nog steeds binnen de parameters resourcedefinitie van uw logische app. Zie Verwijzingen naar parameters voor meer informatie.
Deze syntaxis laat zien waar u parameters kunt declareeren op zowel het niveau van de sjabloon- als de werkstroomdefinitie, samen met waar u deze parameterwaarden kunt instellen door te verwijzen naar de sjabloon- en werkstroomdefinitieparameters:
{
"$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": {}
}
Definitieparameters voor beveiligde werkstroom
Voor een werkstroomdefinitieparameter die gevoelige informatie, wachtwoorden, toegangssleutels of geheimen tijdens runtime verwerkt, declareer of bewerk de parameter om het securestring parametertype of secureobject te gebruiken. U kunt overal en binnen uw werkstroomdefinitie verwijzen naar deze parameter. 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 werkstroomdefinitieparameter wilt instellen, gebruikt u het object dat zich buiten uw werkstroomdefinitie maar nog steeds binnen de resourcedefinitie van uw logische app om te verwijzen naar de parameters sjabloonparameter. Als u ten slotte de waarde wilt doorgeven aan de sjabloonparameter tijdens de implementatie, moet u die waarde opslaan in Azure Key Vault en verwijzen naar die sleutelkluis in het parameterbestand dat tijdens de implementatie door uw sjabloon wordt gebruikt.
In deze voorbeeldsjabloon ziet u hoe u deze taken kunt uitvoeren door zo nodig beveiligde parameters te definiëren, zodat u hun waarden in de volgende Azure Key Vault:
- Declareer beveiligde parameters voor de waarden die worden gebruikt om toegang te verifiëren.
- Gebruik deze waarden op zowel het niveau van de sjabloon- als de werkstroomdefinitie.
- Geef deze waarden op met behulp van een parametersbestand.
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"
}
}
}
}
Best practices - parameters voor werkstroomdefinitie
Volg deze best practices om ervoor te zorgen dat de ontwerper van logische apps de werkstroomdefinitieparameters correct kan tonen:
Neem het kenmerk op, waarmee lege waarden kunnen worden opgegeven, voor alle parameters behalve voor waarden
defaultValuedie 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:
Zie Parameters - Werkstroomdefinitietaal voor meer informatie over werkstroomdefinitieparameters.
Resourcedefinities voor verbindingen
Wanneer uw logische app verbindingen met andere services en het systeem maakt en gebruikt met behulp van beheerde connectors,bevat het -object van uw sjabloon de resourcedefinities resources voor deze verbindingen. Hoewel u verbindingen maakt vanuit een logische app, zijn verbindingen afzonderlijke Azure-resources met hun eigen resourcedefinities. Als u deze verbindingsresourcedefinities wilt bekijken, downloadt u uw logische app van Azure naar Visual Studio.Dit is de eenvoudigste manier om een geldige sjabloon voor logische apps met parameters te maken die voornamelijk gereed 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 tijdens de implementatie kunt opgeven met behulp van een parametersbestand. Zorg ervoor dat verbindingen dezelfde Azure-resourcegroep en -locatie gebruiken als uw logische app.
Hier is een voorbeeld van een resourcedefinitie voor 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 de volgende manieren met verbindingsresourcedefinities:
Binnen uw werkstroomdefinitie
parametersdeclareer het object een parameter voor de verbindingswaarden die tijdens runtime van de$connectionslogische app moeten worden gebruikt. De trigger of actie die een verbinding maakt, maakt ook gebruik van de bijbehorende waarden die deze$connectionsparameter passeren.Buiten uw werkstroomdefinitie, maar nog steeds binnen de resourcedefinitie van uw logische app, stelt een ander object de waarden in die tijdens runtime voor de parameter moeten worden gebruikt door te verwijzen naar de bijbehorende
parameters$connectionssjabloonparameters. Deze waarden gebruiken sjabloonexpressie om te verwijzen naar resources die de metagegevens voor de verbindingen veilig opslaan in uw logische app.Metagegevens kunnen bijvoorbeeld verbindingsreeksen 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 parametersbestand dat tijdens de implementatie door uw sjabloon wordt gebruikt. Zie Verwijzingen naar parameters verder op dit onderwerp voor meer informatie over verschillen in verwijzende parameters.
Wanneer u de werkstroomdefinitie van uw logische app in de codeweergave opent via de Azure Portal of Visual Studio, wordt het object buiten uw werkstroomdefinitie weergegeven, maar op
$connectionshetzelfde niveau. Deze volgorde in de codeweergave maakt het gemakkelijker om naar deze parameters te verwijzen wanneer u de werkstroomdefinitie handmatig bijwerkt:{ "$connections": {<workflow-definition-parameter-connection-values-runtime}, "definition": {<workflow-definition>} }De resourcedefinitie van uw logische app heeft een -object waarmee de afhankelijkheden worden opgegeven van de verbindingen
dependsOndie 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 wordt gemaakt, bijvoorbeeld office365 , office365-1 , en meer.
In dit voorbeeld ziet u de interacties tussen de resourcedefinitie van uw logische app en de definitie van een verbindingsresource 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": {}
}
Parameters voor beveiligde verbindingen
Voor een verbindingsparameter die gevoelige informatie, wachtwoorden, toegangssleutels of geheimen verwerkt, bevat de resourcedefinitie van de verbinding een object dat deze waarden opgeeft in de indeling van het parameterValues naam-waardepaar. Als u deze informatie wilt verbergen, kunt u de sjabloonparameters voor deze waarden declareer of bewerken met behulp van de securestring secureobject parametertypen of . 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 parametersbestand dat tijdens de implementatie door uw sjabloon wordt gebruikt.
Hier is een voorbeeld met 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": "2016-06-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 alle OAuth-verbindingen autoriëren om geldige toegangstokens te genereren voor het authenticeren van uw referenties. Zie Authorize OAuth connections (OAuth-verbindingen machtigen) voor meer informatie.
Sommige verbindingen ondersteunen het gebruik van een Azure Active Directory (Azure AD)-service-principal om verbindingen te autoreren voor een logische app die is geregistreerd in Azure AD. Deze azure Data Lake-verbindingsresourcedefinitie laat bijvoorbeeld zien hoe u kunt verwijzen naar de sjabloonparameters die de gegevens van de service-principal verwerken en hoe de sjabloon deze parameters declareren:
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 Azure AD-tenant |
token:grantType |
Het aangevraagde toekenningstype, dat moet client_credentials zijn. Zie Microsoft identity platform en de OAuth 2.0-clientreferentiestroom voor meer informatie. |
Sjabloonparameterdefinities
Het object op het hoogste niveau van de parameters sjabloon declareer 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:
- Een service-principal maken met behulp van de Azure Portal
- Een Azure-service-principal maken met behulp van Azure PowerShell
- Een service-principal met een certificaat maken met behulp van Azure PowerShell
Verwijzingen naar parameters
Als u wilt verwijzen naar sjabloonparameters, kunt u sjabloonexpressies gebruiken met sjabloonfuncties, die worden geëvalueerd bij de implementatie. Sjabloonexpressie gebruikt vierkante haken ([]):
"<attribute-name>": "[parameters('<template-parameter-name>')]"
Als u wilt verwijzen naar werkstroomdefinitieparameters, gebruikt u expressiesen functies van de definitie van werkstroomdefinitie, die tijdens runtime worden geëvalueerd. Mogelijk ziet u dat sommige sjabloonfuncties en werkstroomdefinitiefuncties dezelfde naam hebben. Expressies voor werkstroomdefinitie beginnen met het symbool 'at' @ ():
"<attribute-name>": "@parameters('<workflow-definition-parameter-name>')"
U kunt sjabloonparameterwaarden doorgeven aan uw 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 ondersteuning biedt voor sjabloonelementen. Sjabloonsyntaxis en expressies kunnen uw code ook bemoeilijken vanwege verschillen in wanneer expressies worden geëvalueerd.
Volg in plaats daarvan deze algemene stappen om de definitieparameters voor de werkstroom te declareeren en te verwijzen die u tijdens runtime wilt gebruiken, declareer en verwijs naar de sjabloonparameters die u bij de implementatie wilt gebruiken en geef de waarden op die tijdens de implementatie moeten worden doorgeven met behulp van een parametersbestand. Zie de sectie Werkstroomdefinitie en parameters eerder in dit onderwerp voor meer informatie.
Maak uw sjabloon en declareer de sjabloonparameters voor de waarden die tijdens de implementatie moeten worden geaccepteerd en gebruikt.
Declareer in uw werkstroomdefinitie de parameters voor de waarden die tijdens runtime moeten worden geaccepteerd en gebruikt. Vervolgens kunt u overal en binnen uw werkstroomdefinitie naar deze waarden verwijzen.
In het object dat zich buiten uw werkstroomdefinitie maar nog steeds binnen de resourcedefinitie van uw logische app, stelt u de waarden voor uw werkstroomdefinitieparameters in door te verwijzen naar de bijbehorende
parameterssjabloonparameters. Op die manier kunt u sjabloonparameterwaarden doorgeven aan de definitieparameters van uw werkstroom.Geef in het parametersbestand de waarden op voor de sjabloon die tijdens de implementatie moet worden gebruikt.
Volledig voorbeeldsjabloon
Hier is de geparameteriseerde voorbeeldsjabloon 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": "2016-06-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": {}
}