다양한 범위에서 템플릿 배포
이제 리소스를 배포할 수 있는 다양한 범위를 이해했습니다. 이 단위에서는 이러한 범위에서 배포할 Bicep 파일 작성을 시작하는 방법을 알아봅니다.
Bicep 파일의 대상 범위 지정
Bicep은 파일이 배포될 범위를 알고 있어야 합니다. 이 정보는 Bicep에서 배포하는 리소스가 사용 중인 범위에 대해 유효한지 확인해야 하기 때문에 중요합니다. 예를 들어 Visual Studio Code용 Bicep 확장은 지원되지 않는 범위에서 리소스를 정의하려고 하면 경고합니다.
targetScope
키워드를 사용하여 파일의 리소스가 특정 범위에 해당함을 Bicep에 알립니다. 다음은 관리 그룹 범위에 배포되는 Bicep 파일의 예입니다.
targetScope = 'managementGroup'
resource policyDefinition 'Microsoft.Authorization/policyDefinitions@2024-05-01' = {
// ...
}
리소스가 관리 그룹의 범위에 배포되도록 Bicep에 알려주지만 특정 관리 그룹을 지정하지는 않습니다. 템플릿을 배포할 때 리소스를 배포할 관리 그룹을 정확히 Bicep에 알려줍니다. Azure CLI 및 Azure PowerShell cmdlet은 이 정보를 지정하는 인수를 제공합니다.
파일의 targetScope
를 resourceGroup
, subscription
, managementGroup
또는 tenant
로 설정할 수 있습니다. 대상 범위를 지정하지 않으면 Bicep에서 resourceGroup
범위를 가정합니다.
리소스 그룹 만들기
이제 다양한 범위에서 배포를 만드는 방법을 이해했으므로 이 이해를 구독 범위 리소스인 리소스 그룹 만들기에 적용해 보세요.
targetScope = 'subscription'
resource resourceGroup 'Microsoft.Resources/resourceGroups@2024-07-01' = {
name: 'example-resource-group'
location: 'westus'
}
이 예제에서 Bicep 파일에는 subscription
의 targetScope
가 있습니다. 즉, Bicep에서는 파일의 모든 리소스를 기본적으로 구독 범위로 간주합니다.
참고 항목
Bicep을 사용하여 이 모듈의 뒷부분에서 Azure 구독 및 관리 그룹을 만드는 방법을 알아봅니다.
배포 제출
배포를 시작하는 경우 배포할 범위를 Azure에 알려주어야 합니다. 즉, 다음과 같이 각 배포 범위에 대해 다른 Azure CLI 명령을 사용합니다.
이 범위에서 배포하려면 다음을 수행합니다. | 다음 Azure CLI 명령을 실행합니다. |
---|---|
Resource group | az deployment group create |
Subscription | az deployment sub create |
관리 그룹 | az deployment mg create |
테넌트 | az deployment tenant create |
배포를 시작하는 경우 배포할 범위를 Azure에 알려주어야 합니다. 즉, 다음과 같이 각 배포 범위에 대해 다른 PowerShell cmdlet을 사용합니다.
이 범위에서 배포하려면 다음을 수행합니다. | 이 PowerShell cmdlet을 사용합니다. |
---|---|
Resource group | New-AzResourceGroupDeployment |
Subscription | New-AzSubscriptionDeployment |
관리 그룹 | New-AzManagementGroupDeployment |
테넌트 | New-AzTenantDeployment |
Azure는 각 배포에 대한 메타데이터를 저장합니다. 리소스 그룹 범위의 배포와 달리 Azure에서 메타데이터를 올바르게 저장할 수 있도록 다른 범위에 배포할 때 제공해야 하는 몇 가지 정보가 있습니다.
위치: 지정하는 위치에 배포 메타데이터를 저장해야 합니다. 배포 메타데이터는 리소스 그룹과 동일한 위치를 사용하므로 리소스 그룹 범위 배포의 위치를 지정할 필요가 없습니다. 그러나 구독, 관리 그룹 또는 테넌트 범위에서 배포를 만들 때는 배포 메타데이터를 저장하는 Azure 지역을 지정해야 합니다. 이러한 범위에서 배포에 대한 리소스가 메타데이터에 대해 지정한 것과 동일한 위치에 항상 만들어지는 것은 아닙니다.
이름: Azure의 모든 배포에는 이름이 있습니다. 이름을 사용하여 배포에 대한 정보를 Azure에 요청할 수 있습니다. Azure CLI 또는 Azure PowerShell을 사용하여 배포를 제출하는 경우 이름을 지정할 필요가 없습니다. 그렇지 않으면 템플릿 파일의 파일 이름이 배포 이름으로 사용됩니다.
배포의 범위, 위치 및 이름의 조합은 고유해야 합니다. 예를 들어 my-deployment
라는 이름의 구독 배포를 만들고 미국 동부 위치를 사용하여 메타데이터를 저장한다고 가정해 보겠습니다. 서유럽과 같은 다른 위치에 있더라도 my-deployment
라는 이름의 동일한 구독에 다른 배포를 만들 수 없습니다. 미국 동부에 my-deployment
라는 이름의 다른 배포를 만들면 기존 배포를 덮어씁니다.