模板

注意:这是已弃用的 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 应使用的信号来确定是否需要自动扩缩。

可接受的值:
  • AVG_CPU”:使用目标副本池模块的平均 CPU 来确定何时进行扩缩。
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 协议。可以是 tcpudpicmp 或 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 中的任一项或两者。如果来源的范围或标记与 sourceRangessourceTags 匹配,则允许入站连接。
modules.(key).firewallModule.sourceTags[] list 此规则适用的实例标记的列表。可以设置 sourceRanges 和 sourceTags 中的任一项或两者。如果来源的范围或标记与 sourceRangessourceTags 匹配,则允许入站连接。
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).hidden boolean 此变量是隐藏还是可见。
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 为此副本池中的实例设置维护行为。 

可接受的值:
  • MIGRATE”:将实例从维护事件中迁移,而无需重启实例。
  • TERMINATE”:在维护事件之外终止并重启实例。
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 此模块的类型>。

可接受的值为:
  • AUTOSCALING”:创建自动扩缩模块
  • FIREWALL”:创建防火墙模块。
  • HEALTH_CHECK”:创建健康检查模块。
  • LOAD_BALANCING”:创建负载均衡模块。
  • NETWORK”:创建网络模块。
  • REPLICA_POOL”:创建副本池模块。
name string 此模板的名称。名称必须符合以下表达式:[a-zA-Z0-9-_]{1,64}

方法

删除
删除模板。这会将模板从您的项目中移除。移除模板不会影响通过此模板创建的任何部署。
get
获取有关模板的详细信息。
insert
插入模板。插入模板不会创建任何资源。您仍然需要先使用模板创建部署,然后才能创建实体资源。
list
列出项目中的所有模板。