0

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

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

我尝试的一切都给我一个错误:指定的机器类型'f1-micro'与实例'919628xxxxxx'在不同的项目'58535xxxxxx'中。","re​​ason":"invalid"

该实例正试图在“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'
}
4

2 回答 2

0

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

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

正如您在上一条评论中提供的有关依赖项的共享文档中注意到的那样。我们总是建议我们的客户确保在添加任何资源之前先创建项目,这就是为什么我建议您创建功能请求以确保我们的产品团队简化创建步骤以确保我们可以顺利完成管理项目资源时非常轻松。

于 2018-12-06T16:55:16.257 回答
0

根据共享文档,我们声明如下:

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

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

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

有关如何添加配置和资源列表及其各自属性的更多详细信息,请参见以下链接

话虽如此,请随时提交功能请求,以便能够在创建过程中添加更多项目资源,包括(Compute Engine、Container Engine、Cloud SQL、BigQuery 等)。我不能保证实现或为您提供 ETA。请放心,Google 会努力改进其产品,您的反馈有助于我们做到这一点。

于 2018-12-04T16:15:14.853 回答