Azure 배포 스택과 Azure Developer CLI 통합

Azure 개발자 CLI(azd)는 템플릿 배포에 Azure 배포 스택을 지원합니다. Azure 배포 스택은 단일 응집력 있는 단위로 Azure 리소스 그룹을 관리할 수 있는 리소스입니다. 배포 스택을 사용하면 템플릿 및 앱과 연결된 리소스 집합을 추가로 제어할 수 있습니다 azd .

이 문서에서는 다음 방법을 설명합니다.

  • azd Azure 배포 스택 지원을 사용하도록 설정합니다.
  • Azure 배포 스택을 사용하여 azd 템플릿을 배포합니다.
  • 구성을 사용하여 azd 배포 스택 동작을 구성합니다.

Azure 배포 스택 지원 활성화

Azure 배포 스택 지원은 azd config 명령을 통해 사용하도록 설정해야 합니다.

azd config set alpha.deployment.stacks on

참고

Azure 배포 스택 지원은 현재 알파 기능이므로 수동으로 사용하도록 설정해야 합니다. 그러나 배포 스택은 향후 릴리스의 azd 기본 배포 동작이 됩니다. 버전 관리 전략에 대해 자세히 알아보세요.

다음 명령인 azd config show를 사용하여 해당 기능이 성공적으로 활성화되었는지 확인하십시오.

azd config show

배포 스택을 사용하여 템플릿 배포

배포 스택 기능을 사용하도록 설정한 후에는 이 기능의 기본 동작을 azd 활용하기 위해 템플릿을 추가로 변경할 필요가 없습니다. azd azd up 실행할 때 프로비전된 템플릿 리소스를 Azure 배포 스택에 자동으로 래핑합니다.

azd up

azd Azure 배포 스택에 대한 템플릿의 main.bicep 파일에 정의된 범위를 사용합니다. 예를 들어 템플릿의 범위가 구독 또는 리소스 그룹 수준인 경우 연결된 구독 또는 리소스 그룹 페이지의 배포 스택 페이지에서 Azure 포털에서 연결된 배포 스택을 볼 수 있습니다.

Azure 포털에서 구독 수준 배포 스택을 보여주는 스크린샷

배포 스택을 선택하여 관리 페이지를 봅니다.

배포 스택 세부 정보를 보여 주는 스크린샷.

배포 스택 삭제

기본적으로 표준 azd down 명령을 사용하여 배포 스택 및 관련 리소스를 삭제할 수 있습니다.

azd down

구체적인 동작은 azd down 및 배포 스택이 azure.yaml 파일을 사용하여 구성됩니다.

배포 스택 구성

azd infra 파일의 azure.yaml 섹션을 통해 다양한 구성 설정을 노출하여 Azure 배포 스택의 동작에 영향을 줍니다. 이러한 설정은 배포 스택 설명서에 자세히 설명된 표준 옵션에 매핑됩니다. 다음 azure.yaml 예제를 고려하세요.

name: todo-nodejs-mongo-aca
metadata:
  template: todo-nodejs-mongo-aca@0.0.1-beta
infra:
  provider: bicep
  deploymentStacks:
    actionOnUnmanage:
      resources: delete
      resourceGroups: delete
    denySettings:
      mode: denyDelete
      excludedActions:
        - Microsoft.Resources/subscriptions/resourceGroups/delete
      excludedResources:
        - <your-resource-id-1>
        - <your-resource-id-2>
      excludedPrincipals:
        - <your-targeted-principal-id-1>
        - <your-targeted-principal-id-2>
      applyToChildScopes: true
# ...
# Remaining file contents omitted
# ...

앞의 예제에서 다음 옵션은 섹션에 deploymentStacks 정의되어 있습니다.

  • actionOnUnmanage: 배포 스택이 삭제되면 연결된 Azure 리소스가 관리되지 않는 것으로 간주됩니다. 이 설정은 Azure 관리되지 않는 리소스를 처리하는 방법을 결정합니다. 가능한 값은 다음과 같습니다.
    • delete 는 기본값이며 삭제된 배포 스택에서 관리하는 모든 리소스를 삭제합니다.
    • detach 리소스를 제자리에 두고 삭제된 배포 스택에 대한 연결을 제거합니다.
  • denySettings: 배포 스택의 리소스에 대한 미묘한 제어를 제공하는 하위 섹션입니다.
    • 모드: 배포 스택 리소스에 대한 높은 수준의 제한을 결정합니다. 가능한 값은 다음과 같습니다.
      • none 는 기본값이며 배포 스택 리소스를 삭제하거나 새 리소스를 추가할 수 있습니다.
      • denyDelete 는 배포 스택 리소스가 삭제되지 않도록 합니다.
      • denyWriteAndDelete 는 배포 스택 리소스가 삭제되지 않도록 하고 새 리소스가 배포 스택에 추가되지 않도록 방지합니다.
    • excludedActions: 배포 스택 리소스에서 허용되지 않는 Azure RBAC(역할 기반 액세스 제어) 작업을 나열합니다.
    • excludedResources: 에서 제외되는 리소스 ID를 denySettings나열합니다.
    • excludedPrincipals: denySettings에서 제외된 서비스 주체 ID를 나열합니다.
    • applyToChildScopes: 거부 설정이 배포 스택에 있는 리소스의 자식 리소스에 적용되는지 여부를 설정하는 부울 값입니다. 예를 들어 SQL Server 리소스에는 자식 데이터베이스 리소스가 있습니다.