GCP部署管理器使用新的计算实例创建项目

时间:2018-12-03 21:50:52

标签: google-cloud-platform google-deployment-manager

我按照本教程使用部署管理器来创建项目:https://cloud.google.com/blog/products/gcp/automating-project-creation-with-google-cloud-deployment-manager

它工作得很好,但是我很难弄清楚如何在新创建的项目中创建计算实例。

我尝试的所有操作都会给我一个错误: 指定为'f1-micro'的计算机类型与实例'919628xxxxxx'位于不同的项目'58535xxxxxx'。“,”原因“:”无效“

正在尝试在“ ProjectCreation”项目上创建实例(来自教程),而不是在新创建的项目上创建。

项目创建完成(“ 58535 ..”号),我尝试在machineType URL中引用该项目。喜欢:

'https://www.googleapis.com/compute/v1/projects/' + project_id +'/zones/us-central1-f/machineTypes/f1-micro'

我在config.yaml中都尝试过,并尝试在project.py中添加其他资源。两者都具有相同的结果。

对于python,我尝试将其添加到project.py中的资源数组中:

{
'name': 'server-paul-1',
'type': 'compute.v1.instance',
'metadata': {
    'dependsOn': [project_id]
},
'properties': {
    'zone': 'us-central1-f',
    'machineType': 'https://www.googleapis.com/compute/v1/projects/' + project_id +'/zones/us-central1-f/machineTypes/f1-micro'
}

2 个答案:

答案 0 :(得分:0)

根据共享的documentation,我们声明了以下内容:

“我们建议您主要使用DM创建项目来创建新项目及其资源。避免在Creation项目中创建其他GCP资源。”

因此,我建议您首先创建一个新项目及其资源。之后,管理新创建的GCP资源,包括Compute Engine。

项目资源: 1-您要创建的新项目的名称。在所有项目名称中,该名称必须唯一。 2-设置organization-id参数或parent-folder-id参数。如果两者都给出,则parent-folder-id优先。 3-设置要使用的计费帐户。 4-设置要打开的API。 5-设置要创建的服务帐户。 6-为项目设置所需的IAM策略。

有关如何添加配置和资源列表以及它们各自的属性的更多详细信息,可以在下面的link中找到。

话虽如此,请随时提交Feature request,以便能够在创建过程中添加更多项目资源,包括(计算引擎,容器引擎,Cloud SQL,BigQuery等)。我不能保证实施或为此提供您预计的时间。请放心,Google致力于改善其产品,您的反馈将帮助我们做到这一点。

答案 1 :(得分:0)

Deployment Manager中的声明是并行运行的,而不是按顺序运行。一个项目的创建和其他GCP项目的创建是并行进行的。如果项目尚不存在,则无法创建资源。

Deployment Manager将尝试并行运行所有资源修改(除非您指定资源之间的依赖关系)。 Deployment Manager是声明性配置,无论它们彼此独立与否,它将并行运行部署。解决方法是使用references

正如您在共享documentation中注意到的那样,您在上一条注释中提供了有关依赖项的信息。我们始终建议客户确保在添加任何资源之前首先创建项目,这就是为什么我建议您创建功能请求以确保我们的产品团队简化创建步骤以确保我们可以顺利进行的原因在管理项目资源时非常轻松。