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

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.

  1. 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>
    
  2. 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
    
  3. 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
    
  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 showing GitHub Settings Add new secret.

  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 showing GitHub Settings Set secret data.

  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 of GitHub showing output from the provision workflow.

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 of GitHub showing output from the Deploy Catalog workflow.

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 of GitHub showing output from the cleanup workflow.

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: