Bicep 오류 코드 - BCP139
이 오류는 리소스를 대상 범위와 다른 범위에 배포하는 데 사용할 resource
때 발생합니다. 대신 사용해야 module
합니다. 자세한 내용은 범위에 따라 다음 문서를 참조하세요.
- 리소스 그룹: 다른 리소스 그룹으로 범위 지정
- 구독: 배포 범위입니다.
- 관리 그룹: 배포 범위.
- 테넌트: 배포 범위입니다.
오류 설명
A resource's scope must match the scope of the Bicep file for it to be deployable. You must use modules to deploy resources to a different scope.
솔루션
대상 범위가 아닌 범위에 리소스를 배포하려면 다음을 추가합니다 module
.
예제
다음 예제에서는 동일한 구독의 다른 리소스 그룹에 스토리지 계정 리소스를 배포합니다. 이 예제에서는 선언 형식이 module
사용되지 않으므로 오류를 발생합니다.
param otherResourceGroup string
param location string
// resource deployed to a different resource group in the same subscription
resource storage 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: uniqueString(resourceGroup().id)
scope: resourceGroup(otherResourceGroup)
location: location
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
}
선언 형식을 사용하여 오류를 수정할 module
수 있습니다.
param otherResourceGroup string
// module deployed to a different resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'deployStorageToAnotherRG'
scope: resourceGroup(otherResourceGroup)
}
다음 예제에서는 리소스 그룹을 다른 구독에 배포합니다. 이 예제에서는 사용되지 않으므로 오류를 module
발생합니다.
targetScope = 'subscription'
param otherSubscriptionID string
// resource deployed to a different subscription
resource exampleResource 'Microsoft.Resources/resourceGroups@2024-03-01' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
location: 'eastus'
}
선언 형식을 사용하여 오류를 수정할 module
수 있습니다.
targetScope = 'subscription'
param otherSubscriptionID string
// module deployed to a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
}
다음 단계
Bicep 오류 및 경고 코드에 대한 자세한 내용은 Bicep 코어 진단을 참조 하세요.