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:

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:

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:

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 parametersesterno alla definizione del flusso di lavoro, ma ancora all'interno della definizione di risorsa dell'app per la logica. In questo oggetto esterno parameters è 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:

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 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 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 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 parametersesterno 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 parametersesterno 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 parametersesterno 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:

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 , office365office365-1e 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:

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.

  1. Creare il modello e dichiarare i parametri del modello per i valori da accettare e usare in fase di distribuzione.

  2. 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.

  3. Nell'oggetto parametersesterno 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.

  4. 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": {}
}

Passaggi successivi