如何通过 GCP 部署管理器创建网络端点组
How to create a Network Endpoint Group via GCP Deployment Manager
我正在尝试使用 Google 云部署管理器为我的 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
如果我运行像上面那样,那么我得到:
Network endpoint of type SERVERLESS is only allowed in regional
如果我删除 zone
属性 然后我得到:
object has missing required properties (["zone"])
我没有找到太多关于如何通过部署管理器创建它们或如何通过 API 创建区域 NEG 的文档。
有人可以提供有关如何通过 GCP 部署管理器创建网络端点组的指导或提供不支持原因的参考吗?
感觉自己用错了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
我正在尝试使用 Google 云部署管理器为我的 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
如果我运行像上面那样,那么我得到:
Network endpoint of type SERVERLESS is only allowed in regional
如果我删除 zone
属性 然后我得到:
object has missing required properties (["zone"])
我没有找到太多关于如何通过部署管理器创建它们或如何通过 API 创建区域 NEG 的文档。
有人可以提供有关如何通过 GCP 部署管理器创建网络端点组的指导或提供不支持原因的参考吗?
感觉自己用错了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