Guida introduttiva: Automatizzare le distribuzioni
Nota
I piani Basic, Standard ed Enterprise saranno deprecati a partire dalla metà di marzo 2025, con un periodo di ritiro di 3 anni. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere l'annuncio di ritiro di Azure Spring Apps.
Il piano Standard a consumo e dedicato sarà deprecato a partire dal 30 settembre 2024, con un arresto completo dopo sei mesi. È consigliabile eseguire la transizione ad App Azure Container. Per altre informazioni, vedere Eseguire la migrazione del consumo di Azure Spring Apps Standard e del piano dedicato alle app Azure Container.
Questo articolo si applica a: ❎ Basic/Standard ✅ Enterprise
Questa guida introduttiva illustra come automatizzare le distribuzioni nel piano Enterprise di Azure Spring Apps usando GitHub Actions e Terraform.
Prerequisiti
- Un account Azure con una sottoscrizione attiva. Creare un account gratuitamente.
- Comprendere e soddisfare la sezione Requisiti del piano Enterprise in Azure Marketplace.
- Interfaccia della riga di comando di Azure versione 2.45.0 o successiva.
- Git.
- jq
- Estensione del piano Enterprise di Azure Spring Apps. Usare il comando seguente per rimuovere le versioni precedenti e installare l'estensione del piano Enterprise più recente. Se l'estensione
spring-cloud
è stata installata in precedenza, disinstallarla per evitare la mancata corrispondenza della configurazione e della versione.az extension add --upgrade --name spring az extension remove --name spring-cloud
Configurare un repository GitHub ed eseguire l'autenticazione
L'automazione associata all'applicazione di esempio richiede un account di archiviazione per mantenere lo stato terraform. I passaggi seguenti illustrano come creare un account di archiviazione da usare con GitHub Actions e Terraform.
Usare il comando seguente per creare un nuovo gruppo di risorse per contenere l'account di archiviazione:
az group create \ --name <storage-resource-group> \ --location <location>
Usare il comando seguente per creare un account di archiviazione:
az storage account create \ --resource-group <storage-resource-group> \ --name <storage-account-name> \ --location <location> \ --sku Standard_RAGRS \ --kind StorageV2
Usare il comando seguente per creare un contenitore di archiviazione all'interno dell'account di archiviazione:
az storage container create \ --resource-group <storage-resource-group> \ --name terraform-state-container \ --account-name <storage-account-name> \ --auth-mode login
Usare i comandi seguenti per ottenere credenziali di Azure. È necessaria una credenziale dell'entità servizio di Azure per autorizzare l'azione di accesso di Azure.
az login az ad sp create-for-rbac \ --role contributor \ --scopes /subscriptions/<SUBSCRIPTION_ID> \ --json-auth
Il comando deve restituire un oggetto JSON:
{ "clientId": "<GUID>", "clientSecret": "<GUID>", "subscriptionId": "<GUID>", "tenantId": "<GUID>", ... }
Questo esempio usa l'esempio di archivio fitness su GitHub. Creare una copia tramite fork dell'esempio, aprire la pagina del repository GitHub e quindi selezionare la scheda Impostazioni . Aprire il menu Segreti , quindi selezionare Aggiungi un nuovo segreto, come illustrato nello screenshot seguente.
Impostare il nome del segreto su
AZURE_CREDENTIALS
e impostarne il valore sulla stringa JSON trovata sotto l'intestazione Configurare il repository GitHub ed eseguire l'autenticazione.Aggiungere i segreti seguenti a GitHub Actions:
TF_PROJECT_NAME
: usare un valore scelto. Questo valore sarà il nome del progetto Terraform.AZURE_LOCATION
: l'area di Azure in cui verranno create le risorse.OIDC_JWK_SET_URI
: usare la definizione in Avvio rapido: Configurare l'accessoJWK_SET_URI
Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise.OIDC_CLIENT_ID
: usare la definizione in Avvio rapido: Configurare l'accessoCLIENT_ID
Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise.OIDC_CLIENT_SECRET
: usare la definizione in Avvio rapido: Configurare l'accessoCLIENT_SECRET
Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise.OIDC_ISSUER_URI
: usare la definizione in Avvio rapido: Configurare l'accessoISSUER_URI
Single Sign-On per le applicazioni usando il piano Azure Spring Apps Enterprise.
Aggiungere il segreto
TF_BACKEND_CONFIG
a GitHub Actions con il valore seguente:resource_group_name = "<storage-resource-group>" storage_account_name = "<storage-account-name>" container_name = "terraform-state-container" key = "dev.terraform.tfstate"
Automatizzare con GitHub Actions
È ora possibile eseguire GitHub Actions nel repository. Il flusso di lavoro di provisioning effettua il provisioning di tutte le risorse necessarie per eseguire l'applicazione di esempio. Lo screenshot seguente mostra un'esecuzione di esempio:
Ogni applicazione ha un flusso di lavoro di distribuzione che ridistribuirà l'applicazione quando vengono apportate modifiche a tale applicazione. Lo screenshot seguente mostra un output di esempio del servizio catalogo:
Il flusso di lavoro di pulizia può essere eseguito manualmente per eliminare tutte le risorse create dal provision
flusso di lavoro. Lo screenshot seguente mostra l'output:
Pulire le risorse
Se si prevede di usare le guide di avvio rapido e le esercitazioni successive, è consigliabile non cancellare le risorse create. Quando non è più necessario, eliminare il gruppo di risorse per eliminare tutte le risorse contenute al suo interno. Per eliminare il gruppo di risorse usando l'interfaccia della riga di comando di Azure, usare i comandi seguenti:
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
Passaggi successivi
Continuare con uno degli argomenti di avvio rapido facoltativi seguenti: