Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este artigo descreve o ParentResourceNotFound erro que pode ocorrer ao fazer a implementação de um recurso que depende de um recurso pai. O erro ocorre quando você implanta recursos com um arquivo Bicep ou um modelo do ARM (Azure Resource Manager).
Sintoma
Ao implantar um recurso que é filho de outro recurso, você poderá receber o seguinte erro:
Code=ParentResourceNotFound,
Message=Can not perform requested operation on nested resource. Parent resource 'exampleserver' not found."
Motivo
Quando um recurso é filho de outro recurso, o recurso pai deve existir antes que o recurso filho seja criado. O nome do recurso filho define a conexão com o recurso pai. O nome do recurso filho está no formato <parent-resource-name>/<child-resource-name>. Por exemplo, um Banco de Dados SQL pode ser definido como:
resource sqlDatabase 'Microsoft.Sql/servers/databases@2022-02-01-preview' = {
name: '${sqlServerName}/${databaseName}'
...
}
Para obter mais informações sobre os recursos pai e filho do Bicep, veja Definir nome e tipo para recursos filho no Bicep.
Se você implantar o servidor e o banco de dados no mesmo modelo, mas não especificar uma dependência no servidor, a implantação do banco de dados poderá ser iniciada antes que o servidor seja implantado. Isso faz com que a implantação do banco de dados falhe com o erro ParentResourceNotFound.
Se o recurso pai já existir e não estiver implantado no mesmo modelo, você receberá o ParentResourceNotFound erro quando o Resource Manager não puder associar o recurso filho a um pai. Esse erro pode ocorrer quando o recurso filho não está no formato correto. Ou se o recurso filho for implantado em um grupo de recursos diferente do grupo de recursos do recurso pai.
Solução 1: Implantado no mesmo modelo
Para resolver esse erro quando os recursos pai e filho são implantados no mesmo modelo, use uma dependência.
Esse exemplo usa um recurso filho aninhado dentro do recurso pai e isso cria a dependência. A criança obtém do recurso pai o tipo de recurso e a versão da API.
resource sqlServer 'Microsoft.Sql/servers@2022-02-01-preview' = {
name: sqlServerName
properties: {
...
}
resource sqlDatabase 'databases' = {
name: databaseName
...
}
}
Para obter mais informações sobre dependências, consulte a declaração de recurso no Bicep.
Solução 2: Implantado em modelos diferentes
Para resolver esse erro quando o recurso pai foi implantado em um modelo diferente, não defina uma dependência. Em vez disso, implante o filho no mesmo grupo de recursos e forneça o nome do recurso pai.
Este exemplo usa a palavra-chave existente para referenciar um elemento pai que foi implantado em um arquivo separado. O recurso filho usa o parent elemento e o nome simbólico do recurso pai.
param location string = resourceGroup().location
param sqlServerName string
param databaseName string
resource sqlServer 'Microsoft.Sql/servers@2022-02-01-preview' existing = {
name: sqlServerName
}
resource sqlDatabase 'Microsoft.Sql/servers/databases@2022-02-01-preview' = {
parent: sqlServer
name: databaseName
location: location
}