O Cloud Deployment Manager vai chegar ao fim do suporte em 31 de dezembro de 2025. Se você usa o Deployment Manager, migre para o Infrastructure Manager ou uma tecnologia de implantação alternativa até 31 de dezembro de 2025 para garantir que seus serviços continuem sem interrupções.
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Em alguns casos, pode haver dependências entre seus recursos, como no caso de você precisar que determinadas partes do ambiente existam antes de implantar outras partes do ambiente. Por exemplo, se você quiser criar um projeto como parte de uma implantação, será preciso criar o projeto antes de adicionar recursos a ele.
É possível especificar essas dependências usando a opção dependsOn nos arquivos ou modelos de configuração. Quando você adiciona a opção dependsOn a um recurso, o Deployment Manager cria ou atualiza as dependências antes de criar ou atualizar o recurso.
Você pode criar dependências entre os tipos base que fazem parte de sua implantação, seja no arquivo de configuração ou nos modelos usados para a implantação.
Não é possível definir uma dependência em arquivos de modelo ou tipos compostos.
Para ver informações contextuais sobre tipos base e compostos, consulte a Visão geral dos tipos.
Para usar os exemplos de API deste guia, configure o acesso de API.
Como criar dependências
Para adicionar uma dependência a um recurso, adicione uma seção metadata que contenha uma seção dependsOn. Em seguida, na seção dependsOn, especifique uma ou mais dependências.
No exemplo a seguir, para tornar a-special-vm dependente da criação de dois discos permanentes, adicione as seções metadata e dependsOn para a-special-vm.
Em seguida, adicione as dependências a cada disco permanente.
Na mesma implantação, você deve definir os discos permanentes que são dependências.
Neste exemplo, os discos são persistent-disk-a e persistent-disk-b:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-19 UTC."],[[["\u003cp\u003eDependencies between resources ensure that certain parts of an environment are created or updated before others, which is specified with the \u003ccode\u003edependsOn\u003c/code\u003e option in configuration files or templates.\u003c/p\u003e\n"],["\u003cp\u003eYou can establish dependencies between base types in configuration files or templates, but not on template files or composite types.\u003c/p\u003e\n"],["\u003cp\u003eTo create a dependency, you must include a \u003ccode\u003emetadata\u003c/code\u003e section with a \u003ccode\u003edependsOn\u003c/code\u003e subsection in the resource definition, listing the names of the resources it depends on, such as the example provided where \u003ccode\u003ea-special-vm\u003c/code\u003e depends on \u003ccode\u003epersistent-disk-a\u003c/code\u003e and \u003ccode\u003epersistent-disk-b\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eDeployment Manager will create or update the dependent resources before creating or updating the resource that lists them as a dependency.\u003c/p\u003e\n"],["\u003cp\u003eDependency loops, where resource A depends on resource B and vice-versa, are not allowed and will cause the deployment to fail.\u003c/p\u003e\n"]]],[],null,["# Creating Explicit Dependencies\n\nIn some cases, you can have dependencies between your resources, such as when\nyou need certain parts of your environment to exist before you can deploy other\nparts of the environment. For example, if you want to create a new project as\npart of a deployment, you need to ensure that the project is created before you\nadd any resources to it.\n\nYou can specify these dependencies using the `dependsOn` option in your configuration\nfiles or templates. When you add the `dependsOn` option for a resource, Deployment\nManager creates or updates the dependencies before creating or updating\nthe resource.\n\nYou can create dependencies between base types that are part of your deployment,\neither in the configuration file, or in the templates that you use for the deployment.\nYou cannot set a dependency on template files or composite types.\n\nFor background information on base and composite types, see the\n[Types Overview](/deployment-manager/docs/fundamentals#types).\n\nBefore you begin\n----------------\n\n- If you want to use the command-line examples in this guide, install the [\\`gcloud\\` command-line tool](/sdk).\n- If you want to use the API examples in this guide, set up [API access](/deployment-manager/docs/reference/latest).\n\nCreating dependencies\n---------------------\n\nTo add a dependency to a resource, add a `metadata` section that contains a\n`dependsOn` section. Then, in the `dependsOn` section, specify one or more\ndependencies.\n\nIn the following example, to make `a-special-vm` dependent on the creation of two\npersistent disks, add the `metadata` and `dependsOn` sections for `a-special-vm`.\nThen, add the dependencies for each persistent disk.\n\nIn the same deployment, you must define the persistent disks that are dependencies.\nIn this example, the disks are `persistent-disk-a` and `persistent-disk-b`: \n\n resources:\n - name: a-special-vm\n type: compute.v1.instances\n properties:\n ...\n\n metadata:\n dependsOn:\n - persistent-disk-a\n - persistent-disk-b\n\n - name: persistent-disk-a\n type: compute.v1.disks\n properties:\n ...\n\n - name: persistent-disk-b\n type: compute.v1.disks\n properties:\n ...\n\nIn this deployment, Deployment Manager creates `persistent-disk-a` and\n`persistent-disk-b` before creating `a-special-vm`.\n| **Warning:** Avoid creating dependency loops. For example, if you specify that resource A depends on resource B, and resource B depends on resource A, a dependency loop is created, and the deployment fails. Additionally, if you use [references](/deployment-manager/docs/configuration/use-references) in your deployment, implicit dependencies are created, which might also cause dependency loops.\n\nWhat's next\n-----------\n\n- [Create a deployment](/deployment-manager/docs/deployments).\n- Learn about [references](/deployment-manager/docs/configuration/use-references).\n- Learn more about [templates](/deployment-manager/docs/configuration/templates/create-basic-template)."]]