빠른 시작: 배포 자동화

참고 항목

Azure Spring Apps는 Azure Spring Cloud 서비스의 새 이름입니다. 서비스에 새 이름이 지정되었지만, 자산을 업데이트하는 동안 스크린샷, 비디오, 다이어그램과 같은 일부 위치에서는 당분간 이전 이름이 표시됩니다.

이 문서의 적용 대상:❌ 기본/표준 ✔️ Enterprise

이 빠른 시작에서는 GitHub Actions 및 Terraform을 사용하여 Azure Spring Apps Enterprise 플랜에 대한 배포를 자동화하는 방법을 보여줍니다.

필수 조건

GitHub 리포지토리 설정 및 인증

샘플 애플리케이션과 연결된 자동화에는 Terraform 상태를 유지하기 위한 Storage 계정이 필요합니다. 다음 단계에서는 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의 fitness 스토어 샘플을 사용합니다. 샘플을 포크하고 GitHub 리포지토리 페이지를 연 다음 설정 탭을 선택합니다. 다음 스크린샷과 같이 비밀 메뉴를 열고 새 비밀 추가를 선택합니다.

    Screenshot showing GitHub Settings Add new secret.

  6. 비밀 이름을 AZURE_CREDENTIALS로 설정하고 해당 값을 GitHub 리포지토리 설정 및 인증이라는 제목 아래에서 찾은 JSON 문자열로 설정합니다.

    Screenshot showing GitHub Settings Set secret data.

  7. GitHub Actions에 다음 비밀을 추가합니다.

  8. 다음 값을 사용하여 GitHub Actions에 TF_BACKEND_CONFIG 비밀을 추가합니다.

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

다음 단계

다음 중 원하는 빠른 시작을 계속 진행합니다.