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

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.

  1. 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>
    
  2. 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
    
  3. 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
    
  4. 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>",
        ...
    }
    
  5. 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.

    Screenshot che mostra Le impostazioni di GitHub Add new secret (Aggiungi nuovo segreto).

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

    Screenshot che mostra le impostazioni di GitHub Impostare i dati segreti.

  7. Aggiungere i segreti seguenti a GitHub Actions:

  8. 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:

Screenshot di GitHub che mostra l'output del flusso di lavoro di provisioning.

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:

Screenshot di GitHub che mostra l'output del flusso di lavoro Distribuisci 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:

Screenshot di GitHub che mostra l'output del flusso di lavoro di pulizia.

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: