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 核心診斷。