Guida introduttiva: Automatizzare le distribuzioni
Nota
Azure Spring Apps è il nuovo nome del servizio Azure Spring Cloud. Anche se il servizio ha un nuovo nome, il nome precedente verrà visualizzato in alcune posizioni per un po' mentre si lavora per aggiornare gli asset, ad esempio screenshot, video e diagrammi.
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 Archiviazione per mantenere lo stato di Terraform. I passaggi seguenti illustrano come creare un account Archiviazione da usare con GitHub Actions e Terraform.
Usare il comando seguente per creare un nuovo gruppo di risorse per contenere l'account Archiviazione:
az group create \ --name <storage-resource-group> \ --location <location>
Usare il comando seguente per creare un account 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 Archiviazione all'interno dell'account 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: