首页 > 解决方案 > 有没有办法在 GCP 部署管理器中设置项目元数据

问题描述

我们正在使用 GCP 部署管理器来发布我们的基础架构。我们需要有一个可以从所有组访问的共享位置(例如项目元数据)。我认为如果我们可以将它作为代码的基础设施的一部分,那应该很棒,这样我们就可以将它与所有组连接起来。
我认为目前 GCP 部署管理器中没有这样的资源,但我也不希望有一些单独的脚本来执行此模式之外的更新。
有人可以帮忙吗?在云中存储通用元数据的最佳方式是什么,如果云无法提供正确的工具,我们如何以清晰/好的方式解决这个问题?

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

解决方案


这是一个 yaml 配置文件及其模板:

project.yaml 配置:

# Set project metadata

imports:
- path: project.jinja

resources:
- name: project
  type: project.jinja
  properties:
    key: 'abcd'
    value: 1234

和 project.jinja 模板:

{#
Template: Set Project Metadata
#}

resources:
- name: data
  action: gcp-types/compute-v1:compute.projects.setCommonInstanceMetadata
  metadata:
    runtimePolicy:
    - UPDATE_ON_CHANGE
  properties:
    items:
      - key: {{ properties["key"] }}
        value: {{ properties["value"] }}

推荐阅读