Código de erro do bíceps - BCP139
Este erro ocorre quando você usa resource
para implantar recursos em um escopo diferente do de destino. Você deve usar module
em vez disso. Para obter mais informações, consulte os seguintes artigos com base no escopo:
- Grupo de recursos: escopo para grupo de recursos diferente.
- Assinatura: escopos de implantação.
- Grupo de gerenciamento: Escopos de implantação.
- Inquilino: escopos de implantação.
Descrição do erro
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.
Solução
Para implantar recursos em um escopo que não seja o escopo de destino, adicione um module
arquivo .
Exemplos
O exemplo a seguir implanta um recurso de conta de armazenamento em um grupo de recursos diferente na mesma assinatura. O exemplo gera o erro porque o module
tipo de declaração não é usado:
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'
}
Você pode corrigir o erro usando o tipo de module
declaração:
param otherResourceGroup string
// module deployed to a different resource group in the same subscription
module exampleModule 'module.bicep' = {
name: 'deployStorageToAnotherRG'
scope: resourceGroup(otherResourceGroup)
}
O exemplo a seguir implanta um grupo de recursos em uma assinatura diferente. O exemplo gera o erro porque module
não é usado
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'
}
Você pode corrigir o erro usando o tipo de module
declaração:
targetScope = 'subscription'
param otherSubscriptionID string
// module deployed to a different subscription
module exampleModule 'module.bicep' = {
name: 'deployToDifferentSub'
scope: subscription(otherSubscriptionID)
}
Próximos passos
Para obter mais informações sobre códigos de erro e aviso do Bicep, consulte Diagnóstico do núcleo do Bicep.