빠른 시작: 배포 자동화
참고 항목
기본, 표준 및 엔터프라이즈 계획은 2025년 3월 중순부터 사용되지 않으며 3년의 은퇴 기간이 있습니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 사용 중지 공지 사항을 참조하세요.
표준 소비 및 전용 계획은 2024년 9월 30일부터 사용되지 않으며 6개월 후에 완전히 종료됩니다. Azure Container Apps로 전환하는 것이 좋습니다. 자세한 내용은 Azure Spring Apps 표준 사용량 및 전용 계획을 Azure Container Apps로 마이그레이션을 참조 하세요.
이 문서는 기본/표준 ✅ 엔터프라이즈에 ❎ 적용됩니다.
이 빠른 시작에서는 GitHub Actions 및 Terraform을 사용하여 Azure Spring Apps Enterprise 플랜에 대한 배포를 자동화하는 방법을 보여줍니다.
필수 조건
- 활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
- Azure Marketplace 엔터프라이즈 플랜의 요구 사항 섹션을 이해하고 이행합니다.
- Azure CLI 버전 2.45.0 이상.
- Git
- jq
- Azure Spring Apps Enterprise 계획 확장입니다. 다음 명령을 사용하여 이전 버전을 제거하고 최신 엔터프라이즈 플랜 확장을 설치합니다. 이전에
spring-cloud
확장을 설치한 경우 구성 및 버전 불일치를 방지하기 위해 이 확장을 제거합니다.az extension add --upgrade --name spring az extension remove --name spring-cloud
GitHub 리포지토리 설정 및 인증
샘플 애플리케이션과 연결된 자동화에는 Terraform 상태를 유지하기 위한 Storage 계정이 필요합니다. 다음 단계에서는 GitHub Actions 및 Terraform에서 사용할 스토리지 계정을 만드는 방법을 보여 줍니다.
다음 명령을 사용하여 스토리지 계정을 포함할 새 리소스 그룹을 만듭니다.
az group create \ --name <storage-resource-group> \ --location <location>
다음 명령을 사용하여 스토리지 계정을 만듭니다.
az storage account create \ --resource-group <storage-resource-group> \ --name <storage-account-name> \ --location <location> \ --sku Standard_RAGRS \ --kind StorageV2
다음 명령을 사용하여 스토리지 계정 내에 스토리지 컨테이너를 만듭니다.
az storage container create \ --resource-group <storage-resource-group> \ --name terraform-state-container \ --account-name <storage-account-name> \ --auth-mode login
다음 명령을 사용하여 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>", ... }
이 예제에서는 GitHub의 fitness 스토어 샘플을 사용합니다. 샘플을 포크하고 GitHub 리포지토리 페이지를 연 다음 설정 탭을 선택합니다. 다음 스크린샷과 같이 비밀 메뉴를 열고 새 비밀 추가를 선택합니다.
비밀 이름을
AZURE_CREDENTIALS
로 설정하고 해당 값을 GitHub 리포지토리 설정 및 인증이라는 제목 아래에서 찾은 JSON 문자열로 설정합니다.GitHub Actions에 다음 비밀을 추가합니다.
TF_PROJECT_NAME
: 선택한 값을 사용합니다. 이 값은 Terraform 프로젝트의 이름이 됩니다.AZURE_LOCATION
: 리소스가 생성될 Azure 지역입니다.OIDC_JWK_SET_URI
: 빠른 시작: Azure Spring Apps Enterprise 플랜을 사용하여 애플리케이션에 대한 Single Sign-On 구성에 정의된JWK_SET_URI
를 사용합니다.OIDC_CLIENT_ID
: 빠른 시작: Azure Spring Apps Enterprise 플랜을 사용하여 애플리케이션에 대한 Single Sign-On 구성에 정의된CLIENT_ID
를 사용합니다.OIDC_CLIENT_SECRET
: 빠른 시작: Azure Spring Apps Enterprise 플랜을 사용하여 애플리케이션에 대한 Single Sign-On 구성에 정의된CLIENT_SECRET
를 사용합니다.OIDC_ISSUER_URI
: 빠른 시작: Azure Spring Apps Enterprise 플랜을 사용하여 애플리케이션에 대한 Single Sign-On 구성에 정의된ISSUER_URI
를 사용합니다.
다음 값을 사용하여 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를 실행할 수 있습니다. 프로비전 워크플로는 예제 애플리케이션을 실행하는 데 필요한 모든 리소스를 프로비전합니다. 다음 스크린샷은 실행 예제를 보여줍니다.
각 애플리케이션에는 해당 애플리케이션을 변경할 때 애플리케이션을 다시 배포하는 배포 워크플로가 있습니다. 다음 스크린샷은 카탈로그 서비스의 몇 가지 예제 출력을 보여줍니다.
정리 워크플로를 수동으로 실행하여 provision
워크플로에서 만든 모든 리소스를 삭제할 수 있습니다. 다음 스크린샷은 출력을 보여 줍니다.
리소스 정리
후속 빠른 시작 및 자습서를 계속 사용하려는 경우 이러한 리소스를 그대로 유지할 수 있습니다. 더 이상 필요 없으면 리소스 그룹을 삭제합니다. 그러면 리소스 그룹의 리소스가 삭제됩니다. Azure CLI를 사용하여 리소스 그룹을 삭제하려면 다음 명령을 사용합니다.
echo "Enter the Resource Group name:" &&
read resourceGroupName &&
az group delete --name $resourceGroupName &&
echo "Press [ENTER] to continue ..."
다음 단계
다음 중 원하는 빠른 시작을 계속 진행합니다.