Краткое руководство. Автоматизация развертываний

Примечание.

Azure Spring Apps — это новое название службы Azure Spring Cloud. Старое название будет еще некоторое время встречаться в наших материалах, пока мы не обновим ресурсы, такие как снимки экрана, видео и схемы.

Эта статья относится к:❌ Basic/Standard ✔️ Enterprise

В этом кратком руководстве показано, как автоматизировать развертывание в плане Azure Spring Apps Enterprise с помощью GitHub Actions и Terraform.

Необходимые компоненты

Настройка репозитория GitHub и проверка подлинности

Для автоматизации, связанной с примером приложения, требуется учетная запись служба хранилища для поддержания состояния Terraform. Ниже показано, как создать учетную запись служба хранилища для использования с GitHub Actions и Terraform.

  1. Используйте следующую команду, чтобы создать новую группу ресурсов для хранения учетной записи служба хранилища:

    az group create \
        --name <storage-resource-group> \
        --location <location>
    
  2. Чтобы создать учетную запись служба хранилища, используйте следующую команду:

    az storage account create \
        --resource-group <storage-resource-group> \
        --name <storage-account-name> \
        --location <location> \
        --sku Standard_RAGRS \
        --kind StorageV2
    
  3. Используйте следующую команду, чтобы создать контейнер служба хранилища в учетной записи служба хранилища:

    az storage container create \
        --resource-group <storage-resource-group> \
        --name terraform-state-container \
        --account-name <storage-account-name> \
        --auth-mode login
    
  4. Чтобы получить учетные данные Azure, используйте следующие команды. Для авторизации действия входа в Azure требуются учетные данные субъекта-службы Azure.

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

    Команда должна выводить объект JSON:

    {
        "clientId": "<GUID>",
        "clientSecret": "<GUID>",
        "subscriptionId": "<GUID>",
        "tenantId": "<GUID>",
        ...
    }
    
  5. В этом примере используется пример фитнес-магазина на сайте GitHub. Вилку примера откройте страницу репозитория GitHub и откройте вкладку Параметры. Откройте меню "Секреты", а затем выберите "Добавить новый секрет", как показано на следующем снимке экрана.

    Screenshot showing GitHub Settings Add new secret.

  6. Задайте имя AZURE_CREDENTIALS секрета и задайте его значение в строке JSON, найденной в заголовке "Настройка репозитория GitHub" и аутентификации.

    Screenshot showing GitHub Settings Set secret data.

  7. Добавьте следующие секреты в GitHub Actions:

  8. Добавьте секрет TF_BACKEND_CONFIG в GitHub Actions со следующим значением:

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

Автоматизация с помощью GitHub Actions

Теперь вы можете запустить GitHub Actions в репозитории. Рабочий процесс подготовки подготавливает все ресурсы, необходимые для запуска примера приложения. На следующем снимка экрана показан пример выполнения:

Screenshot of GitHub showing output from the provision workflow.

Каждое приложение имеет рабочий процесс развертывания, который будет повторно развертывать приложение при внесении изменений в это приложение. На следующем снимка экрана показан пример выходных данных из службы каталога:

Screenshot of GitHub showing output from the Deploy Catalog workflow.

Рабочий процесс очистки можно запустить вручную, чтобы удалить все ресурсы, созданные рабочим процессом provision . На следующем сниме экрана показаны выходные данные:

Screenshot of GitHub showing output from the cleanup workflow.

Очистка ресурсов

Если вы планируете продолжить работу с последующими краткими руководствами и статьями, эти ресурсы можно не удалять. Удалите ненужную группу ресурсов. Ресурсы в ней будут также удалены. Чтобы удалить группу ресурсов с помощью Azure CLI, используйте следующие команды:

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

Следующие шаги

Перейдите к любому из следующих необязательных кратких руководств: