Panoramica: Automatizzare la distribuzione per App per la logica di Azure usando modelli di Azure Resource Manager
Si applica a: App per la logica di Azure (consumo)
Quando si è pronti per automatizzare la creazione e la distribuzione dell'app per la logica, è possibile espandere la definizione del flusso di lavoro sottostante dell'app per la logica in un modello di Resource Manager di Azure. Questo modello definisce l'infrastruttura, le risorse, i parametri e altre informazioni per il provisioning e la distribuzione dell'app per la logica. Definendo i parametri per i valori che variano in fase di distribuzione, noti anche come parametrizzazione, è possibile distribuire ripetutamente e in modo coerente le app per la logica in base a esigenze di distribuzione diverse.
Ad esempio, se si esegue la distribuzione in ambienti per lo sviluppo, il test e la produzione, è probabile che si usino stringhe di connessione diverse per ogni ambiente. È possibile dichiarare parametri modello che accettano stringhe di connessione diverse e quindi archiviare tali stringhe in un file di parametri separato. In questo modo, è possibile modificare tali valori senza dover aggiornare e ridistribuire il modello. Per gli scenari in cui i valori dei parametri sono sensibili o devono essere protetti, ad esempio password e segreti, è possibile archiviare tali valori in Azure Key Vault e recuperare tali valori nel file dei parametri. In questi scenari, tuttavia, è necessario ridistribuire per recuperare i valori correnti.
Questa panoramica descrive gli attributi in un modello di Resource Manager che include una definizione del flusso di lavoro dell'app per la logica. Sia il modello che la definizione del flusso di lavoro usano la sintassi JSON, ma esistono alcune differenze perché la definizione del flusso di lavoro segue anche lo schema del linguaggio di definizione del flusso di lavoro. Ad esempio, le espressioni modello e le espressioni di definizione del flusso di lavoro differiscono per il modo in cui fanno riferimento ai parametri e ai valori che possono accettare.
Suggerimento
Per il modo più semplice per ottenere un modello di app per la logica con parametri valido pronto per la distribuzione, usare Visual Studio (versione community gratuita o versione successiva) e gli strumenti di App per la logica di Azure per Visual Studio. È quindi possibile creare l'app per la logica in Visual Studio oppure trovare e scaricare un'app per la logica esistente da Azure in Visual Studio.
In alternativa, è possibile creare modelli di app per la logica usando Azure PowerShell con il modulo LogicAppTemplate.
L'app per la logica di esempio in questo argomento usa un trigger di Outlook Office 365 che viene attivato quando arriva un nuovo messaggio di posta elettronica e un'azione Archiviazione BLOB di Azure che crea un BLOB per il corpo del messaggio di posta elettronica e carica tale BLOB in un contenitore di archiviazione di Azure. Gli esempi illustrano anche come parametrizzare i valori che variano in fase di distribuzione.
Per altre informazioni sui modelli di Resource Manager, vedere gli argomenti seguenti:
- Struttura e sintassi del modello di Azure Resource Manager
- Procedure consigliate per i modelli di Azure Resource Manager
- Sviluppare i modelli di Azure Resource Manager per la coerenza cloud
Per informazioni sulle risorse modello specifiche per le app per la logica, gli account di integrazione, gli artefatti dell'account di integrazione e gli ambienti del servizio di integrazione, vedere Tipi di risorse Microsoft.Logic.
Per i modelli di app per la logica di esempio, vedere gli esempi seguenti:
- Modello completo usato per gli esempi di questo argomento
- Modello di app per la logica di avvio rapido di esempio in GitHub
Per l'API REST di App per la logica, iniziare con la panoramica dell'API REST di App per la logica di Azure.
Struttura del modello
Al livello superiore, un modello di Resource Manager segue questa struttura, descritta completamente nell'argomento relativo alla struttura e alla sintassi del modello di 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": {}
}
Per un modello di app per la logica, si lavora principalmente con questi oggetti modello:
Attributo | Descrizione |
---|---|
parameters |
Dichiara i parametri del modello per accettare i valori da usare durante la creazione e la personalizzazione delle risorse per la distribuzione in Azure. Ad esempio, questi parametri accettano i valori per il nome e la posizione dell'app per la logica, le connessioni e altre risorse necessarie per la distribuzione. È possibile archiviare questi valori di parametro in un file di parametri, descritto più avanti in questo argomento. Per informazioni generali, vedere Parametri - Resource Manager struttura e sintassi del modello. |
resources |
Definisce le risorse per creare o aggiornare e distribuire in un gruppo di risorse di Azure, ad esempio l'app per la logica, le connessioni, gli account di archiviazione di Azure e così via. Per informazioni generali, vedere Risorse - Resource Manager struttura e sintassi del modello. |
Il modello di app per la logica usa questo formato di nome file:
<logic-app-name>. Json
Importante
La sintassi del modello fa distinzione tra maiuscole e minuscole, quindi assicurarsi di usare maiuscole e minuscole coerenti.
Parametri di modelli
Un modello di app per la logica include più parameters
oggetti esistenti a livelli diversi ed eseguono funzioni diverse. Ad esempio, al livello superiore, è possibile dichiarare i parametri del modello per i valori da accettare e usare durante la distribuzione durante la creazione e la distribuzione di risorse in Azure, ad esempio:
L'app per la logica
Connessioni usate dall'app per la logica per accedere ad altri servizi e sistemi tramite connettori gestiti
Altre risorse necessarie per la distribuzione dell'app per la logica
Ad esempio, se l'app per la logica usa un account di integrazione per scenari business-to-business (B2B), l'oggetto di livello
parameters
principale del modello dichiara il parametro che accetta l'ID risorsa per tale account di integrazione.
Ecco la struttura generale e la sintassi per una definizione di parametro, descritta in modo completo da Parametri - Resource Manager struttura e sintassi del modello:
"<parameter-name>": {
"type": "<parameter-type>",
"defaultValue": <default-parameter-value>,
<other-parameter-attributes>,
"metadata": {
"description": "<parameter-description>"
}
},
Questo esempio mostra solo i parametri del modello per i valori usati per creare e distribuire queste risorse in Azure:
- Nome e posizione per l'app per la logica
- ID da usare per un account di integrazione collegato all'app per la logica
{
"$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": {}
}
Ad eccezione dei parametri che gestiscono valori sensibili o che devono essere protetti, ad esempio nomi utente, password e segreti, tutti questi parametri includono defaultValue
attributi, anche se in alcuni casi i valori predefiniti sono valori vuoti. I valori di distribuzione da usare per questi parametri di modello vengono forniti dal file di parametri di esempio descritto più avanti in questo argomento.
Per altre informazioni sulla protezione dei parametri del modello, vedere gli argomenti seguenti:
- Raccomandazioni sulla sicurezza per i parametri del modello
- Migliorare la sicurezza per i parametri del modello
- Passare i valori dei parametri protetti con Azure Key Vault
Altri oggetti modello spesso fanno riferimento ai parametri del modello in modo che possano usare i valori che passano attraverso i parametri del modello, ad esempio:
L'oggetto risorse del modello, descritto più avanti in questo argomento, definisce ogni risorsa in Azure che si vuole creare e distribuire, ad esempio la definizione di risorsa dell'app per la logica. Queste risorse usano spesso i valori dei parametri del modello, ad esempio il nome e la posizione e le informazioni di connessione dell'app per la logica.
A un livello più profondo nella definizione di risorsa dell'app per la logica, l'oggetto parametri della definizione del flusso di lavoro dichiara i parametri per i valori da usare nel runtime dell'app per la logica. Ad esempio, è possibile dichiarare i parametri di definizione del flusso di lavoro per il nome utente e la password usati da un trigger HTTP per l'autenticazione. Per specificare i valori per i parametri di definizione del flusso di lavoro, usare l'oggetto
parameters
esterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione di risorsa dell'app per la logica. In questo oggetto esternoparameters
è possibile fare riferimento ai parametri del modello dichiarati in precedenza, che possono accettare valori in fase di distribuzione da un file di parametri.
Quando si fa riferimento a parametri, le espressioni di modello e le funzioni usano una sintassi diversa e si comportano in modo diverso da espressioni e funzioni di definizione del flusso di lavoro. Per altre informazioni su queste differenze, vedere Riferimenti ai parametri più avanti in questo argomento.
Procedure consigliate - Parametri del modello
Ecco alcune procedure consigliate per la definizione dei parametri:
Dichiarare i parametri solo per i valori che variano in base alle esigenze di distribuzione. Non dichiarare parametri per i valori che rimangono gli stessi in diversi requisiti di distribuzione.
Includere l'attributo
defaultValue
, che può specificare valori vuoti, per tutti i parametri ad eccezione dei valori sensibili o che devono essere protetti. Usare sempre parametri protetti per nomi utente, password e segreti. Per nascondere o proteggere i valori dei parametri sensibili, seguire le indicazioni riportate in questi argomenti:Per distinguere i nomi dei parametri del modello dai nomi dei parametri di definizione del flusso di lavoro, è possibile usare nomi di parametri di modello descrittivi, ad esempio:
TemplateFabrikamPassword
Per altre procedure consigliate per i modelli, vedere Procedure consigliate per i parametri del modello.
File di parametri del modello
Per specificare i valori per i parametri del modello, archiviarli in un file di parametri. In questo modo, è possibile usare file di parametri diversi in base alle esigenze di distribuzione. Ecco il formato del nome file da usare:
- Nome file del modello di app per la logica: <logic-app-name.json>
- Nome file di parametri: <logic-app-name.parameters.json>
Ecco la struttura all'interno del file di parametri, che include un riferimento all'insieme di credenziali delle chiavi per passare un valore di parametro protetto con 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>
}
}
Questo file di parametri di esempio specifica i valori per i parametri del modello dichiarati in precedenza in questo argomento:
{
"$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"
}
}
}
Risorse del modello
Il modello ha un resources
oggetto , ovvero una matrice che contiene definizioni per ogni risorsa da creare e distribuire in Azure, ad esempio la definizione della risorsa dell'app per la logica, le definizioni delle risorse di connessione e tutte le altre risorse necessarie per la distribuzione dell'app per la logica.
{
"$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": {}
}
Nota
I modelli possono includere definizioni di risorse per più app per la logica, quindi assicurarsi che tutte le risorse dell'app per la logica specifichino lo stesso gruppo di risorse di Azure. Quando si distribuisce il modello in un gruppo di risorse di Azure usando Visual Studio, viene richiesto quale app per la logica si vuole aprire. Inoltre, il progetto del gruppo di risorse di Azure può contenere più di un modello, quindi assicurarsi di selezionare il file di parametri corretto quando richiesto.
Visualizzare le definizioni delle risorse
Per esaminare le definizioni delle risorse per tutte le risorse in un gruppo di risorse di Azure, scaricare l'app per la logica da Azure in Visual Studio, il modo più semplice per creare un modello di app per la logica con parametri valido pronto per la distribuzione.
Per informazioni generali sulle risorse del modello e sui relativi attributi, vedere gli argomenti seguenti:
- Risorse - struttura e sintassi dei modelli di Resource Manager
- Procedure consigliate per le risorse modello
Definizione delle risorse dell'app per la logica
La definizione della risorsa del flusso di lavoro dell'app per la logica in un modello inizia con l'oggetto properties
, che include queste informazioni:
- Stato dell'app per la logica in fase di distribuzione
- ID per qualsiasi account di integrazione usato dall'app per la logica
- Definizione del flusso di lavoro dell'app per la logica
- Oggetto
parameters
che imposta i valori da usare in fase di esecuzione - Altre informazioni sulle risorse sull'app per la logica, ad esempio nome, tipo, posizione, impostazioni di configurazione del runtime e così via
{
"$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": {}
}
Ecco gli attributi specifici per la definizione della risorsa dell'app per la logica:
Attributo | Obbligatoria | Tipo | Descrizione |
---|---|---|---|
state |
Sì | string | Lo stato dell'app per la logica nella distribuzione in cui Enabled significa che l'app per la logica è attiva e Disabled significa che l'app per la logica è inattiva. Ad esempio, se l'app per la logica non è pronta per la distribuzione di una versione bozza, è possibile usare l'opzione Disabled . |
integrationAccount |
No | Oggetto | Se l'app per la logica usa un account di integrazione, che archivia gli artefatti per scenari B2B (business-to-business), questo oggetto include l'attributo, che specifica l'ID id per l'account di integrazione. |
definition |
Sì | Oggetto | La definizione del flusso di lavoro sottostante dell'app per la logica, che è lo stesso oggetto visualizzato nella visualizzazione codice ed è completamente descritto nell'argomento Riferimento allo schema per Il linguaggio di definizione del flusso di lavoro. In questa definizione del flusso di lavoro l'oggetto parameters dichiara i parametri per i valori da usare al runtime dell'app per la logica. Per altre informazioni, vedere Definizione e parametri del flusso di lavoro. Per visualizzare gli attributi nella definizione del flusso di lavoro dell'app per la logica, passare da "visualizzazione progettazione" a "visualizzazione codice" nella portale di Azure o Visual Studio oppure usando uno strumento come Esplora risorse di Azure. |
parameters |
No | Oggetto | Valori dei parametri di definizione del flusso di lavoro da usare in fase di esecuzione dell'app per la logica. Le definizioni dei parametri per questi valori vengono visualizzate all'interno dell'oggetto parametri della definizione del flusso di lavoro. Inoltre, se l'app per la logica usa connettori gestiti per l'accesso ad altri servizi e sistemi, questo oggetto include un $connections oggetto che imposta i valori di connessione da usare in fase di esecuzione. |
accessControl |
No | Oggetto | Per specificare gli attributi di sicurezza per l'app per la logica, ad esempio limitare l'accesso IP ai trigger delle richieste o eseguire input e output della cronologia. Per altre informazioni, vedere Proteggere l'accesso alle app per la logica. |
runtimeConfiguration |
No | Oggetto | Per specificare le operationOptions proprietà che controllano il modo in cui l'app per la logica si comporta in fase di esecuzione. Ad esempio, è possibile eseguire l'app per la logica in modalità velocità effettiva elevata. |
Per altre informazioni sulle definizioni delle risorse per questi oggetti App per la logica, vedere Tipi di risorse Microsoft.Logic:
Definizione delle risorse dell'ambiente del servizio di integrazione
Definizione delle risorse dell'API gestita dell'ambiente del servizio di integrazione
Artefatti dell'account di integrazione:
Definizione e parametri del flusso di lavoro
La definizione del flusso di lavoro dell'app per la logica viene visualizzata nell'oggetto definition
visualizzato nell'oggetto all'interno properties
della definizione della risorsa dell'app per la logica. Questo definition
oggetto è lo stesso oggetto visualizzato nella visualizzazione codice ed è completamente descritto nell'argomento Informazioni di riferimento sullo schema per Il linguaggio di definizione del flusso di lavoro . La definizione del flusso di lavoro include un oggetto dichiarazione interna parameters
in cui è possibile definire parametri nuovi o modificare i parametri esistenti per i valori usati dalla definizione del flusso di lavoro in fase di esecuzione. È quindi possibile fare riferimento a questi parametri all'interno del trigger o delle azioni nel flusso di lavoro. Per impostazione predefinita, questo parameters
oggetto è vuoto a meno che l'app per la logica non crei connessioni ad altri servizi e sistemi tramite connettori gestiti.
Per impostare i valori per i parametri di definizione del flusso di lavoro, usare l'oggetto parameters
esterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione della risorsa dell'app per la logica. In questo oggetto esterno parameters
è quindi possibile fare riferimento ai parametri del modello dichiarati in precedenza, che possono accettare valori alla distribuzione da un file di parametri.
Suggerimento
Come procedura consigliata, non fare riferimento direttamente ai parametri del modello, che vengono valutati nella distribuzione, dall'interno della definizione del flusso di lavoro. Dichiarare invece un parametro di definizione del flusso di lavoro, che è quindi possibile impostare nell'oggetto parameters
esterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione della risorsa dell'app per la logica. Per altre informazioni, vedere Riferimenti ai parametri.
Questa sintassi mostra dove è possibile dichiarare i parametri a livelli di definizione del modello e del flusso di lavoro insieme a dove è possibile impostare tali valori di parametro facendo riferimento ai parametri di definizione del modello e del flusso di lavoro:
{
"$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": {}
}
Parametri di definizione del flusso di lavoro sicuri
Per un parametro di definizione del flusso di lavoro che gestisce informazioni riservate, password, chiavi di accesso o segreti in fase di esecuzione, dichiarare o modificare il parametro per usare il securestring
tipo di parametro o secureobject
. È possibile fare riferimento a questo parametro in tutto e all'interno della definizione del flusso di lavoro. Al livello superiore del modello dichiarare un parametro con lo stesso tipo per gestire queste informazioni nella distribuzione.
Per impostare il valore per il parametro di definizione del flusso di lavoro, usare l'oggetto parameters
esterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione della risorsa dell'app per la logica per fare riferimento al parametro del modello. Infine, per passare il valore al parametro del modello in fase di distribuzione, archiviare tale valore in Azure Key Vault e fare riferimento all'insieme di credenziali delle chiavi nel file di parametri usato dal modello nella distribuzione.
Questo modello di esempio illustra come completare queste attività definendo i parametri protetti quando necessario in modo che sia possibile archiviare i relativi valori in Azure Key Vault:
- Dichiarare i parametri protetti per i valori usati per autenticare l'accesso.
- Usare questi valori sia a livello di modello che di definizione del flusso di lavoro.
- Specificare questi valori usando un file di parametri.
Modello
{
"$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": {}
}
File dei parametri
{
"$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"
}
}
}
}
Procedure consigliate : parametri di definizione del flusso di lavoro
Per assicurarsi che Progettazione app per la logica possa visualizzare correttamente i parametri di definizione del flusso di lavoro, seguire queste procedure consigliate:
Includere l'attributo
defaultValue
, che può specificare valori vuoti, per tutti i parametri tranne per i valori sensibili o che devono essere protetti.Usare sempre parametri protetti per nomi utente, password e segreti. Per nascondere o proteggere i valori dei parametri sensibili, seguire le indicazioni riportate in questi argomenti:
Per altre informazioni sui parametri di definizione del flusso di lavoro, vedere Parametri - Linguaggio di definizione del flusso di lavoro.
Definizioni delle risorse di connessione
Quando l'app per la logica crea e usa connessioni ad altri servizi e sistema usando connettori gestiti, l'oggetto del resources
modello contiene le definizioni delle risorse per tali connessioni. Anche se si creano connessioni da un'app per la logica, le connessioni sono separate dalle risorse di Azure con le proprie definizioni di risorse. Per esaminare queste definizioni di risorse di connessione, scaricare l'app per la logica da Azure in Visual Studio, che è il modo più semplice per creare un modello di app per la logica con parametri valido che è principalmente pronto per la distribuzione.
{
"$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": {}
}
Le definizioni delle risorse di connessione fanno riferimento ai parametri di primo livello del modello per i relativi valori in modo da poter fornire questi valori alla distribuzione usando un file di parametri. Assicurarsi che le connessioni usino lo stesso gruppo di risorse di Azure e la posizione dell'app per la logica.
Di seguito è riportata una definizione di risorsa di esempio per una connessione Office 365 Outlook e i parametri del modello corrispondenti:
{
"$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": {}
}
La definizione delle risorse dell'app per la logica funziona anche con le definizioni delle risorse di connessione in questi modi:
All'interno della definizione del flusso di lavoro, l'oggetto
parameters
dichiara un$connections
parametro per i valori di connessione da usare al runtime dell'app per la logica. Inoltre, l'azione o il trigger che crea una connessione utilizza i valori corrispondenti che passano attraverso questo$connections
parametro.All'esterno della definizione del flusso di lavoro, ma ancora all'interno della definizione della risorsa dell'app per la logica, un altro
parameters
oggetto imposta i valori da usare in fase di esecuzione per il$connections
parametro facendo riferimento ai parametri del modello corrispondenti. Questi valori usano espressioni modello per fare riferimento alle risorse che archiviano in modo sicuro i metadati per le connessioni nell'app per la logica.Ad esempio, i metadati possono includere stringhe di connessione e token di accesso, che è possibile archiviare in Azure Key Vault. Per passare tali valori ai parametri del modello, fare riferimento all'insieme di credenziali delle chiavi nel file di parametri usato dal modello in fase di distribuzione. Per altre informazioni sulle differenze nei parametri di riferimento, vedere Riferimenti ai parametri più avanti in questo argomento.
Quando si apre la definizione del flusso di lavoro dell'app per la logica nella visualizzazione codice tramite il portale di Azure o Visual Studio, l'oggetto viene visualizzato all'esterno
$connections
della definizione del flusso di lavoro, ma allo stesso livello. Questo ordinamento nella visualizzazione codice semplifica il riferimento a questi parametri quando si aggiorna manualmente la definizione del flusso di lavoro:{ "$connections": {<workflow-definition-parameter-connection-values-runtime}, "definition": {<workflow-definition>} }
La definizione di risorsa dell'app per la logica ha un
dependsOn
oggetto che specifica le dipendenze dalle connessioni usate dall'app per la logica.
Ogni connessione creata ha un nome univoco in Azure. Quando si creano più connessioni allo stesso servizio o sistema, ogni nome di connessione viene aggiunto con un numero, che viene incrementato con ogni nuova connessione creata, ad esempio , office365
office365-1
e così via.
Questo esempio mostra le interazioni tra la definizione di risorsa dell'app per la logica e una definizione di risorsa di connessione per 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": {}
}
Proteggere i parametri di connessione
Per un parametro di connessione che gestisce informazioni riservate, password, chiavi di accesso o segreti, la definizione della risorsa della connessione include un parameterValues
oggetto che specifica questi valori nel formato di coppia nome-valore. Per nascondere queste informazioni, è possibile dichiarare o modificare i parametri del modello per questi valori usando i securestring
tipi di parametro o secureobject
. È quindi possibile archiviare tali informazioni in Azure Key Vault. Per passare tali valori ai parametri del modello, fare riferimento all'insieme di credenziali delle chiavi nel file di parametri usato dal modello in fase di distribuzione.
Di seguito è riportato un esempio che fornisce il nome dell'account e la chiave di accesso per una connessione Archiviazione BLOB di Azure:
File dei parametri
{
"$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"
}
}
}
}
Modello
{
"$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": {}
}
Autenticare le connessioni
Dopo la distribuzione, l'app per la logica funziona end-to-end con parametri validi. Tuttavia, è comunque necessario autorizzare tutte le connessioni OAuth per generare token di accesso validi per l'autenticazione delle credenziali. Per altre informazioni, vedere Autorizzare le connessioni OAuth.
Alcune connessioni supportano l'uso di un'entità servizio di Azure Active Directory (Azure AD) per autorizzare le connessioni per un'app per la logica registrata in Azure AD. Ad esempio, questa definizione di risorsa di connessione azure Data Lake illustra come fare riferimento ai parametri del modello che gestiscono le informazioni dell'entità servizio e come il modello dichiara questi parametri:
Definizione della risorsa di connessione
{
<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')]"
}
}
}
Attributo | Descrizione |
---|---|
token:clientId |
L'applicazione o l'ID client associato all'entità servizio |
token:clientSecret |
Valore della chiave associato all'entità servizio |
token:TenantId |
ID directory per il tenant di Azure AD |
token:grantType |
Tipo di concessione richiesto, che deve essere client_credentials . Per altre informazioni, vedere Microsoft Identity Platform e il flusso delle credenziali client OAuth 2.0. |
Definizioni dei parametri del modello
L'oggetto di livello parameters
principale del modello dichiara questi parametri per la connessione di esempio:
{
"$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
}
Per altre informazioni sull'uso delle entità servizio, vedere gli argomenti seguenti:
- Create a service principal by using the Azure portal (Creare un'entità servizio usando il portale di Azure)
- Creare un'entità servizio di Azure usando Azure PowerShell
- Creare un'entità servizio con un certificato usando Azure PowerShell
Riferimenti ai parametri
Per fare riferimento ai parametri del modello, è possibile usare espressioni modello con funzioni modello, che vengono valutate in fase di distribuzione. Le espressioni modello usano parentesi quadre ([]):
"<attribute-name>": "[parameters('<template-parameter-name>')]"
Per fare riferimento ai parametri di definizione del flusso di lavoro, usare espressioni e funzioni del linguaggio di definizione del flusso di lavoro, che vengono valutate in fase di esecuzione. È possibile notare che alcune funzioni modello e funzioni di definizione del flusso di lavoro hanno lo stesso nome. Le espressioni di definizione del flusso di lavoro iniziano con il simbolo "at" (@):
"<attribute-name>": "@parameters('<workflow-definition-parameter-name>')"
È possibile passare i valori dei parametri del modello alla definizione del flusso di lavoro per l'app per la logica da usare in fase di esecuzione. Tuttavia, evitare di usare parametri di modello, espressioni e sintassi nella definizione del flusso di lavoro perché Progettazione app per la logica non supporta gli elementi del modello. Inoltre, la sintassi del modello e le espressioni possono complicare il codice a causa delle differenze nella valutazione delle espressioni.
Seguire invece questi passaggi generali per dichiarare e fare riferimento ai parametri di definizione del flusso di lavoro da usare in fase di esecuzione, dichiarare e fare riferimento ai parametri del modello da usare nella distribuzione e specificare i valori da passare alla distribuzione usando un file di parametri. Per informazioni dettagliate, vedere la sezione Definizione del flusso di lavoro e parametri più indietro in questo argomento.
Creare il modello e dichiarare i parametri del modello per i valori da accettare e usare in fase di distribuzione.
Nella definizione del flusso di lavoro dichiarare i parametri per i valori da accettare e usare in fase di esecuzione. È quindi possibile fare riferimento a questi valori in e all'interno della definizione del flusso di lavoro.
Nell'oggetto
parameters
esterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione di risorsa dell'app per la logica, impostare i valori per i parametri di definizione del flusso di lavoro facendo riferimento ai parametri del modello corrispondenti. In questo modo, è possibile passare i valori dei parametri del modello nei parametri di definizione del flusso di lavoro.Nel file dei parametri specificare i valori da usare per il modello in fase di distribuzione.
Modello di esempio completo
Di seguito è riportato il modello di esempio con parametri usato dagli esempi di questo argomento:
{
"$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": {}
}