Início rápido: automatizar implantações

Observação

Azure Spring Apps é o novo nome do serviço Azure Spring Cloud. Embora o serviço tenha um novo nome, você verá o nome antigo em alguns locais por um tempo enquanto trabalhamos para atualizar ativos como capturas de tela, vídeos e diagramas.

Este artigo se aplica a(o):❌ Básico/Standard ✔️ Enterprise

Este início rápido mostra como automatizar as implantações no plano Enterprise do Aplicativos Spring do Azure usando GitHub Actions e Terraform.

Pré-requisitos

Configurar um repositório do GitHub e autenticar

A automação associada ao aplicativo de exemplo requer uma conta de armazenamento para manter o estado do Terraform. As etapas a seguir mostram como criar uma conta de armazenamento para uso com o GitHub Actions e o Terraform.

  1. Use o seguinte comando para criar um novo grupo de recursos para conter a conta de armazenamento:

    az group create \
        --name <storage-resource-group> \
        --location <location>
    
  2. Use o comando a seguir para criar uma conta de armazenamento:

    az storage account create \
        --resource-group <storage-resource-group> \
        --name <storage-account-name> \
        --location <location> \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. Execute o seguinte comando para criar um contêiner de armazenamento na conta de armazenamento:

    az storage container create \
        --resource-group <storage-resource-group> \
        --name terraform-state-container \
        --account-name <storage-account-name> \
        --auth-mode login
    
  4. Use os comandos a seguir para obter uma credencial do Azure. É necessária uma credencial de entidade de serviço do Azure para autorizar a ação de logon do Azure.

    az login
    az ad sp create-for-rbac \
        --role contributor \
        --scopes /subscriptions/<SUBSCRIPTION_ID> \
        --json-auth
    

    O comando deve gerar um objeto JSON semelhante a este:

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        ...
    }
    
  5. Este exemplo usa a amostra fitness store no GitHub. Crie um fork da amostra, abra a página do repositório do GitHub e selecione a guia Configurações. Abra o menu Segredos e selecione Adicionar um novo segredo, conforme mostrado na captura de tela a seguir.

    Screenshot showing GitHub Settings Add new secret.

  6. Defina o nome do segredo como AZURE_CREDENTIALS e seu valor como a cadeia de caracteres JSON que você encontrou no título Configure seu repositório do GitHub e autentique.

    Screenshot showing GitHub Settings Set secret data.

  7. Adicione os seguintes segredos ao GitHub Actions:

  8. Adicione o segredo TF_BACKEND_CONFIG ao GitHub Actions com o seguinte valor:

    resource_group_name  = "<storage-resource-group>"
    storage_account_name = "<storage-account-name>"
    container_name       = "terraform-state-container"
    key                  = "dev.terraform.tfstate"
    

Automatizar com o GitHub Actions

Agora você pode executar o GitHub Actions em seu repositório. O fluxo de trabalho de provisionamento provisiona todos os recursos necessários para execução do aplicativo de exemplo. A captura de tela a seguir mostra uma execução de exemplo:

Screenshot of GitHub showing output from the provision workflow.

Cada aplicativo tem um fluxo de trabalho de implantação que reimplantará o aplicativo quando forem feitas alterações nesse aplicativo. A captura de tela a seguir mostra alguns exemplos de saída do serviço de catálogo:

Screenshot of GitHub showing output from the Deploy Catalog workflow.

O fluxo de trabalho de limpeza pode ser executado manualmente para excluir todos os recursos criados pelo fluxo de trabalho provision. A captura de tela a seguir mostra o resultado:

Screenshot of GitHub showing output from the cleanup workflow.

Limpar os recursos

Se planejar continuar trabalhando com os tutoriais e inícios rápidos subsequentes, deixe esses recursos onde estão. Quando não for mais necessário, exclua o grupo de recursos, que excluirá os recursos no grupo de recursos. Para excluir o grupo de recursos usando a CLI do Azure, use os seguintes comandos:

echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."

Próximas etapas

Continue com qualquer um dos seguintes guias de início rápido opcionais: