注意:这是已弃用的 Deployment Manager API 版本。请改用最新的 API 版本。
表示模板资源,用于定义部署的设置。
如需了解此资源的方法列表,请参阅本页结尾部分。
资源表示法
模板表示部署的完整配置。
{ "name":string , "description":string , "modules": {(key) : { "type":string , "healthCheckModule": { "host":string , "path":string , "port":integer , "checkIntervalSec":integer , "timeoutSec":integer , "unhealthyThreshold":integer , "healthyThreshold":integer , "description":string }, "lbModule": { "targetModules": [string ], "ipProtocol":string , "healthChecks": [string ], "ipAddress":string , "portRange":string , "description":string }, "replicaPoolModule": { "numReplicas":integer , "envVariables": {(key) : { "value":string , "hidden":boolean } }, "resourceView":string , "replicaPoolParams": { "v1beta1": { "machineType":string , "zone":string , "baseInstanceName":string , "serviceAccounts": [ { "email":string , "scopes": [string ] } ], "description":string , "tags": { "fingerPrint":string , "items": [string ] }, "networkInterfaces": [ { "name":string , "network":string , "networkIp":string , "accessConfigs": [ { "name":string , "type":string , "natIp":string } ] } ], "metadata": { "fingerPrint":string , "items": [ { "key":string , "value":string } ] }, "canIpForward":boolean , "autoRestart":boolean , "initAction":string , "onHostMaintenance":string , "disksToCreate": [ { "boot":boolean , "autoDelete":boolean , "attachment": { "deviceName":string , "index":unsigned integer }, "initializeParams": { "sourceImage":string , "diskSizeGb":long } } ], "disksToAttach": [ { "source":string , "attachment": { "deviceName":string , "index":unsigned integer } } ] } }, "healthChecks": [string ] }, "autoscalingModule": { "minNumReplicas":integer , "maxNumReplicas":integer , "signalType":string , "targetUtilization":double , "targetModule":string , "description":string , "coolDownPeriodSec":integer }, "firewallModule": { "description":string , "network":string , "sourceRanges": [string ], "sourceTags": [string ], "targetTags": [string ], "allowed": [ { "IPProtocol":string , "ports": [string ] } ] }, "networkModule": { "description":string , "IPv4Range":string , "gatewayIPv4":string } } }, "actions": {(key) : { "commands": [string ], "timeoutMs":integer } } }
属性名称 | 值 | 说明 | 备注 |
---|---|---|---|
actions |
object |
为在此模板中定义的模块中使用而定义的操作。 | |
actions.(key) |
nested object |
此操作的名称,用于在模块定义中指定操作。 | |
actions.(key).commands[] |
list |
要为此操作依序运行的命令列表。 | |
actions.(key).timeoutMs |
integer |
此操作的运行超时时间(以毫秒为单位)。 | |
description |
string |
此模板的说明。 | |
modules |
object |
此模板的模块列表。 | |
modules.(key) |
nested object |
模块的名称。该名称必须符合以下正则表达式:[a-zA-Z0-9-_]{1,64} |
|
modules.(key).autoscalingModule |
nested object |
定义自动扩缩模块。 | |
modules.(key).autoscalingModule.coolDownPeriodSec |
integer |
在两次连续更改虚拟机数量之间,自动扩缩器应等待的秒数。您应定义一个间隔时间,该间隔时间至少应与虚拟机的初始化时间一样长。默认时间为 5 秒。 | |
modules.(key).autoscalingModule.description |
string |
此自动扩缩模块的说明(可选)。 | |
modules.(key).autoscalingModule.maxNumReplicas |
integer |
您希望自动扩缩到的副本数上限。 | |
modules.(key).autoscalingModule.minNumReplicas |
integer |
您希望自动扩缩到的副本数下限。 | |
modules.(key).autoscalingModule.signalType |
string |
Deployment Manager 应使用的信号来确定是否需要自动扩缩。
可接受的值:
|
|
modules.(key).autoscalingModule.targetModule |
string |
要扩缩的目标副本池模块。 | |
modules.(key).autoscalingModule.targetUtilization |
double |
目标利用率,介于 (0, 1] 之间。自动扩缩程序会努力将所需信号(目前仅限平均 CPU)的值保持在该目标水平附近。例如,如果副本的平均 CPU 利用率显著低于目标利用率,自动扩缩程序会进行缩减,直到达到目标利用率或副本数下限。如果平均 CPU 高于此数值,自动扩缩器将进行扩容,直到达到目标利用率或资源数量上限。 |
|
modules.(key).firewallModule |
nested object |
创建防火墙模块,相当于 Google Compute Engine 防火墙资源。 | |
modules.(key).firewallModule.allowed[] |
quilist |
定义此防火墙的允许端口和协议。 | |
modules.(key).firewallModule.allowed[].IPProtocol |
string |
此防火墙模块允许的 IP 协议。可以是 tcp 、udp 、icmp 或 IP 协议编号。 |
|
modules.(key).firewallModule.allowed[].ports[] |
list |
允许的端口或端口范围的列表(示例输入包括:
["22"],
[?33?, "12345-12349"] 。 |
|
modules.(key).firewallModule.description |
string |
防火墙的说明。 | |
modules.(key).firewallModule.network |
string |
此防火墙应应用到的网络模块。如果未指定,或者指定为 default
,则此防火墙将应用于 default 网络。 |
|
modules.(key).firewallModule.sourceRanges[] |
list |
此规则适用的 IP 地址块,以 CIDR 格式表示。可以设置 sourceRanges 和 sourceTags 中的任一项或两者。如果来源的范围或标记与 sourceRanges 或 sourceTags 匹配,则允许入站连接。 |
|
modules.(key).firewallModule.sourceTags[] |
list |
此规则适用的实例标记的列表。可以设置 sourceRanges 和 sourceTags 中的任一项或两者。如果来源的范围或标记与 sourceRanges 或 sourceTags 匹配,则允许入站连接。 |
|
modules.(key).firewallModule.targetTags[] |
list |
实例标记列表,用于指明位于网络上且可能建立网络连接的实例组,如 allowed[] 中所指定。如果未指定任何 targetTags ,则防火墙规则会应用于指定网络中的所有实例。 |
|
modules.(key).healthCheckModule |
nested object |
定义用于负载均衡的健康检查模块。 | |
modules.(key).healthCheckModule.checkIntervalSec |
integer |
设置执行健康检查的间隔时间(以秒为单位)。默认时间为 5 秒。 | |
modules.(key).healthCheckModule.description |
string |
此健康检查模块的说明。 | |
modules.(key).healthCheckModule.healthyThreshold |
integer |
指定在将运行状况不佳的虚拟机实例标记为运行状况良好之前,成功重试的次数。默认值为 2。 | |
modules.(key).healthCheckModule.host |
string |
此健康检查请求中使用的主机标头的值。例如,如果您要使用域名 www.mydomain.com 从实例中提供网页,则可能需要将主机名设置为 www.mydomain.com,以便系统执行该主机的健康检查。 默认情况下,此字段为空,Google Compute Engine 会自动将健康检查请求中的主机标头设置为与此目标池关联的转发规则相同的外部 IP 地址。例如,如果负载均衡模块的外部 IP 地址为 1.2.3.4 ,并且将流量定向到名为 tp1 的目标模块池,该池包含具有默认主机设置的健康检查对象,则主机标头将设置为 1.2.3.4 。 |
|
modules.(key).healthCheckModule.path |
string |
此健康检查的请求路径。例如 /healthcheck 。默认值为 / |
|
modules.(key).healthCheckModule.port |
integer |
此健康检查请求的 TCP 端口号。默认值为 80 。 |
|
modules.(key).healthCheckModule.timeoutSec |
integer |
如果 Google Compute Engine 在 timeoutSec 之前未收到来自实例的 HTTP 200 响应,则健康检查请求会被视为失败。默认值为 5 秒。 |
|
modules.(key).healthCheckModule.unhealthyThreshold |
integer |
指定在将健康状况良好的虚拟机实例标记为健康状况不佳之前,成功重试的次数。默认值为 2。 | |
modules.(key).lbModule |
nested object |
指定负载均衡模块。 | |
modules.(key).lbModule.description |
string |
此负载均衡模块的说明。 | |
modules.(key).lbModule.healthChecks[] |
list |
要为此负载均衡模块使用的健康检查列表。 | |
modules.(key).lbModule.ipAddress |
string |
此转发规则代表的某个外部静态 IP。这可以是预留的静态 IP 地址,如果留空或未指定,则默认分配临时 IP 地址。多条转发规则可以使用相同的 IP 地址,只要其端口范围和协议不重叠即可。例如, --ip="1.2.3.106" 。 |
|
modules.(key).lbModule.ipProtocol |
string |
此负载均衡模块正在处理的协议。
可接受的值: |
|
modules.(key).lbModule.portRange |
string |
此负载平衡器负责的端口列表。发送到这些端口的指定协议的数据包将转发到相应的目标池。如果将此字段留空,则负载平衡器会为指定协议的所有端口发送流量。可以是单个端口,也可以是端口范围。 | |
modules.(key).lbModule.targetModules[] |
list |
指定用于处理来自此负载平衡器的流量的目标模块。流量模块包含一个或多个虚拟机实例,这些实例将接收发送到此负载平衡器的流量。 | |
modules.(key).networkModule |
nested object |
定义网络模块。 | |
modules.(key).networkModule.IPv4Range |
string |
此网络上合法的内部地址范围。此范围是 CIDR 规范,例如:
192.168.0.0/16. |
|
modules.(key).networkModule.description |
string |
网络的说明。 | |
modules.(key).networkModule.gatewayIPv4 |
string |
用于默认路由到其他网络的可选地址。此值必须在 IPv4Range 指定的范围内,通常是该范围内第一个可用的地址。如果未指定,默认值为 IPv4Range 中的第一个可用地址。 | |
modules.(key).replicaPoolModule |
nested object |
指定一个副本池模块,用于创建 Compute Engine 虚拟机实例。 | |
modules.(key).replicaPoolModule.envVariables |
object |
环境变量列表。 | |
modules.(key).replicaPoolModule.envVariables.(key) |
nested object |
环境变量的名称。该名称必须符合以下正则表达式:[a-zA-Z_]+[a-zA-Z0-9_]+ 。 |
|
modules.(key).replicaPoolModule.envVariables.(key).value |
string |
环境变量的值。 | |
modules.(key).replicaPoolModule.healthChecks[] |
list |
要为此副本池模块使用的健康检查列表。 | |
modules.(key).replicaPoolModule.numReplicas |
integer |
此模块中的副本数量。 | |
modules.(key).replicaPoolModule.replicaPoolParams |
nested object |
ReplicaPoolModule 的信息。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1 |
nested object |
适用于 ReplicaPools v1beta1 的 ReplicaPoolParams 规范。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.autoRestart |
boolean |
这些副本在发生故障时是否应重启。默认值为 true 。 |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.baseInstanceName |
string |
此 ReplicaPool 中实例的基本名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.canIpForward |
boolean |
启用 IP 转发。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.description |
string |
资源的可选文本说明。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToAttach[] |
list |
要附加到池中每个副本的现有 Persistent Disk 资源的列表。每个磁盘都将以只读模式挂接到每个副本。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToAttach[].attachment |
nested object |
可选。磁盘将如何挂接到副本。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToAttach[].attachment.deviceName |
string |
此磁盘的设备名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToAttach[].attachment.index |
unsigned integer |
要分配给此磁盘的从零开始的索引,其中 0 预留给启动磁盘。如果未指定,则由服务器分配。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToAttach[].source |
string |
永久性磁盘资源的完全限定网址。它必须与池位于同一可用区。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[] |
list |
要创建并附加到池中每个副本的磁盘资源的列表。目前,您只能定义一个磁盘,并且该磁盘必须是根永久性磁盘。请注意,副本池会为每个副本创建一个根永久性磁盘。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].attachment |
nested object |
磁盘将如何挂接到副本。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].attachment.deviceName |
string |
此磁盘的设备名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].attachment.index |
unsigned integer |
要分配给此磁盘的从零开始的索引,其中 0 预留给启动磁盘。如果未指定,则由服务器分配。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].autoDelete |
boolean |
如果为 true ,则在删除实例时会删除此磁盘。 |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].boot |
boolean |
如果为 true ,表示这是根级永久性磁盘。 |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].initializeParams |
nested object |
使用这些参数创建新磁盘。磁盘的名称将为 <instance_name>-<five_random_characters> 。 |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].initializeParams.diskSizeGb |
long |
创建的磁盘的大小(以 GB 为单位)。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.disksToCreate[].initializeParams.sourceImage |
string |
要用于创建此磁盘的源映像的名称或完全限定网址。如果您提供源映像的名称,ReplicaPool 模块将在您的项目中查找具有该名称的映像。如果您要指定 Compute Engine 提供的映像,则需要提供包含正确项目的完整网址,例如:https://www.googleapis.com/compute/v1/projects/debian-cloud/global/images/debian-wheezy-7-vYYYYMMDD |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.initAction |
string |
在 ReplicaPoolModule 初始化期间要运行的操作的名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.machineType |
string |
此实例的机器类型。完整网址或资源名称(例如 n1-standard-1 )。 |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.metadata |
nested object |
分配给此实例的元数据键值对。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.metadata.fingerPrint |
string |
元数据的指纹。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.metadata.items[] |
list |
元数据项的列表。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.metadata.items[].key |
string |
元数据键。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.metadata.items[].value |
string |
元数据值。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[] |
list |
实例的网络接口列表。目前,Google Compute Engine 仅支持一个接口。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].accessConfigs[] |
list |
此接口的配置数组。这指定了此接口的配置方式,以便与其他网络服务进行交互 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].accessConfigs[].name |
string |
此访问权限配置的名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].accessConfigs[].natIp |
string |
与此实例相关联的外部 IP 地址。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].accessConfigs[].type |
string |
此访问权限配置文件的类型。(目前,只有 ONE_TO_ONE_NAT 是合法的。) |
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].name |
string |
接口的名称。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].network |
string |
此接口适用的 NetworkModule 的名称。如果未指定或指定为“默认”,则系统将使用“默认”网络。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.networkInterfaces[].networkIp |
string |
要为此网络接口分配给实例的可选 IPv4 内部网络地址。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.onHostMaintenance |
string |
为此副本池中的实例设置维护行为。
可接受的值:
|
|
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.serviceAccounts[] |
list |
要为此实例启用的服务账号的列表。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.serviceAccounts[].email |
string |
服务账号电子邮件地址。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.serviceAccounts[].scopes[] |
list |
要为服务账号获取的 OAuth2 权限范围的列表。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.tags |
nested object |
要应用于 Google Compute Engine 实例以标识资源的标签列表。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.tags.fingerPrint |
string |
代码的“指纹”。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.tags.items[] |
list |
此标记中包含的内容。 | |
modules.(key).replicaPoolModule.replicaPoolParams.v1beta1.zone |
string |
此 ReplicaPool 的可用区。 | |
modules.(key).replicaPoolModule.resourceView |
string |
[仅限输出] 与 关联的资源视图的名称 副本池模块。此字段由服务生成。 |
|
modules.(key).type |
string |
此模块的类型>。
可接受的值为:
|
|
name |
string |
此模板的名称。名称必须符合以下表达式:[a-zA-Z0-9-_]{1,64} |
方法
- 删除
- 删除模板。这会将模板从您的项目中移除。移除模板不会影响通过此模板创建的任何部署。
- get
- 获取有关模板的详细信息。
- insert
- 插入模板。插入模板不会创建任何资源。您仍然需要先使用模板创建部署,然后才能创建实体资源。
- list
- 列出项目中的所有模板。