Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Ao implantar recursos, talvez seja necessário garantir que alguns recursos sejam implantados antes de outros recursos. Por exemplo, você precisa de um servidor SQL lógico antes de implantar um banco de dados. Você estabelece essa relação marcando um recurso como dependente do outro. A ordem de implantação de recursos é determinada de duas maneiras: dependência implícita e dependência explícita
O Azure Resource Manager avalia as dependências entre recursos e as implanta em sua ordem dependente. Quando os recursos não são dependentes entre si, o Resource Manager implementa-os em paralelo. Você só precisa definir dependências para recursos que são implantados no mesmo arquivo Bicep.
Dependência implícita
Uma dependência implícita é criada quando uma declaração de recurso faz referência a outro recurso na mesma implantação. No exemplo a seguir, otherResource obtém uma propriedade de exampleDnsZone. O recurso nomeado otherResource é implicitamente dependente de exampleDnsZone.
resource exampleDnsZone 'Microsoft.Network/dnsZones@2023-07-01-preview' = {
name: 'myZone'
location: 'global'
}
resource otherResource 'Microsoft.Example/examples@2024-05-01' = {
name: 'exampleResource'
properties: {
// get read-only DNS zone property
nameServers: exampleDnsZone.properties.nameServers
}
}
Um recurso aninhado também tem uma dependência implícita de seu recurso de contenção.
resource myParent 'My.Rp/parentType@2024-05-01' = {
name: 'myParent'
location: 'West US'
// implicit dependency on 'myParent'
resource myChild 'childType' = {
name: 'myChild'
}
}
Um recurso que inclui a propriedade pai tem uma dependência implícita do recurso pai. Depende do recurso pai, e não de nenhum dos seus outros recursos filho.
O exemplo a seguir mostra uma conta de armazenamento e um serviço de arquivo. O serviço de arquivo tem uma dependência implícita da conta de armazenamento.
resource storage 'Microsoft.Storage/storageAccounts@2025-06-01' = {
name: 'examplestorage'
location: resourceGroup().location
kind: 'StorageV2'
sku: {
name: 'Standard_LRS'
}
}
resource service 'Microsoft.Storage/storageAccounts/fileServices@2025-06-01' = {
name: 'default'
parent: storage
}
resource share 'Microsoft.Storage/storageAccounts/fileServices/shares@2025-06-01' = {
name: 'exampleshare'
parent: service
}
Quando existir uma dependência implícita, não adicione uma dependência explícita.
Para obter mais informações sobre recursos aninhados, consulte Definir nome e tipo para recursos filho no Bicep.
Dependência explícita
Uma dependência explícita é declarada com a dependsOn propriedade. A propriedade aceita uma matriz de identificadores de recurso, portanto, você pode especificar mais de uma dependência. Você pode especificar uma dependência aninhada de recurso através do :: operador.
O exemplo a seguir mostra uma zona DNS nomeada otherZone que depende de uma zona DNS chamada dnsZone:
resource dnsZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoZone1'
location: 'global'
}
resource otherZone 'Microsoft.Network/dnszones@2023-07-01-preview' = {
name: 'demoZone2'
location: 'global'
dependsOn: [
dnsZone
]
}
Embora você possa estar inclinado a usar dependsOn para mapear relações entre seus recursos, é importante entender por que você está fazendo isso. Por exemplo, documentar como os recursos estão interligados dependsOn não é a abordagem correta. Após a implantação, o recurso não retém dependências de implantação em suas propriedades, portanto, não há comandos ou operações que permitam ver dependências. A definição de dependências desnecessárias diminui o tempo de implantação porque o Gerenciador de Recursos não pode implantar esses recursos em paralelo.
Embora às vezes sejam necessárias dependências explícitas, a necessidade delas é rara. Na maioria dos casos, você pode usar um nome simbólico para implicar a dependência entre recursos. Se você estiver definindo dependências explícitas, considere se há uma maneira de removê-las.
Visualize dependências
Visual Studio Code fornece uma ferramenta para visualizar as dependências. Abra um arquivo Bicep no Visual Studio Code e selecione o botão do visualizador no canto superior esquerdo. A captura de tela a seguir mostra as dependências de uma máquina virtual.
Próximos passos
Para obter a sintaxe para implantar um recurso, consulte Declaração de recurso no Bicep.