Configurare la distribuzione di DevOps per le app per la logica Standard in App per la logica di Azure a tenant singolo
Si applica: App per la logica di Azure (Standard)
Questa guida illustra principalmente come configurare la distribuzione per un progetto di app per la logica Standard in Visual Studio Code nell'infrastruttura usando strumenti e processi DevOps. Se invece l'app per la logica Standard esiste nella portale di Azure, è possibile scaricare i file di artefatti dell'app per la logica da usare con la distribuzione DevOps. In base al fatto che si voglia usare GitHub o Azure DevOps, è possibile scegliere il percorso e gli strumenti più adatti per lo scenario di distribuzione.
Se non si ha un'app per la logica Standard, è comunque possibile seguire questa guida usando i progetti di app per la logica Standard di esempio collegati e esempi per la distribuzione in Azure tramite GitHub o Azure DevOps. Per altre informazioni, vedere Panoramica della distribuzione di DevOps per App per la logica di Azure a tenant singolo.
Prerequisiti
Un account Azure con una sottoscrizione attiva. Se non hai una sottoscrizione di Azure, crea un account gratuito.
App per la logica Standard da usare con gli strumenti e i processi DevOps.
È possibile scaricare i file di artefatti per la risorsa dell'app per la logica Standard dalla portale di Azure oppure usare un progetto di app per la logica Standard creato con Visual Studio Code e l'estensione App per la logica di Azure (Standard) per Visual Studio Code.
Portale: il file ZIP scaricato contiene file di artefatti dell'app per la logica standard, ad esempio workflow.json, connections.json, host.json e local.settings.json. Vedere Scaricare i file degli artefatti dell'app per la logica Standard dal portale.
Visual Studio Code: è necessaria una risorsa dell'app per la logica Standard vuota nel portale di Azure per la destinazione della distribuzione. Per creare rapidamente una risorsa di app per la logica Standard vuota, vedere Creare flussi di lavoro di app per la logica basati su tenant singolo - Portale.
Se non si ha un'app per la logica o un'infrastruttura esistente, è possibile usare i progetti di app per la logica standard di esempio per distribuire un'app per la logica e un'infrastruttura di esempio, in base al fatto che si voglia usare GitHub o Azure DevOps. Per altre informazioni sui progetti e le risorse di esempio inclusi per eseguire l'app per la logica di esempio, vedere Distribuire le risorse dell'infrastruttura.
Distribuire le risorse dell'infrastruttura
Per provare l'esperienza di distribuzione DevOps senza la configurazione precedente dell'infrastruttura o dell'app per la logica Standard, usare i progetti di esempio seguenti per configurare la distribuzione per un'app per la logica e un'infrastruttura Standard, in base al fatto che si voglia usare GitHub o Azure DevOps:
Esempio di GitHub per App per la logica di Azure a tenant singolo
Questo esempio include un esempio di progetto di app per la logica Standard più esempi per la distribuzione di Azure e GitHub Actions.
Esempio di Azure DevOps per App per la logica di Azure a tenant singolo
Questo esempio include un esempio di progetto di app per la logica Standard più esempi per la distribuzione di Azure e Azure Pipelines.
Entrambi gli esempi includono le risorse seguenti usate da un'app per la logica Standard per l'esecuzione:
Nome risorsa | Obbligatorio | Descrizione |
---|---|---|
App per la logica Standard | Sì | Questa risorsa di Azure contiene i flussi di lavoro eseguiti in App per la logica di Azure a tenant singolo. Importante: nel progetto dell'app per la logica ogni flusso di lavoro ha un file workflow.json che contiene la definizione del flusso di lavoro, che include le definizioni di trigger e azione. |
Connessioni API | Sì, se esistono connessioni API | Queste risorse di Azure definiscono tutte le connessioni API gestite usate dai flussi di lavoro per eseguire operazioni del connettore gestito, ad esempio Office 365, SharePoint e così via. Importante: nel progetto dell'app per la logica il file connections.json contiene metadati, endpoint e chiavi per qualsiasi connessione API gestita e funzioni di Azure usate dai flussi di lavoro. Per usare connessioni e funzioni diverse in ogni ambiente, assicurarsi di parametrizzare il file connections.json e aggiornare gli endpoint. Per altre informazioni, vedere Risorse di connessione API e criteri di accesso. |
Funzioni Premium o servizio app piano di hosting | Sì | Questa risorsa di Azure specifica le risorse di hosting da usare per l'esecuzione dell'app per la logica, ad esempio calcolo, elaborazione, archiviazione, rete e così via. Importante: nell'esperienza corrente, la risorsa dell'app per la logica Standard richiede il piano di hosting Standard del flusso di lavoro, basato sul piano di hosting Funzioni di Azure Premium. |
Account di archiviazione di Azure | Sì, sia per i flussi di lavoro con stato che per i flussi di lavoro senza stato | Questa risorsa di Azure archivia i metadati, le chiavi per il controllo di accesso, lo stato, gli input, gli output, la cronologia di esecuzione e altre informazioni sui flussi di lavoro. |
Application Insights | Facoltativo | Questa risorsa di Azure offre funzionalità di monitoraggio per i flussi di lavoro. |
Modello di Azure Resource Manager (modello di ARM) | Facoltativo | Questa risorsa di Azure definisce una distribuzione dell'infrastruttura di base che è possibile riutilizzare o esportare. |
Risorse di connessione API e criteri di accesso
Nei App per la logica di Azure a tenant singolo ogni risorsa di connessione API gestita nel flusso di lavoro richiede criteri di accesso associati. Questo criterio richiede l'identità dell'app per la logica per fornire le autorizzazioni corrette per l'accesso all'infrastruttura del connettore gestito. I progetti di esempio inclusi includono un modello di Resource Manager che include tutte le risorse dell'infrastruttura necessarie, inclusi questi criteri di accesso.
Ad esempio, il diagramma seguente mostra le dipendenze tra un progetto di app per la logica Standard e le risorse dell'infrastruttura:
Scaricare gli artefatti dell'app per la logica Standard dal portale
Se l'app per la logica Standard si trova nel portale di Azure, è possibile scaricare un file ZIP contenente i file di artefatti dell'app per la logica, tra cui workflow.json, connections.json, host.json e local.settings.json.
Nel portale di Azure, individuare e aprire la risorsa app per la logica Standard.
Selezionare Panoramica nel menu dell'App per la logica.
Sulla barra degli strumenti Panoramica selezionare Scarica contenuto dell'app. Nella casella di conferma visualizzata selezionare Scarica.
Quando viene visualizzata la richiesta, selezionare Salva con nome, passare alla cartella locale desiderata e selezionare Salva per salvare il file ZIP.
Estrai il file zip.
In Visual Studio Code aprire la cartella contenente i file decompressi.
Quando si apre la cartella, Visual Studio Code crea automaticamente un'area di lavoro.
Modificare il contenuto della cartella in modo da includere solo le cartelle e i file necessari per la distribuzione con DevOps.
Al termine, salvare le modifiche.
Compilare e distribuire l'app per la logica (distribuzione zip)
È possibile configurare pipeline di compilazione e versione all'interno o all'esterno di Azure che distribuiscono app per la logica Standard nell'infrastruttura.
Compilare il progetto
Eseguire il push dei file di progetto e artefatto dell'app per la logica Standard nel repository di origine, ad esempio GitHub o Azure DevOps.
Configurare una pipeline di compilazione in base al tipo di progetto dell'app per la logica completando le azioni corrispondenti seguenti:
Tipo progetto Descrizione e passaggi Basato su Nuget La struttura del progetto basata su NuGet si basa su .NET Framework. Per compilare questi progetti, assicurarsi di seguire i passaggi di compilazione per .NET Standard. Per altre informazioni, vedere la documentazione relativa alla creazione di un pacchetto NuGet con MSBuild. Basato su bundle Il progetto basato su bundle di estensione non è specifico della lingua e non richiede alcuna procedura di compilazione specifica del linguaggio. Comprimere i file di progetto usando qualsiasi metodo desiderato.
Importante
Assicurarsi che il file ZIP contenga gli artefatti di compilazione effettivi del progetto a livello radice, incluse tutte le cartelle del flusso di lavoro, i file di configurazione, ad esempio host.json, connections.json, local.settings.json e qualsiasi altro file correlato. Non aggiungere cartelle aggiuntive né inserire elementi in cartelle che non esistono già nella struttura del progetto.
Ad esempio, l'elenco seguente mostra un esempio MyBuildArtifacts.zip struttura di file:
MyStatefulWorkflow1-Folder MyStatefulWorkflow2-Folder connections.json host.json local.settings.json
Prima del rilascio in Azure
Le connessioni API gestite all'interno del file di connections.json del progetto dell'app per la logica vengono create in modo specifico per l'uso locale in Visual Studio Code. Prima di poter rilasciare gli artefatti del progetto da Visual Studio Code ad Azure, è necessario aggiornare questi artefatti. Per usare le connessioni API gestite in Azure, è necessario aggiornare i metodi di autenticazione in modo che siano nel formato corretto da usare in Azure.
Aggiornare il tipo di autenticazione
Per ogni connessione API gestita che usa l'autenticazione, è necessario aggiornare l'oggetto authentication
dal formato locale in Visual Studio Code al formato portale di Azure, come illustrato rispettivamente dai primi e dai secondi esempi di codice:
Formato di Visual Studio Code
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "Raw",
"scheme": "Key",
"parameter": "@appsetting('sql-connectionKey')"
}
}
}
}
formato portale di Azure
{
"managedApiConnections": {
"sql": {
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/westus/managedApis/sql"
},
"connection": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/ase/providers/Microsoft.Web/connections/sql-2"
},
"connectionRuntimeUrl": "https://xxxxxxxxxxxxxx.01.common.logic-westus.azure-apihub.net/apim/sql/xxxxxxxxxxxxxxxxxxxxxxxxx/",
"authentication": {
"type": "ManagedServiceIdentity",
}
}
}
}
Creare connessioni API in base alle esigenze
Se si distribuisce l'app per la logica Standard in un'area di Azure o in una sottoscrizione diversa dall'ambiente di sviluppo locale, è anche necessario assicurarsi di creare queste connessioni API gestite prima della distribuzione. La distribuzione del modello di Azure Resource Manager è il modo più semplice per creare connessioni API gestite.
L'esempio seguente illustra una definizione di risorsa di connessione API gestita di SQL in un modello di Resource Manager:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
Per trovare i valori necessari per l'oggetto properties
in modo che sia possibile completare la definizione della risorsa di connessione, usare l'API seguente per un connettore specifico:
GET https://management.azure.com/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/{connector-name}?api-version=2016-06-01
Nella risposta trovare l'oggetto connectionParameters
, che contiene le informazioni necessarie per completare la definizione della risorsa per tale connettore specifico. L'esempio seguente illustra una definizione di risorsa di esempio per una connessione gestita di SQL:
{
"type": "Microsoft.Web/connections",
"apiVersion": "2016–06–01",
"location": "[parameters('location')]",
"name": "[parameters('connectionName')]",
"properties": {
"displayName": "sqltestconnector",
"api": {
"id": "/subscriptions/{Azure-subscription-ID}/providers/Microsoft.Web/locations/{Azure-region-location}/managedApis/sql"
},
"parameterValues": {
"authType": "windows",
"database": "TestDB",
"password": "TestPassword",
"server": "TestServer",
"username": "TestUserName"
}
}
}
In alternativa, è possibile acquisire ed esaminare la traccia di rete per quando si crea una connessione usando la finestra di progettazione del flusso di lavoro in App per la logica di Azure. Trovare la PUT
chiamata inviata all'API del connettore gestito come descritto in precedenza ed esaminare il corpo della richiesta per tutte le informazioni necessarie.
Definizione di risorsa del gateway dati locale
Se la connessione usa una risorsa gateway dati locale, questa definizione di risorsa esiste separatamente dalla definizione della risorsa del connettore. Per visualizzare la definizione di risorsa del gateway dati, vedere Automatizzare la distribuzione per App per la logica di Azure usando i modelli di Azure Resource Manager e Microsoft.Web connectionGateways.
Rilasciare in Azure
Per configurare una pipeline di versione distribuita in Azure, seguire la procedura associata per GitHub, Azure DevOps o l'interfaccia della riga di comando di Azure.
Per le distribuzioni di GitHub, è possibile distribuire l'app per la logica usando GitHub Actions, ad esempio GitHub Actions in Funzioni di Azure. Per eseguire questa azione è necessario passare le informazioni seguenti:
- Nome dell'app per la logica da usare per la distribuzione
- File ZIP che contiene gli artefatti di compilazione effettivi, incluse tutte le cartelle del flusso di lavoro, i file di configurazione, ad esempio host.json, connections.json, local.settings.json e qualsiasi altro file correlato.
- Profilo di pubblicazione, usato per l'autenticazione
- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'MyLogicAppName'
package: 'MyBuildArtifact.zip'
publish-profile: 'MyLogicAppPublishProfile'
Per altre informazioni, vedere Recapito continuo con GitHub Action.
Dopo la distribuzione in Azure
Ogni connessione API ha criteri di accesso. Al termine della distribuzione ZIP, è necessario aprire la risorsa dell'app per la logica Standard nella portale di Azure e creare criteri di accesso per ogni connessione API per configurare le autorizzazioni per l'app per la logica distribuita. La distribuzione zip non crea automaticamente le impostazioni dell'app. Dopo la distribuzione, è necessario creare queste impostazioni dell'app in base al file local.settings.json nel progetto dell'app per la logica.
Contenuto correlato
Vorremmo ascoltare le vostre esperienze con l'App per la logica di Azure a tenant singolo.
- Per i bug o i problemi, creare i problemi in GitHub.
- Per domande, richieste, commenti e altri commenti, usare questo modulo di feedback.