Partilhar via


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:

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 modulearquivo .

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.