【问题标题】:How to create a Network Endpoint Group via GCP Deployment Manager如何通过 GCP 部署管理器创建网络端点组
【发布时间】:2021-03-01 21:30:46
【问题描述】:

我正在尝试使用 Google Cloud Deployment Manager 为我的 App Engine 负载均衡器创建一个网络端点组。我找不到它的现有资源类型,因此我尝试使用自定义类型提供程序 (deploymentmanager.v2beta.typeProvider)。我面临的主要问题是我想用networkEndpointType: SERVERLESS 创建一个,但API 只支持区域。

这里是 API:https://cloud.google.com/compute/docs/reference/rest/beta/networkEndpointGroups/insert

这是部署管理器脚本:

resources:
- name: network-endpoint-group
  type: deploymentmanager.v2beta.typeProvider
  properties:
    descriptorUrl: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest
    options:
      inputMappings:
      - fieldName: name
        location: PATH
        methodMatch: ^(GET|DELETE|PUT|POST)$
        value: $.resource.properties.name
      - fieldName: Authorization
        location: HEADER
        value: >
          $.concat("Bearer ", $.googleOauth2AccessToken())

- name: neg_create
  action: {{ env["project"] }}/network-endpoint-group:compute.networkEndpointGroups.insert
  properties:
    name: my-network-endpoint-group
    project: {{ env["project"] }}
    zone: us-east1-b
    appEngine:
      service: my-service
    networkEndpointType: SERVERLESS
  metadata:
    runtimePolicy:
    - CREATE
    dependsOn:
    - network-endpoint-group

如果我像上面那样运行它,那么我得到:

SERVERLESS 类型的网络端点只允许在区域中使用

如果我删除 zone 属性,那么我会得到:

对象缺少必需的属性([“zone”])

我没有找到太多关于如何通过部署管理器创建它们或如何通过 API 创建区域 NEG 的文档。

谁能提供有关如何通过 GCP 部署管理器创建网络端点组的指导或提供参考以说明为什么它不受支持?

【问题讨论】:

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


    【解决方案1】:

    使用错误的 API 我感觉自己像个傻瓜。显然,有一组区域端点。我会删除这个问题,但由于普遍缺乏关于如何做这类事情的文档,我会留下它。

    这是我需要使用的 API: https://cloud.google.com/compute/docs/reference/rest/beta/regionNetworkEndpointGroups/insert

    这就是它在部署管理器中的样子:

    resources:
    - name: network-endpoint-group
      type: deploymentmanager.v2beta.typeProvider
      properties:
        descriptorUrl: https://www.googleapis.com/discovery/v1/apis/compute/v1/rest
        options:
          inputMappings:
          - fieldName: name
            location: PATH
            methodMatch: ^(GET|DELETE|PUT|POST)$
            value: $.resource.properties.name
          - fieldName: Authorization
            location: HEADER
            value: >
              $.concat("Bearer ", $.googleOauth2AccessToken())
    
    - name: neg_create
      action: {{ env["project"] }}/network-endpoint-group:compute.regionNetworkEndpointGroups.insert
      properties:
        name: my-network-endpoint-group
        project: {{ env["project"] }}
        region: us-east1
        appEngine:
          service: my-service
        networkEndpointType: SERVERLESS
      metadata:
        runtimePolicy:
        - CREATE
        dependsOn:
        - network-endpoint-group
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多