google.cloud.gcp_compute_url_map 模块 – 创建一个 GCP UrlMap

注意

此模块是 google.cloud 集合 (版本 1.4.1) 的一部分。

如果您使用的是 ansible 包,您可能已经安装了这个集合。它不包含在 ansible-core 中。要检查它是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install google.cloud。您需要进一步的要求才能使用此模块,请参阅 要求 了解详细信息。

要在 playbook 中使用它,请指定:google.cloud.gcp_compute_url_map

注意

由于违反了 Ansible 包含要求,google.cloud 集合将从 Ansible 12 中删除。该集合有 未解决的健全性测试失败。有关详细信息,请参阅讨论主题

概要

  • UrlMap 用于根据您为传入 URL 的主机和路径定义的规则将请求路由到后端服务。

要求

执行此模块的主机上需要以下要求。

  • python >= 2.6

  • requests >= 2.18.4

  • google-auth >= 1.3.0

参数

参数

注释

access_token

字符串

如果凭据类型为 accesstoken,则为 OAuth2 访问令牌。

auth_kind

字符串 / 必需

使用的凭据类型。

选择

  • "application"

  • "machineaccount"

  • "serviceaccount"

  • "accesstoken"

default_route_action

字典

当没有 hostRules 匹配时,defaultRouteAction 生效。负载均衡器在将请求转发到选定的后端之前,会执行高级路由操作,如 URL 重写、标头转换等。

如果 defaultRouteAction 指定任何 weightedBackendServices,则不能设置 defaultService。相反,如果设置了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。

只能设置 defaultRouteAction 或 defaultUrlRedirect 中的一个。

cors_policy

字典

用于允许客户端跨域请求的规范。请参阅 [跨域资源共享的 W3C 建议](https://www.w3.org/TR/cors/) 。

allow_credentials

布尔值

在响应预检请求时,将此设置为 true 表示实际请求可以包含用户凭据。

这会转换为 Access-Control-Allow-Credentials 标头。

选择

  • false ← (默认)

  • true

allow_headers

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

allow_methods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

allow_origin_regexes

列表 / 元素=字符串

指定匹配允许的来源的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

allow_origins

列表 / 元素=字符串

指定将允许执行 CORS 请求的来源列表。

如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。默认值为 false,表示 CORS 策略有效。

选择

  • false ← (默认)

  • true

expose_headers

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

max_age

整数

指定预检请求的结果可以缓存多长时间(以秒为单位)。

这会转换为 Access-Control-Max-Age 标头。

fault_injection_policy

字典

用于将故障注入流量以测试客户端对后端服务故障的弹性的规范。

作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一部分请求引入延迟。类似地,负载均衡器可以对一部分请求中止来自客户端的请求。

配置了 faultInjectionPolicy 的客户端将忽略超时和 retryPolicy。

abort

字典

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

http_status

整数

用于中止请求的 HTTP 状态代码。

该值必须介于 200 和 599 之间(含 200 和 599)。

percentage

字符串

将作为故障注入的一部分中止的流量(连接/操作/请求)的百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

delay

字典

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

fixed_delay

字典

指定固定延迟间隔的值。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

percentage

字符串

在故障注入时,引入延迟的流量(连接/操作/请求)百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

request_mirror_policy

字典

指定如何将发送到路由后端的请求镜像到单独的镜像后端服务的策略。

负载均衡器不会等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权头会添加后缀 -shadow。

backend_service

字典 / 必填

要镜像到的 BackendService 资源的完整或部分 URL。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

retry_policy

字典

指定与此路由关联的重试策略。

num_retries

整数

指定允许的重试次数。此数字必须 > 0。如果未指定,则默认为 1。

默认值: 1

per_try_timeout

字典

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

retry_conditions

列表 / 元素=字符串

指定应用此重试规则的一个或多个条件。有效值为:* 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时),则负载均衡器将尝试重试,* 连接失败和拒绝的流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务使用 REFUSED_STREAM 错误代码重置流,负载均衡器将重试。

此重置类型表示可以安全地重试。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

timeout

字典

指定所选路由的超时时间。超时时间从请求被完全处理(即流结束)到响应被完全处理的时间计算得出。超时时间包括所有重试。

如果未指定,将使用与路由关联的所有后端服务中最大的超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

url_rewrite

字典

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

host_rewrite

字符串

在将请求转发到选定的服务之前,请求的主机头将替换为 hostRewrite 的内容。

该值必须介于 1 到 255 个字符之间。

path_prefix_rewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。

该值必须介于 1 到 1024 个字符之间。

weighted_backend_services

列表 / 元素=字典

当发生路由匹配时,将流量发送到的加权后端服务列表。

权重决定了流向其相应后端服务的流量比例。

如果所有流量都需要流向单个后端服务,则必须有一个 weightedBackendService 的权重设置为非 0 数字。

一旦确定了 backendService,并且在将请求转发到后端服务之前,将应用高级路由操作(如 URL 重写和标头转换),具体取决于此 HttpRouteAction 中指定的其他设置。

backend_service

字典

指向默认 BackendService 资源的完整或部分 URL。在将请求转发到 backendService 之前,负载均衡器会应用在此 backendServiceWeight 中指定的任何相关 headerActions。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

header_action

字典

指定需要对所选 backendService 生效的请求和响应标头的更改。

此处指定的 headerAction 在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串

要添加的标头的名称。

header_value

字符串

要添加的标头的值。

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false ← (默认)

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串

要添加的标头的名称。

header_value

字符串

要添加的标头的值。

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false ← (默认)

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。

仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到由 BackendService 的会话亲和性策略确定的同一后端服务。

该值必须介于 0 和 1000 之间。

default_service

字典

当没有主机规则匹配时,流量将定向到的 defaultService 资源的完整或部分 URL。如果另外指定了 defaultRouteAction,则在将请求发送到后端之前,会应用高级路由操作(如 URL 重写等)。但是,如果指定了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。必须仅设置 defaultService、defaultUrlRedirect 或 defaultRouteAction.weightedBackendService 中的一个。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 default_service 字段设置为“{{ name-of-resource }}”

default_url_redirect

字典

当没有指定的主机规则匹配时,请求将重定向到由 defaultUrlRedirect 指定的 URL。如果指定了 defaultUrlRedirect,则不得设置 defaultService 或 defaultRouteAction。

host_redirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

https_redirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这必须仅针对 TargetHttpProxys 中使用的 UrlMaps 设置。不允许对 TargetHttpsProxy 将其设置为 true。默认设置为 false。

选择

  • false ← (默认)

  • true

path_redirect

字符串

在重定向响应中使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

prefix_redirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

prefixRedirect 不能与 pathRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

redirect_response_code

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

一些有效选择包括:“FOUND”、“MOVED_PERMANENTLY_DEFAULT”、“PERMANENT_REDIRECT”、“SEE_OTHER”、“TEMPORARY_REDIRECT”

strip_query

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。默认设置为 false。

选择

  • false ← (默认)

  • true

description

字符串

此资源的可选描述。创建资源时提供此属性。

env_type

字符串

指定您在此模块中运行的 Ansible 环境。

除非您知道自己在做什么,否则不应设置此项。

这只会更改任何 API 请求的用户代理字符串。

header_action

字典

指定需要对所选 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 在 pathMatcher 下指定的 headerAction 之后生效。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

host_rules

列表 / 元素=字典

要针对 URL 使用的 HostRules 列表。

description

字符串

此资源的可选描述。创建资源时提供此属性。

hosts

列表 / 元素=字符串 / 必需

要匹配的主机模式列表。它们必须是有效的主机名,除了 * 将匹配任何字符串 ([a-z0-9-.]*)。在这种情况下,* 必须是第一个字符,并且在模式中必须后跟 - 或 .。

path_matcher

字符串 / 必需

当主机规则与 URL 的主机部分匹配时,用于匹配 URL 路径部分的 PathMatcher 的名称。

name

字符串 / 必需

资源的名称。由客户端在创建资源时提供。名称长度必须为 1-63 个字符,并符合 RFC1035 标准。具体而言,名称长度必须为 1-63 个字符,并与正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?` 匹配,这意味着第一个字符必须是小写字母,并且所有后续字符必须是破折号、小写字母或数字,但最后一个字符不能是破折号。

path_matchers

列表 / 元素=字典

用于匹配 URL 的命名 PathMatchers 列表。

default_route_action

字典

当 pathRules 或 routeRules 都不匹配时,defaultRouteAction 生效。负载均衡器在将请求转发到选定的后端之前,会执行高级路由操作,如 URL 重写、标头转换等。如果 defaultRouteAction 指定了任何 weightedBackendServices,则不得设置 defaultService。

相反,如果设置了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。

只能设置 defaultRouteAction 或 defaultUrlRedirect 中的一个。

cors_policy

字典

用于允许客户端跨域请求的规范。请参阅 [跨域资源共享的 W3C 建议](https://www.w3.org/TR/cors/) 。

allow_credentials

布尔值

在响应预检请求时,将此设置为 true 表示实际请求可以包含用户凭据。

这会转换为 Access-Control-Allow-Credentials 标头。

选择

  • false ← (默认)

  • true

allow_headers

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

allow_methods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

allow_origin_regexes

列表 / 元素=字符串

指定匹配允许的来源的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

allow_origins

列表 / 元素=字符串

指定将允许执行 CORS 请求的来源列表。

如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。默认值为 false,表示 CORS 策略有效。

选择

  • false ← (默认)

  • true

expose_headers

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

max_age

整数

指定预检请求的结果可以缓存多长时间(以秒为单位)。

这会转换为 Access-Control-Max-Age 标头。

fault_injection_policy

字典

用于将故障注入流量以测试客户端对后端服务故障的弹性的规范。

作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一部分请求引入延迟。类似地,负载均衡器可以对一部分请求中止来自客户端的请求。

配置了 faultInjectionPolicy 的客户端将忽略超时和 retryPolicy。

abort

字典

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

http_status

整数

用于中止请求的 HTTP 状态代码。

该值必须介于 200 和 599 之间(含 200 和 599)。

percentage

字符串

将作为故障注入的一部分中止的流量(连接/操作/请求)的百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

delay

字典

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

fixed_delay

字典

指定固定延迟间隔的值。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

percentage

字符串

在故障注入时,引入延迟的流量(连接/操作/请求)百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

request_mirror_policy

字典

指定如何将发送到路由后端的请求镜像到单独的镜像后端服务的策略。

负载均衡器不会等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权头会添加后缀 -shadow。

backend_service

字典 / 必填

要镜像到的 BackendService 资源的完整或部分 URL。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

retry_policy

字典

指定与此路由关联的重试策略。

num_retries

整数

指定允许的重试次数。此数字必须 > 0。如果未指定,则默认为 1。

默认值: 1

per_try_timeout

字典

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

retry_conditions

列表 / 元素=字符串

指定应用此重试规则的一个或多个条件。有效值为:* 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时),则负载均衡器将尝试重试,* 连接失败和拒绝的流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务使用 REFUSED_STREAM 错误代码重置流,负载均衡器将重试。

此重置类型表示可以安全地重试。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

timeout

字典

指定所选路由的超时时间。超时时间从请求被完全处理(即流结束)到响应被完全处理的时间计算得出。超时时间包括所有重试。

如果未指定,将使用与路由关联的所有后端服务中最大的超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

url_rewrite

字典

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

host_rewrite

字符串

在将请求转发到选定的服务之前,请求的主机头将替换为 hostRewrite 的内容。

该值必须介于 1 到 255 个字符之间。

path_prefix_rewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。

该值必须介于 1 到 1024 个字符之间。

weighted_backend_services

列表 / 元素=字典

当发生路由匹配时,将流量发送到的加权后端服务列表。

权重决定了流向其相应后端服务的流量比例。

如果所有流量都需要流向单个后端服务,则必须有一个 weightedBackendService 的权重设置为非 0 数字。

一旦确定了 backendService,并且在将请求转发到后端服务之前,将应用高级路由操作(如 URL 重写和标头转换),具体取决于此 HttpRouteAction 中指定的其他设置。

backend_service

字典

指向默认 BackendService 资源的完整或部分 URL。在将请求转发到 backendService 之前,负载均衡器会应用在此 backendServiceWeight 中指定的任何相关 headerActions。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

header_action

字典

指定需要对所选 backendService 生效的请求和响应标头的更改。

此处指定的 headerAction 在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串

要添加的标头的名称。

header_value

字符串

要添加的标头的值。

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false ← (默认)

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串

要添加的标头的名称。

header_value

字符串

要添加的标头的值。

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false ← (默认)

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。

仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到由 BackendService 的会话亲和性策略确定的同一后端服务。

该值必须介于 0 和 1000 之间。

default_service

字典

BackendService 资源的完整或部分 URL。如果此 PathMatcher 定义的任何 pathRules 或 routeRules 都不匹配,将使用此 URL。例如,以下都是 BackendService 资源的有效 URL:- https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService 如果还指定了 defaultRouteAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。相反,如果 defaultRouteAction 指定了任何 weightedBackendServices,则不得指定 defaultService。

只能设置 defaultService、defaultUrlRedirect 或 defaultRouteAction.weightedBackendService 中的一个。授权需要指定资源 defaultService 上的以下一个或多个 Google IAM 权限:- compute.backendBuckets.use - compute.backendServices.use 。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 default_service 字段设置为“{{ name-of-resource }}”

default_url_redirect

字典

当没有指定的主机规则匹配时,请求将重定向到由 defaultUrlRedirect 指定的 URL。如果指定了 defaultUrlRedirect,则不得设置 defaultService 或 defaultRouteAction。

host_redirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

https_redirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这必须仅针对 TargetHttpProxys 中使用的 UrlMaps 设置。不允许对 TargetHttpsProxy 将其设置为 true。默认设置为 false。

选择

  • false ← (默认)

  • true

path_redirect

字符串

在重定向响应中使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

prefix_redirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

prefixRedirect 不能与 pathRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

redirect_response_code

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

一些有效选择包括:“FOUND”、“MOVED_PERMANENTLY_DEFAULT”、“PERMANENT_REDIRECT”、“SEE_OTHER”、“TEMPORARY_REDIRECT”

strip_query

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。

选择

  • false ← (默认)

  • true

description

字符串

此资源的可选描述。创建资源时提供此属性。

header_action

字典

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 HeaderAction 将在匹配的 HttpRouteRule HeaderAction 之后,并在 UrlMap 中的 HeaderAction 之前应用。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

name

字符串 / 必需

HostRule 引用此 PathMatcher 的名称。

path_rules

列表 / 元素=字典

路径规则列表。当只需要基于简单路径匹配进行路由时,请使用此列表而不是 routeRules。指定路径规则的顺序无关紧要。匹配始终以最长路径优先为基础进行。例如:具有路径 /a/b/c/* 的 pathRule 将在 /a/b/* 之前匹配,而不管这些路径在此列表中出现的顺序如何。在给定的 pathMatcher 中,只能设置 pathRules 或 routeRules 中的一个。

paths

列表 / 元素=字符串 / 必需

要匹配的路径模式列表。每个模式必须以 / 开头,并且只允许在 / 之后的末尾使用 *。馈送到路径匹配器的字符串不包括第一个 ? 或 # 之后的任何文本,并且此处不允许使用这些字符。

route_action

字典

为了响应匹配的路径,负载均衡器会执行高级路由操作,如 URL 重写、标头转换等,然后再将请求转发到选定的后端。如果 routeAction 指定了任何 weightedBackendServices,则不得设置 service。相反,如果设置了 service,则 routeAction 不能包含任何 weightedBackendServices。只能设置 routeAction 或 urlRedirect 中的一个。

cors_policy

字典

用于允许客户端跨域请求的规范。请参阅跨域资源共享的 W3C 建议。

allow_credentials

布尔值

为了响应预检请求,将其设置为 true 表示实际请求可以包含用户凭据。这转换为 Access-Control-Allow-Credentials 标头。默认为 false。

选择

  • false ← (默认)

  • true

allow_headers

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

allow_methods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

allow_origin_regexes

列表 / 元素=字符串

指定与允许的来源匹配的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

allow_origins

列表 / 元素=字符串

指定将允许进行 CORS 请求的来源列表。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

disabled

布尔值 / 必填

如果为 true,则指定禁用 CORS 策略。

选择

  • false

  • true

expose_headers

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

max_age

整数

指定预检请求的结果可以缓存多长时间。这转换为 Access-Control-Max-Age 标头的内容。

fault_injection_policy

字典

为测试客户端对后端服务故障的弹性而引入到流量中的故障注入规范。作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一定百分比的请求引入延迟。类似地,负载均衡器可以为一定百分比的请求中止来自客户端的请求。配置了 fault_injection_policy 的客户端将忽略 timeout 和 retry_policy。

abort

字典

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

http_status

整数 / 必需

用于中止请求的 HTTP 状态代码。该值必须在 200 到 599 之间(含)。

percentage

字符串 / 必需

作为故障注入的一部分将被中止的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

delay

字典

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

fixed_delay

字典 / 必填

指定固定延迟间隔的值。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

percentage

字符串 / 必需

作为故障注入的一部分将引入延迟的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

request_mirror_policy

字典

指定有关如何将预定用于路由的后端的请求镜像到单独的镜像后端服务的策略。负载均衡器不等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权标头将附加 -shadow 后缀。

backend_service

字典 / 必填

要镜像到的 BackendService 资源。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

retry_policy

字典

指定与此路由关联的重试策略。

num_retries

整数

指定允许的重试次数。此数字必须 > 0。

per_try_timeout

字典

指定每次重试尝试的非零超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

retry_conditions

列表 / 元素=字符串

指定此重试规则何时适用的一种或多种条件。有效值为: * 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时、连接失败和拒绝的流),则负载均衡器将尝试重试。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务以 REFUSED_STREAM 错误代码重置流,则负载均衡器将重试。此重置类型表示重试是安全的。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

timeout

字典

指定所选路由的超时时间。超时时间是从请求被完全处理(即流的结束)到响应被完全处理的时间计算的。超时时间包括所有重试。如果未指定,则默认值为 15 秒。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

url_rewrite

字典

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

host_rewrite

字符串

在将请求转发到选定的服务之前,请求的主机标头将替换为 hostRewrite 的内容。该值必须在 1 到 255 个字符之间。

path_prefix_rewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。该值必须在 1 到 1024 个字符之间。

weighted_backend_services

列表 / 元素=字典

当发生路由匹配时,要将流量发送到的加权后端服务列表。权重决定了流向其对应后端服务的流量比例。如果所有流量都需要流向单个后端服务,则必须有一个权重设置为非 0 数字的 weightedBackendService。一旦识别了 backendService,并且在将请求转发到后端服务之前,将根据此 HttpRouteAction 中指定的其他设置应用高级路由操作,如 URL 重写和标头转换。

backend_service

字典 / 必填

默认的 BackendService 资源。在将请求转发到 backendService 之前,负载均衡器会应用作为此 backendServiceWeight 一部分指定的任何相关 headerActions。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

header_action

字典

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 将在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

weight

整数 / 必需

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到同一后端服务,这由 BackendService 的会话亲和性策略确定。

该值必须介于 0 和 1000 之间。

service

字典

如果此规则匹配,则流量将定向到的后端服务资源。如果还指定了 routeAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 service,则 routeAction 不能包含任何 weightedBackendService s。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。只能设置 urlRedirect、service 或 routeAction.weightedBackendService 中的一个。

此字段表示指向 GCP 中 BackendService 资源的链接。可以通过两种方式指定。首先,可以放置一个字典,其中键为“selfLink”,值为资源的 selfLink。或者,可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 service 字段设置为“{{ name-of-resource }}”

url_redirect

字典

当路径模式匹配时,请求将重定向到 urlRedirect 指定的 URL。如果指定了 urlRedirect,则不得设置 service 或 routeAction。

host_redirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

https_redirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。

如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这只能针对 TargetHttpProxy 中使用的 UrlMap 进行设置。不允许为 TargetHttpsProxy 将其设置为 true。默认设置为 false。

选择

  • false ← (默认)

  • true

path_redirect

字符串

重定向响应中将使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。只能单独提供其中一个,或者都不提供。如果都不提供,则重定向将使用原始请求的路径。

该值必须介于 1 到 1024 个字符之间。

prefix_redirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。prefixRedirect 不能与 pathRedirect 一起提供。只能单独提供其中一个,或者都不提供。如果都不提供,则重定向将使用原始请求的路径。该值必须介于 1 到 1024 个字符之间。

redirect_response_code

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

一些有效选择包括:“FOUND”、“MOVED_PERMANENTLY_DEFAULT”、“PERMANENT_REDIRECT”、“SEE_OTHER”、“TEMPORARY_REDIRECT”

strip_query

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。

选择

  • false ← (默认)

  • true

route_rules

列表 / 元素=字典

有序 HTTP 路由规则列表。当需要高级路由匹配和路由操作时,请使用此列表代替 pathRules。指定 routeRules 的顺序很重要:第一个匹配的规则将使其指定的路由操作生效。在给定的 pathMatcher 中,只能设置 pathRules 或 routeRules 中的一个。外部负载均衡器的 UrlMaps 不支持 routeRules。

header_action

字典

指定需要对所选 backendService 生效的请求和响应标头更改。此处指定的 headerAction 在匹配的 pathMatchers[].headerAction 之前应用,并在 pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction 之后应用。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

match_rules

列表 / 元素=字典

确定匹配的规则。

full_path_match

字符串

为了满足 matchRule 条件,请求的路径必须与 fullPathMatch 中指定的值完全匹配,在删除原始 URL 中可能包含的任何查询参数和锚点之后。FullPathMatch 必须介于 1 到 1024 个字符之间。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

header_matches

列表 / 元素=字典

指定标头匹配条件的列表,所有这些条件都必须与请求中相应的标头匹配。

exact_match

字符串

该值应与 exactMatch 的内容完全匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

header_name

字符串 / 必需

要匹配的 HTTP 标头的名称。要与 HTTP 请求的 authority 匹配,请使用标头名称为“:authority”的 headerMatch。要匹配请求的方法,请使用标头名称“:method”。

invert_match

布尔值

如果设置为 false,则如果满足上述匹配条件,则认为 headerMatch 匹配。如果设置为 true,则如果未满足上述匹配条件,则认为 headerMatch 匹配。默认为 false。

选择

  • false ← (默认)

  • true

prefix_match

字符串

标头的值必须以 prefixMatch 的内容开头。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

present_match

布尔值

必须存在具有 headerName 内容的标头。无论请求的标头是否有值,都会发生匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

选择

  • false

  • true

range_match

字典

标头值必须为整数,并且其值必须在 rangeMatch 中指定的范围内。如果标头不包含整数、数字或为空,则匹配失败。例如,对于范围 [-5, 0] - -3 将匹配。- 0 将不匹配。- 0.25 将不匹配。- -3someString 将不匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

range_end

整数 / 必需

范围的结束(不包括)。

range_start

整数 / 必需

范围的开始(包括)。

regex_match

字符串

标头的值必须与 regexMatch 中指定的正则表达式匹配。有关正则表达式语法,请参见:en.cppreference.com/w/cpp/regex/ecmascript。要与 HTTP 请求中指定的端口匹配,请使用 headerName 设置为 PORT 的 headerMatch 和满足 RFC2616 Host 标头的端口指定符的正则表达式。

只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

suffix_match

字符串

标头的值必须以 suffixMatch 的内容结尾。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

ignore_case

布尔值

指定 prefixMatch 和 fullPathMatch 匹配是否区分大小写。

默认为 false。

选择

  • false ← (默认)

  • true

metadata_filters

列表 / 元素=字典

负载均衡器使用的不透明筛选条件,用于将路由配置限制为有限的一组符合 xDS 的客户端。在其向负载均衡器发出的 xDS 请求中,xDS 客户端会提供节点元数据。如果发生匹配,则相关路由配置将提供给这些代理。对于此列表中的每个 metadataFilter,如果其 filterMatchCriteria 设置为 MATCH_ANY,则至少一个 filterLabels 必须与元数据中提供的相应标签匹配。如果其 filterMatchCriteria 设置为 MATCH_ALL,则其所有 filterLabels 都必须与提供的元数据中的相应标签匹配。此处指定的 metadataFilters 可以覆盖 ForwardingRule 中指定的引用此 UrlMap 的 metadataFilters。metadataFilters 仅适用于将其 loadBalancingScheme 设置为 INTERNAL_SELF_MANAGED 的负载均衡器。

filter_labels

list / elements=dictionary / required

必须根据 filterMatchCriteria 与所提供元数据中的标签匹配的标签值对列表。此列表不能为空,最多可以有 64 个条目。

name

字符串 / 必需

元数据标签的名称。名称的最大长度为 1024 个字符,并且至少为 1 个字符长。

value

字符串 / 必需

标签的值必须与指定的值匹配。value 的最大长度为 1024 个字符。

filter_match_criteria

字符串 / 必需

指定 filterLabels 列表中的各个 filterLabel 匹配如何对整体 metadataFilter 匹配做出贡献。支持的值为: - MATCH_ANY:至少一个 filterLabels 必须在提供的元数据中具有匹配的标签。

  • MATCH_ALL:所有 filterLabels 都必须在提供的元数据中具有匹配的标签。

一些有效的选择包括:“MATCH_ALL”、“MATCH_ANY”

prefix_match

字符串

为了满足 matchRule 条件,请求的路径必须以指定的 prefixMatch 开头。prefixMatch 必须以 / 开头。该值必须介于 1 到 1024 个字符之间。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

query_parameter_matches

列表 / 元素=字典

指定查询参数匹配条件的列表,所有这些条件都必须与请求中相应的查询参数匹配。

exact_match

字符串

如果参数的值与 exactMatch 的内容完全匹配,则 queryParameterMatch 匹配。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

name

字符串 / 必需

要匹配的查询参数的名称。查询参数必须存在于请求中,否则请求匹配失败。

present_match

布尔值

指定如果请求包含查询参数,则无论参数是否有值,queryParameterMatch 都匹配。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

选择

  • false

  • true

regex_match

字符串

如果参数的值与 regexMatch 指定的正则表达式匹配,则 queryParameterMatch 匹配。有关正则表达式语法,请参见 en.cppreference.com/w/cpp/regex/ecmascript。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

regex_match

字符串

为了满足 matchRule 条件,在删除原始 URL 中提供的任何查询参数和锚点之后,请求的路径必须满足 regexMatch 中指定的正则表达式。有关正则表达式语法,请参见 en.cppreference.com/w/cpp/regex/ecmascript。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

priority

整数 / 必需

对于给定 pathMatcher 中的 routeRules,priority 确定负载均衡器解释 routeRules 的顺序。RouteRules 按照优先级顺序进行评估,从最低到最高数字。规则的优先级随着其数字的增加而降低 (1, 2, 3, N+1)。应用与请求匹配的第一个规则。

您不能配置两个或多个具有相同优先级的 routeRules。

每个规则的优先级必须设置为介于 0 和 2147483647(含)之间的数字。

优先级数字可以有间隙,这使您可以在将来添加或删除规则,而不会影响其余规则。例如,1、2、3、4、5、9、12、16 是一系列有效的优先级数字,您可以在将来向其中添加编号为 6 到 8、10 到 11 和 13 到 15 的规则,而不会对现有规则产生任何影响。

route_action

字典

为了响应匹配的 matchRule,负载均衡器在将请求转发到所选后端之前,会执行高级路由操作,例如 URL 重写、标头转换等。如果 routeAction 指定任何 weightedBackendServices,则不得设置 service。相反,如果设置了 service,则 routeAction 不能包含任何 weightedBackendServices。只能设置 routeAction 或 urlRedirect 中的一个。

cors_policy

字典

用于允许客户端跨域请求的规范。请参阅跨域资源共享的 W3C 建议。

allow_credentials

布尔值

为了响应预检请求,将其设置为 true 表示实际请求可以包含用户凭据。这转换为 Access-Control-Allow-Credentials 标头。默认为 false。

选择

  • false ← (默认)

  • true

allow_headers

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

allow_methods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

allow_origin_regexes

列表 / 元素=字符串

指定与允许的来源匹配的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

allow_origins

列表 / 元素=字符串

指定将允许进行 CORS 请求的来源列表。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。

指示 CORS 策略有效。默认为 false。

选择

  • false ← (默认)

  • true

expose_headers

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

max_age

整数

指定预检请求的结果可以缓存多长时间。这转换为 Access-Control-Max-Age 标头的内容。

fault_injection_policy

字典

为测试客户端对后端服务故障的弹性而引入到流量中的故障注入规范。作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一定百分比的请求引入延迟。类似地,负载均衡器可以为一定百分比的请求中止来自客户端的请求。配置了 fault_injection_policy 的客户端将忽略 timeout 和 retry_policy。

abort

字典

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

http_status

整数

用于中止请求的 HTTP 状态代码。该值必须在 200 到 599 之间(含)。

percentage

字符串

作为故障注入的一部分将被中止的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

delay

字典

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

fixed_delay

字典

指定固定延迟间隔的值。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

percentage

字符串

作为故障注入的一部分将引入延迟的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

request_mirror_policy

字典

指定有关如何将预定用于路由的后端的请求镜像到单独的镜像后端服务的策略。负载均衡器不等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权标头将附加 -shadow 后缀。

backend_service

字典 / 必填

要镜像到的 BackendService 资源。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

retry_policy

字典

指定与此路由关联的重试策略。

num_retries

整数 / 必需

指定允许的重试次数。此数字必须 > 0。

per_try_timeout

字典

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

retry_conditions

列表 / 元素=字符串

指定此重试规则适用的一个或多个条件。有效值为: * 5xx:如果后端服务响应任何 5xx 响应代码,或者后端服务根本不响应,负载均衡器将尝试重试,例如:断开连接、重置、读取超时、连接失败和拒绝流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务以 REFUSED_STREAM 错误代码重置流,则负载均衡器将重试。此重置类型表示重试是安全的。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

timeout

字典

指定所选路由的超时时间。超时时间是从请求被完全处理(即流的结束)到响应被完全处理的时间计算的。超时时间包括所有重试。如果未指定,则默认值为 15 秒。

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

seconds

字符串 / 必需

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

url_rewrite

字典

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

host_rewrite

字符串

在将请求转发到选定的服务之前,请求的主机标头将替换为 hostRewrite 的内容。该值必须在 1 到 255 个字符之间。

path_prefix_rewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。该值必须在 1 到 1024 个字符之间。

weighted_backend_services

列表 / 元素=字典

当发生路由匹配时,要将流量发送到的加权后端服务列表。权重决定了流向其对应后端服务的流量比例。如果所有流量都需要流向单个后端服务,则必须有一个权重设置为非 0 数字的 weightedBackendService。一旦识别了 backendService,并且在将请求转发到后端服务之前,将根据此 HttpRouteAction 中指定的其他设置应用高级路由操作,如 URL 重写和标头转换。

backend_service

字典 / 必填

默认的 BackendService 资源。在将请求转发到 backendService 之前,负载均衡器会应用作为此 backendServiceWeight 一部分指定的任何相关 headerActions。

此字段表示指向 GCP 中 BackendService 资源的链接。它可以通过两种方式指定。首先,您可以放置一个带有键“selfLink”和您的资源 selfLink 值的字典。或者,您可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 backend_service 字段设置为“{{ name-of-resource }}”

header_action

字典

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 将在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

request_headers_to_add

列表 / 元素=字典

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

request_headers_to_remove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

response_headers_to_add

列表 / 元素=字典

在将响应发送回客户端之前,要添加到响应的标头。

header_name

字符串 / 必需

标头的名称。

header_value

字符串 / 必需

要添加的标头的值。

replace

布尔值 / 必填

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

选择

  • false

  • true

response_headers_to_remove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

weight

整数 / 必需

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到同一后端服务,这由 BackendService 的会话亲和性策略确定。

该值必须介于 0 和 1000 之间。

service

字典

如果此规则匹配,则流量将定向到的后端服务资源。如果还指定了 routeAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 service,则 routeAction 不能包含任何 weightedBackendService s。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。只能设置 urlRedirect、service 或 routeAction.weightedBackendService 中的一个。

此字段表示指向 GCP 中 BackendService 资源的链接。可以通过两种方式指定。首先,可以放置一个字典,其中键为“selfLink”,值为资源的 selfLink。或者,可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 service 字段设置为“{{ name-of-resource }}”

url_redirect

字典

当匹配此规则时,请求将重定向到 urlRedirect 指定的 URL。如果指定了 urlRedirect,则不得设置 service 或 routeAction。

host_redirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

https_redirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持不变。这只能为 TargetHttpProxys 中使用的 UrlMaps 设置。

不允许为 TargetHttpsProxy 将其设置为 true。默认为 false。

选择

  • false ← (默认)

  • true

path_redirect

字符串

重定向响应中将使用的路径,而不是请求中提供的路径。只能指定 pathRedirect 或 prefixRedirect 中的一个。该值必须介于 1 到 1024 个字符之间。

prefix_redirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

redirect_response_code

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

一些有效选择包括:“FOUND”、“MOVED_PERMANENTLY_DEFAULT”、“PERMANENT_REDIRECT”、“SEE_OTHER”、“TEMPORARY_REDIRECT”

strip_query

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。默认为 false。

选择

  • false ← (默认)

  • true

project

字符串

要使用的 Google Cloud Platform 项目。

scopes

列表 / 元素=字符串

要使用的作用域数组

service_account_contents

jsonarg

服务帐户 JSON 文件的内容,以字典或表示它的 JSON 字符串形式。

service_account_email

字符串

如果选择了 machineaccount 并且用户不希望使用默认电子邮件,则可选的服务帐户电子邮件地址。

service_account_file

path

如果选择 serviceaccount 作为类型,则服务帐户 JSON 文件的路径。

state

字符串

给定对象是否应存在于 GCP 中

选择

  • "present" ← (默认)

  • "absent"

tests

列表 / 元素=字典

预期的 URL 映射测试列表。仅当所有测试用例都通过时,更新此 UrlMap 的请求才会成功。您最多可以为每个 UrlMap 指定 100 个测试。

description

字符串

此测试用例的描述。

host

字符串 / 必需

URL 的主机部分。

path

字符串 / 必需

URL 的路径部分。

service

字典 / 必填

给定 URL 应映射到的预期 BackendService 资源。

此字段表示指向 GCP 中 BackendService 资源的链接。可以通过两种方式指定。首先,可以放置一个字典,其中键为“selfLink”,值为资源的 selfLink。或者,可以将 `register: name-of-resource` 添加到 gcp_compute_backend_service 任务,然后将此 service 字段设置为“{{ name-of-resource }}”

备注

注意

  • API 参考:https://cloud.google.com/compute/docs/reference/rest/v1/urlMaps

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_FILE 环境变量设置 service_account_file。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_CONTENTS 环境变量设置 service_account_contents。

  • 对于身份验证,您可以使用 GCP_SERVICE_ACCOUNT_EMAIL 环境变量设置 service_account_email。

  • 对于身份验证,您可以使用 GCP_ACCESS_TOKEN 环境变量设置 access_token。

  • 对于身份验证,您可以使用 GCP_AUTH_KIND 环境变量设置 auth_kind。

  • 对于身份验证,您可以使用 GCP_SCOPES 环境变量设置 scopes。

  • 仅当未设置 playbook 值时,才会使用环境变量值。

  • service_account_emailservice_account_file 选项是互斥的。

示例

- name: create a instance group
  google.cloud.gcp_compute_instance_group:
    name: instancegroup-urlmap
    zone: us-central1-a
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: instancegroup

- name: create a HTTP health check
  google.cloud.gcp_compute_http_health_check:
    name: httphealthcheck-urlmap
    healthy_threshold: 10
    port: 8080
    timeout_sec: 2
    unhealthy_threshold: 5
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: healthcheck

- name: create a backend service
  google.cloud.gcp_compute_backend_service:
    name: backendservice-urlmap
    backends:
    - group: "{{ instancegroup.selfLink }}"
    health_checks:
    - "{{ healthcheck.selfLink }}"
    enable_cdn: 'true'
    project: "{{ gcp_project }}"
    auth_kind: "{{ gcp_cred_kind }}"
    service_account_file: "{{ gcp_cred_file }}"
    state: present
  register: backendservice

- name: create a URL map
  google.cloud.gcp_compute_url_map:
    name: test_object
    default_service: "{{ backendservice }}"
    project: test_project
    auth_kind: serviceaccount
    service_account_file: "/tmp/auth.pem"
    state: present

返回值

常见的返回值记录在此处,以下是此模块特有的字段

描述

creationTimestamp

字符串

以 RFC3339 文本格式表示的创建时间戳。

返回: 成功

defaultRouteAction

复杂类型

当没有 hostRules 匹配时,defaultRouteAction 生效。负载均衡器在将请求转发到选定的后端之前,会执行高级路由操作,如 URL 重写、标头转换等。

如果 defaultRouteAction 指定任何 weightedBackendServices,则不能设置 defaultService。相反,如果设置了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。

只能设置 defaultRouteAction 或 defaultUrlRedirect 中的一个。

返回: 成功

corsPolicy

复杂类型

用于允许客户端跨域请求的规范。请参阅 [跨域资源共享的 W3C 建议](https://www.w3.org/TR/cors/) 。

返回: 成功

allowCredentials

布尔值

在响应预检请求时,将此设置为 true 表示实际请求可以包含用户凭据。

这会转换为 Access-Control-Allow-Credentials 标头。

返回: 成功

allowHeaders

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

返回: 成功

allowMethods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

返回: 成功

allowOriginRegexes

列表 / 元素=字符串

指定匹配允许的来源的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

返回: 成功

allowOrigins

列表 / 元素=字符串

指定将允许执行 CORS 请求的来源列表。

如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

返回: 成功

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。默认值为 false,表示 CORS 策略有效。

返回: 成功

exposeHeaders

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

返回: 成功

maxAge

整数

指定预检请求的结果可以缓存多长时间(以秒为单位)。

这会转换为 Access-Control-Max-Age 标头。

返回: 成功

faultInjectionPolicy

复杂类型

用于将故障注入流量以测试客户端对后端服务故障的弹性的规范。

作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一部分请求引入延迟。类似地,负载均衡器可以对一部分请求中止来自客户端的请求。

配置了 faultInjectionPolicy 的客户端将忽略超时和 retryPolicy。

返回: 成功

abort

复杂类型

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

返回: 成功

httpStatus

整数

用于中止请求的 HTTP 状态代码。

该值必须介于 200 和 599 之间(含 200 和 599)。

返回: 成功

percentage

字符串

将作为故障注入的一部分中止的流量(连接/操作/请求)的百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

返回: 成功

delay

复杂类型

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

返回: 成功

fixedDelay

复杂类型

指定固定延迟间隔的值。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

percentage

字符串

在故障注入时,引入延迟的流量(连接/操作/请求)百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

返回: 成功

requestMirrorPolicy

复杂类型

指定如何将发送到路由后端的请求镜像到单独的镜像后端服务的策略。

负载均衡器不会等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权头会添加后缀 -shadow。

返回: 成功

backendService

字典

要镜像到的 BackendService 资源的完整或部分 URL。

返回: 成功

retryPolicy

复杂类型

指定与此路由关联的重试策略。

返回: 成功

numRetries

整数

指定允许的重试次数。此数字必须 > 0。如果未指定,则默认为 1。

返回: 成功

perTryTimeout

复杂类型

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

retryConditions

列表 / 元素=字符串

指定应用此重试规则的一个或多个条件。有效值为:* 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时),则负载均衡器将尝试重试,* 连接失败和拒绝的流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务使用 REFUSED_STREAM 错误代码重置流,负载均衡器将重试。

此重置类型表示可以安全地重试。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

返回: 成功

timeout

复杂类型

指定所选路由的超时时间。超时时间从请求被完全处理(即流结束)到响应被完全处理的时间计算得出。超时时间包括所有重试。

如果未指定,将使用与路由关联的所有后端服务中最大的超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

urlRewrite

复杂类型

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

返回: 成功

hostRewrite

字符串

在将请求转发到选定的服务之前,请求的主机头将替换为 hostRewrite 的内容。

该值必须介于 1 到 255 个字符之间。

返回: 成功

pathPrefixRewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。

该值必须介于 1 到 1024 个字符之间。

返回: 成功

weightedBackendServices

复杂类型

当发生路由匹配时,将流量发送到的加权后端服务列表。

权重决定了流向其相应后端服务的流量比例。

如果所有流量都需要流向单个后端服务,则必须有一个 weightedBackendService 的权重设置为非 0 数字。

一旦确定了 backendService,并且在将请求转发到后端服务之前,将应用高级路由操作(如 URL 重写和标头转换),具体取决于此 HttpRouteAction 中指定的其他设置。

返回: 成功

backendService

字典

指向默认 BackendService 资源的完整或部分 URL。在将请求转发到 backendService 之前,负载均衡器会应用在此 backendServiceWeight 中指定的任何相关 headerActions。

返回: 成功

headerAction

复杂类型

指定需要对所选 backendService 生效的请求和响应标头的更改。

此处指定的 headerAction 在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

要添加的标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

要添加的标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。

仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到由 BackendService 的会话亲和性策略确定的同一后端服务。

该值必须介于 0 和 1000 之间。

返回: 成功

defaultService

字典

当没有主机规则匹配时,流量将定向到的 defaultService 资源的完整或部分 URL。如果另外指定了 defaultRouteAction,则在将请求发送到后端之前,会应用高级路由操作(如 URL 重写等)。但是,如果指定了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。必须仅设置 defaultService、defaultUrlRedirect 或 defaultRouteAction.weightedBackendService 中的一个。

返回: 成功

defaultUrlRedirect

复杂类型

当没有指定的主机规则匹配时,请求将重定向到由 defaultUrlRedirect 指定的 URL。如果指定了 defaultUrlRedirect,则不得设置 defaultService 或 defaultRouteAction。

返回: 成功

hostRedirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

返回: 成功

httpsRedirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这必须仅针对 TargetHttpProxys 中使用的 UrlMaps 设置。不允许对 TargetHttpsProxy 将其设置为 true。默认设置为 false。

返回: 成功

pathRedirect

字符串

在重定向响应中使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

返回: 成功

prefixRedirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

prefixRedirect 不能与 pathRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

返回: 成功

redirectResponseCode

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

返回: 成功

stripQuery

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。默认设置为 false。

返回: 成功

description

字符串

此资源的可选描述。创建资源时提供此属性。

返回: 成功

fingerprint

字符串

此资源的指纹。存储在此对象中的内容的哈希值。此字段用于乐观锁定。

返回: 成功

headerAction

复杂类型

指定需要对所选 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 在 pathMatcher 下指定的 headerAction 之后生效。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

hostRules

复杂类型

要针对 URL 使用的 HostRules 列表。

返回: 成功

description

字符串

此资源的可选描述。创建资源时提供此属性。

返回: 成功

hosts

列表 / 元素=字符串

要匹配的主机模式列表。它们必须是有效的主机名,除了 * 将匹配任何字符串 ([a-z0-9-.]*)。在这种情况下,* 必须是第一个字符,并且在模式中必须后跟 - 或 .。

返回: 成功

pathMatcher

字符串

当主机规则与 URL 的主机部分匹配时,用于匹配 URL 路径部分的 PathMatcher 的名称。

返回: 成功

id

整数

资源的唯一标识符。

返回: 成功

name

字符串

资源的名称。由客户端在创建资源时提供。名称长度必须为 1-63 个字符,并符合 RFC1035 标准。具体而言,名称长度必须为 1-63 个字符,并与正则表达式 `[a-z]([-a-z0-9]*[a-z0-9])?` 匹配,这意味着第一个字符必须是小写字母,并且所有后续字符必须是破折号、小写字母或数字,但最后一个字符不能是破折号。

返回: 成功

pathMatchers

复杂类型

用于匹配 URL 的命名 PathMatchers 列表。

返回: 成功

defaultRouteAction

复杂类型

当 pathRules 或 routeRules 都不匹配时,defaultRouteAction 生效。负载均衡器在将请求转发到选定的后端之前,会执行高级路由操作,如 URL 重写、标头转换等。如果 defaultRouteAction 指定了任何 weightedBackendServices,则不得设置 defaultService。

相反,如果设置了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。

只能设置 defaultRouteAction 或 defaultUrlRedirect 中的一个。

返回: 成功

corsPolicy

复杂类型

用于允许客户端跨域请求的规范。请参阅 [跨域资源共享的 W3C 建议](https://www.w3.org/TR/cors/) 。

返回: 成功

allowCredentials

布尔值

在响应预检请求时,将此设置为 true 表示实际请求可以包含用户凭据。

这会转换为 Access-Control-Allow-Credentials 标头。

返回: 成功

allowHeaders

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

返回: 成功

allowMethods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

返回: 成功

allowOriginRegexes

列表 / 元素=字符串

指定匹配允许的来源的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

返回: 成功

allowOrigins

列表 / 元素=字符串

指定将允许执行 CORS 请求的来源列表。

如果来源匹配 allowOrigins 中的项目或 allowOriginRegexes 中的项目,则允许该来源。

返回: 成功

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。默认值为 false,表示 CORS 策略有效。

返回: 成功

exposeHeaders

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

返回: 成功

maxAge

整数

指定预检请求的结果可以缓存多长时间(以秒为单位)。

这会转换为 Access-Control-Max-Age 标头。

返回: 成功

faultInjectionPolicy

复杂类型

用于将故障注入流量以测试客户端对后端服务故障的弹性的规范。

作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一部分请求引入延迟。类似地,负载均衡器可以对一部分请求中止来自客户端的请求。

配置了 faultInjectionPolicy 的客户端将忽略超时和 retryPolicy。

返回: 成功

abort

复杂类型

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

返回: 成功

httpStatus

整数

用于中止请求的 HTTP 状态代码。

该值必须介于 200 和 599 之间(含 200 和 599)。

返回: 成功

percentage

字符串

将作为故障注入的一部分中止的流量(连接/操作/请求)的百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

返回: 成功

delay

复杂类型

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

返回: 成功

fixedDelay

复杂类型

指定固定延迟间隔的值。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

percentage

字符串

在故障注入时,引入延迟的流量(连接/操作/请求)百分比。

该值必须介于 0.0 和 100.0 之间(含 0.0 和 100.0)。

返回: 成功

requestMirrorPolicy

复杂类型

指定如何将发送到路由后端的请求镜像到单独的镜像后端服务的策略。

负载均衡器不会等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权头会添加后缀 -shadow。

返回: 成功

backendService

字典

要镜像到的 BackendService 资源的完整或部分 URL。

返回: 成功

retryPolicy

复杂类型

指定与此路由关联的重试策略。

返回: 成功

numRetries

整数

指定允许的重试次数。此数字必须 > 0。如果未指定,则默认为 1。

返回: 成功

perTryTimeout

复杂类型

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

retryConditions

列表 / 元素=字符串

指定应用此重试规则的一个或多个条件。有效值为:* 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时),则负载均衡器将尝试重试,* 连接失败和拒绝的流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务使用 REFUSED_STREAM 错误代码重置流,负载均衡器将重试。

此重置类型表示可以安全地重试。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

返回: 成功

timeout

复杂类型

指定所选路由的超时时间。超时时间从请求被完全处理(即流结束)到响应被完全处理的时间计算得出。超时时间包括所有重试。

如果未指定,将使用与路由关联的所有后端服务中最大的超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示,是秒的一小部分。小于一秒的持续时间表示为 0 秒字段和正的 nanos 字段。必须介于 0 到 999,999,999 之间(含 0 和 999,999,999)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

注意:这些边界是通过以下计算得出的:60 秒/分钟 * 60 分钟/小时 * 24 小时/天 * 365.25 天/年 * 10000 年。

返回: 成功

urlRewrite

复杂类型

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

返回: 成功

hostRewrite

字符串

在将请求转发到选定的服务之前,请求的主机头将替换为 hostRewrite 的内容。

该值必须介于 1 到 255 个字符之间。

返回: 成功

pathPrefixRewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。

该值必须介于 1 到 1024 个字符之间。

返回: 成功

weightedBackendServices

复杂类型

当发生路由匹配时,将流量发送到的加权后端服务列表。

权重决定了流向其相应后端服务的流量比例。

如果所有流量都需要流向单个后端服务,则必须有一个 weightedBackendService 的权重设置为非 0 数字。

一旦确定了 backendService,并且在将请求转发到后端服务之前,将应用高级路由操作(如 URL 重写和标头转换),具体取决于此 HttpRouteAction 中指定的其他设置。

返回: 成功

backendService

字典

指向默认 BackendService 资源的完整或部分 URL。在将请求转发到 backendService 之前,负载均衡器会应用在此 backendServiceWeight 中指定的任何相关 headerActions。

返回: 成功

headerAction

复杂类型

指定需要对所选 backendService 生效的请求和响应标头的更改。

此处指定的 headerAction 在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

要添加的标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

要添加的标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。

如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。

仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到由 BackendService 的会话亲和性策略确定的同一后端服务。

该值必须介于 0 和 1000 之间。

返回: 成功

defaultService

字典

BackendService 资源的完整或部分 URL。如果此 PathMatcher 定义的任何 pathRules 或 routeRules 都不匹配,将使用此 URL。例如,以下都是 BackendService 资源的有效 URL:- https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService - compute/v1/projects/project/global/backendServices/backendService - global/backendServices/backendService 如果还指定了 defaultRouteAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 defaultService,则 defaultRouteAction 不能包含任何 weightedBackendServices。相反,如果 defaultRouteAction 指定了任何 weightedBackendServices,则不得指定 defaultService。

只能设置 defaultService、defaultUrlRedirect 或 defaultRouteAction.weightedBackendService 中的一个。授权需要指定资源 defaultService 上的以下一个或多个 Google IAM 权限:- compute.backendBuckets.use - compute.backendServices.use 。

返回: 成功

defaultUrlRedirect

复杂类型

当没有指定的主机规则匹配时,请求将重定向到由 defaultUrlRedirect 指定的 URL。如果指定了 defaultUrlRedirect,则不得设置 defaultService 或 defaultRouteAction。

返回: 成功

hostRedirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

返回: 成功

httpsRedirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这必须仅针对 TargetHttpProxys 中使用的 UrlMaps 设置。不允许对 TargetHttpsProxy 将其设置为 true。默认设置为 false。

返回: 成功

pathRedirect

字符串

在重定向响应中使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

返回: 成功

prefixRedirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

prefixRedirect 不能与 pathRedirect 一起提供。单独提供一个或都不提供。如果都不提供,则原始请求的路径将用于重定向。该值必须介于 1 到 1024 个字符之间。

返回: 成功

redirectResponseCode

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

返回: 成功

stripQuery

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。

返回: 成功

description

字符串

此资源的可选描述。创建资源时提供此属性。

返回: 成功

headerAction

复杂类型

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 HeaderAction 将在匹配的 HttpRouteRule HeaderAction 之后,并在 UrlMap 中的 HeaderAction 之前应用。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

name

字符串

HostRule 引用此 PathMatcher 的名称。

返回: 成功

pathRules

复杂类型

路径规则列表。当只需要基于简单路径匹配进行路由时,请使用此列表而不是 routeRules。指定路径规则的顺序无关紧要。匹配始终以最长路径优先为基础进行。例如:具有路径 /a/b/c/* 的 pathRule 将在 /a/b/* 之前匹配,而不管这些路径在此列表中出现的顺序如何。在给定的 pathMatcher 中,只能设置 pathRules 或 routeRules 中的一个。

返回: 成功

paths

列表 / 元素=字符串

要匹配的路径模式列表。每个模式必须以 / 开头,并且只允许在 / 之后的末尾使用 *。馈送到路径匹配器的字符串不包括第一个 ? 或 # 之后的任何文本,并且此处不允许使用这些字符。

返回: 成功

routeAction

复杂类型

为了响应匹配的路径,负载均衡器会执行高级路由操作,如 URL 重写、标头转换等,然后再将请求转发到选定的后端。如果 routeAction 指定了任何 weightedBackendServices,则不得设置 service。相反,如果设置了 service,则 routeAction 不能包含任何 weightedBackendServices。只能设置 routeAction 或 urlRedirect 中的一个。

返回: 成功

corsPolicy

复杂类型

用于允许客户端跨域请求的规范。请参阅跨域资源共享的 W3C 建议。

返回: 成功

allowCredentials

布尔值

为了响应预检请求,将其设置为 true 表示实际请求可以包含用户凭据。这转换为 Access-Control-Allow-Credentials 标头。默认为 false。

返回: 成功

allowHeaders

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

返回: 成功

allowMethods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

返回: 成功

allowOriginRegexes

列表 / 元素=字符串

指定与允许的来源匹配的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

返回: 成功

allowOrigins

列表 / 元素=字符串

指定将允许进行 CORS 请求的来源列表。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

返回: 成功

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。

返回: 成功

exposeHeaders

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

返回: 成功

maxAge

整数

指定预检请求的结果可以缓存多长时间。这转换为 Access-Control-Max-Age 标头的内容。

返回: 成功

faultInjectionPolicy

复杂类型

为测试客户端对后端服务故障的弹性而引入到流量中的故障注入规范。作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一定百分比的请求引入延迟。类似地,负载均衡器可以为一定百分比的请求中止来自客户端的请求。配置了 fault_injection_policy 的客户端将忽略 timeout 和 retry_policy。

返回: 成功

abort

复杂类型

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

返回: 成功

httpStatus

整数

用于中止请求的 HTTP 状态代码。该值必须在 200 到 599 之间(含)。

返回: 成功

percentage

字符串

作为故障注入的一部分将被中止的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

返回: 成功

delay

复杂类型

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

返回: 成功

fixedDelay

复杂类型

指定固定延迟间隔的值。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

percentage

字符串

作为故障注入的一部分将引入延迟的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

返回: 成功

requestMirrorPolicy

复杂类型

指定有关如何将预定用于路由的后端的请求镜像到单独的镜像后端服务的策略。负载均衡器不等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权标头将附加 -shadow 后缀。

返回: 成功

backendService

字典

要镜像到的 BackendService 资源。

返回: 成功

retryPolicy

复杂类型

指定与此路由关联的重试策略。

返回: 成功

numRetries

整数

指定允许的重试次数。此数字必须 > 0。

返回: 成功

perTryTimeout

复杂类型

指定每次重试尝试的非零超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

retryConditions

列表 / 元素=字符串

指定此重试规则何时适用的一种或多种条件。有效值为: * 5xx:如果后端服务返回任何 5xx 响应代码,或者后端服务根本不响应(例如:断开连接、重置、读取超时、连接失败和拒绝的流),则负载均衡器将尝试重试。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务以 REFUSED_STREAM 错误代码重置流,则负载均衡器将重试。此重置类型表示重试是安全的。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

返回: 成功

timeout

复杂类型

指定所选路由的超时时间。超时时间是从请求被完全处理(即流的结束)到响应被完全处理的时间计算的。超时时间包括所有重试。如果未指定,则默认值为 15 秒。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

urlRewrite

复杂类型

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

返回: 成功

hostRewrite

字符串

在将请求转发到选定的服务之前,请求的主机标头将替换为 hostRewrite 的内容。该值必须在 1 到 255 个字符之间。

返回: 成功

pathPrefixRewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。该值必须在 1 到 1024 个字符之间。

返回: 成功

weightedBackendServices

复杂类型

当发生路由匹配时,要将流量发送到的加权后端服务列表。权重决定了流向其对应后端服务的流量比例。如果所有流量都需要流向单个后端服务,则必须有一个权重设置为非 0 数字的 weightedBackendService。一旦识别了 backendService,并且在将请求转发到后端服务之前,将根据此 HttpRouteAction 中指定的其他设置应用高级路由操作,如 URL 重写和标头转换。

返回: 成功

backendService

字典

默认的 BackendService 资源。在将请求转发到 backendService 之前,负载均衡器会应用作为此 backendServiceWeight 一部分指定的任何相关 headerActions。

返回: 成功

headerAction

复杂类型

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 将在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到同一后端服务,这由 BackendService 的会话亲和性策略确定。

该值必须介于 0 和 1000 之间。

返回: 成功

service

字典

如果此规则匹配,则流量将定向到的后端服务资源。如果还指定了 routeAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 service,则 routeAction 不能包含任何 weightedBackendService s。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。只能设置 urlRedirect、service 或 routeAction.weightedBackendService 中的一个。

返回: 成功

urlRedirect

复杂类型

当路径模式匹配时,请求将重定向到 urlRedirect 指定的 URL。如果指定了 urlRedirect,则不得设置 service 或 routeAction。

返回: 成功

hostRedirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

返回: 成功

httpsRedirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。

如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持相同。这只能针对 TargetHttpProxy 中使用的 UrlMap 进行设置。不允许为 TargetHttpsProxy 将其设置为 true。默认设置为 false。

返回: 成功

pathRedirect

字符串

重定向响应中将使用的路径,而不是请求中提供的路径。pathRedirect 不能与 prefixRedirect 一起提供。只能单独提供其中一个,或者都不提供。如果都不提供,则重定向将使用原始请求的路径。

该值必须介于 1 到 1024 个字符之间。

返回: 成功

prefixRedirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。prefixRedirect 不能与 pathRedirect 一起提供。只能单独提供其中一个,或者都不提供。如果都不提供,则重定向将使用原始请求的路径。该值必须介于 1 到 1024 个字符之间。

返回: 成功

redirectResponseCode

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

返回: 成功

stripQuery

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。

返回: 成功

routeRules

复杂类型

有序 HTTP 路由规则列表。当需要高级路由匹配和路由操作时,请使用此列表代替 pathRules。指定 routeRules 的顺序很重要:第一个匹配的规则将使其指定的路由操作生效。在给定的 pathMatcher 中,只能设置 pathRules 或 routeRules 中的一个。外部负载均衡器的 UrlMaps 不支持 routeRules。

返回: 成功

headerAction

复杂类型

指定需要对所选 backendService 生效的请求和响应标头更改。此处指定的 headerAction 在匹配的 pathMatchers[].headerAction 之前应用,并在 pathMatchers[].routeRules[].routeAction.weightedBackendService.backendServiceWeightAction[].headerAction 之后应用。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

matchRules

复杂类型

确定匹配的规则。

返回: 成功

fullPathMatch

字符串

为了满足 matchRule 条件,请求的路径必须与 fullPathMatch 中指定的值完全匹配,在删除原始 URL 中可能包含的任何查询参数和锚点之后。FullPathMatch 必须介于 1 到 1024 个字符之间。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

返回: 成功

headerMatches

复杂类型

指定标头匹配条件的列表,所有这些条件都必须与请求中相应的标头匹配。

返回: 成功

exactMatch

字符串

该值应与 exactMatch 的内容完全匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

headerName

字符串

要匹配的 HTTP 标头的名称。要与 HTTP 请求的 authority 匹配,请使用标头名称为“:authority”的 headerMatch。要匹配请求的方法,请使用标头名称“:method”。

返回: 成功

invertMatch

布尔值

如果设置为 false,则如果满足上述匹配条件,则认为 headerMatch 匹配。如果设置为 true,则如果未满足上述匹配条件,则认为 headerMatch 匹配。默认为 false。

返回: 成功

prefixMatch

字符串

标头的值必须以 prefixMatch 的内容开头。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

presentMatch

布尔值

必须存在具有 headerName 内容的标头。无论请求的标头是否有值,都会发生匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

rangeMatch

复杂类型

标头值必须为整数,并且其值必须在 rangeMatch 中指定的范围内。如果标头不包含整数、数字或为空,则匹配失败。例如,对于范围 [-5, 0] - -3 将匹配。- 0 将不匹配。- 0.25 将不匹配。- -3someString 将不匹配。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

rangeEnd

整数

范围的结束(不包括)。

返回: 成功

rangeStart

整数

范围的开始(包括)。

返回: 成功

regexMatch

字符串

标头的值必须与 regexMatch 中指定的正则表达式匹配。有关正则表达式语法,请参见:en.cppreference.com/w/cpp/regex/ecmascript。要与 HTTP 请求中指定的端口匹配,请使用 headerName 设置为 PORT 的 headerMatch 和满足 RFC2616 Host 标头的端口指定符的正则表达式。

只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

suffixMatch

字符串

标头的值必须以 suffixMatch 的内容结尾。只能设置 exactMatch、prefixMatch、suffixMatch、regexMatch、presentMatch 或 rangeMatch 中的一个。

返回: 成功

ignoreCase

布尔值

指定 prefixMatch 和 fullPathMatch 匹配是否区分大小写。

默认为 false。

返回: 成功

metadataFilters

复杂类型

负载均衡器使用的不透明筛选条件,用于将路由配置限制为有限的一组符合 xDS 的客户端。在其向负载均衡器发出的 xDS 请求中,xDS 客户端会提供节点元数据。如果发生匹配,则相关路由配置将提供给这些代理。对于此列表中的每个 metadataFilter,如果其 filterMatchCriteria 设置为 MATCH_ANY,则至少一个 filterLabels 必须与元数据中提供的相应标签匹配。如果其 filterMatchCriteria 设置为 MATCH_ALL,则其所有 filterLabels 都必须与提供的元数据中的相应标签匹配。此处指定的 metadataFilters 可以覆盖 ForwardingRule 中指定的引用此 UrlMap 的 metadataFilters。metadataFilters 仅适用于将其 loadBalancingScheme 设置为 INTERNAL_SELF_MANAGED 的负载均衡器。

返回: 成功

filterLabels

复杂类型

必须根据 filterMatchCriteria 与所提供元数据中的标签匹配的标签值对列表。此列表不能为空,最多可以有 64 个条目。

返回: 成功

name

字符串

元数据标签的名称。名称的最大长度为 1024 个字符,并且至少为 1 个字符长。

返回: 成功

value

字符串

标签的值必须与指定的值匹配。value 的最大长度为 1024 个字符。

返回: 成功

filterMatchCriteria

字符串

指定 filterLabels 列表中的各个 filterLabel 匹配如何对整体 metadataFilter 匹配做出贡献。支持的值为: - MATCH_ANY:至少一个 filterLabels 必须在提供的元数据中具有匹配的标签。

  • MATCH_ALL:所有 filterLabels 都必须在提供的元数据中具有匹配的标签。

返回: 成功

prefixMatch

字符串

为了满足 matchRule 条件,请求的路径必须以指定的 prefixMatch 开头。prefixMatch 必须以 / 开头。该值必须介于 1 到 1024 个字符之间。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

返回: 成功

queryParameterMatches

复杂类型

指定查询参数匹配条件的列表,所有这些条件都必须与请求中相应的查询参数匹配。

返回: 成功

exactMatch

字符串

如果参数的值与 exactMatch 的内容完全匹配,则 queryParameterMatch 匹配。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

返回: 成功

name

字符串

要匹配的查询参数的名称。查询参数必须存在于请求中,否则请求匹配失败。

返回: 成功

presentMatch

布尔值

指定如果请求包含查询参数,则无论参数是否有值,queryParameterMatch 都匹配。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

返回: 成功

regexMatch

字符串

如果参数的值与 regexMatch 指定的正则表达式匹配,则 queryParameterMatch 匹配。有关正则表达式语法,请参见 en.cppreference.com/w/cpp/regex/ecmascript。只能设置 presentMatch、exactMatch 和 regexMatch 中的一个。

返回: 成功

regexMatch

字符串

为了满足 matchRule 条件,在删除原始 URL 中提供的任何查询参数和锚点之后,请求的路径必须满足 regexMatch 中指定的正则表达式。有关正则表达式语法,请参见 en.cppreference.com/w/cpp/regex/ecmascript。只能指定 prefixMatch、fullPathMatch 或 regexMatch 中的一个。

返回: 成功

priority

整数

对于给定 pathMatcher 中的 routeRules,priority 确定负载均衡器解释 routeRules 的顺序。RouteRules 按照优先级顺序进行评估,从最低到最高数字。规则的优先级随着其数字的增加而降低 (1, 2, 3, N+1)。应用与请求匹配的第一个规则。

您不能配置两个或多个具有相同优先级的 routeRules。

每个规则的优先级必须设置为介于 0 和 2147483647(含)之间的数字。

优先级数字可以有间隙,这使您可以在将来添加或删除规则,而不会影响其余规则。例如,1、2、3、4、5、9、12、16 是一系列有效的优先级数字,您可以在将来向其中添加编号为 6 到 8、10 到 11 和 13 到 15 的规则,而不会对现有规则产生任何影响。

返回: 成功

routeAction

复杂类型

为了响应匹配的 matchRule,负载均衡器在将请求转发到所选后端之前,会执行高级路由操作,例如 URL 重写、标头转换等。如果 routeAction 指定任何 weightedBackendServices,则不得设置 service。相反,如果设置了 service,则 routeAction 不能包含任何 weightedBackendServices。只能设置 routeAction 或 urlRedirect 中的一个。

返回: 成功

corsPolicy

复杂类型

用于允许客户端跨域请求的规范。请参阅跨域资源共享的 W3C 建议。

返回: 成功

allowCredentials

布尔值

为了响应预检请求,将其设置为 true 表示实际请求可以包含用户凭据。这转换为 Access-Control-Allow-Credentials 标头。默认为 false。

返回: 成功

allowHeaders

列表 / 元素=字符串

指定 Access-Control-Allow-Headers 标头的内容。

返回: 成功

allowMethods

列表 / 元素=字符串

指定 Access-Control-Allow-Methods 标头的内容。

返回: 成功

allowOriginRegexes

列表 / 元素=字符串

指定与允许的来源匹配的正则表达式模式。有关正则表达式语法,请参阅 en.cppreference.com/w/cpp/regex/ecmascript。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

返回: 成功

allowOrigins

列表 / 元素=字符串

指定将允许进行 CORS 请求的来源列表。如果来源与 allow_origins 或 allow_origin_regex 匹配,则允许该来源。

返回: 成功

disabled

布尔值

如果为 true,则指定禁用 CORS 策略。

指示 CORS 策略有效。默认为 false。

返回: 成功

exposeHeaders

列表 / 元素=字符串

指定 Access-Control-Expose-Headers 标头的内容。

返回: 成功

maxAge

整数

指定预检请求的结果可以缓存多长时间。这转换为 Access-Control-Max-Age 标头的内容。

返回: 成功

faultInjectionPolicy

复杂类型

为测试客户端对后端服务故障的弹性而引入到流量中的故障注入规范。作为故障注入的一部分,当客户端向后端服务发送请求时,负载均衡器可以在将这些请求发送到后端服务之前,对一定百分比的请求引入延迟。类似地,负载均衡器可以为一定百分比的请求中止来自客户端的请求。配置了 fault_injection_policy 的客户端将忽略 timeout 和 retry_policy。

返回: 成功

abort

复杂类型

用于说明如何中止客户端请求(作为故障注入的一部分)的规范。

返回: 成功

httpStatus

整数

用于中止请求的 HTTP 状态代码。该值必须在 200 到 599 之间(含)。

返回: 成功

percentage

字符串

作为故障注入的一部分将被中止的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

返回: 成功

delay

复杂类型

用于说明如何在作为故障注入的一部分将客户端请求发送到后端服务之前延迟客户端请求的规范。

返回: 成功

fixedDelay

复杂类型

指定固定延迟间隔的值。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

percentage

字符串

作为故障注入的一部分将引入延迟的流量(连接/操作/请求)百分比。该值必须在 0.0 到 100.0 之间(含)。

返回: 成功

requestMirrorPolicy

复杂类型

指定有关如何将预定用于路由的后端的请求镜像到单独的镜像后端服务的策略。负载均衡器不等待来自影子服务的响应。在将流量发送到影子服务之前,主机/授权标头将附加 -shadow 后缀。

返回: 成功

backendService

字典

要镜像到的 BackendService 资源。

返回: 成功

retryPolicy

复杂类型

指定与此路由关联的重试策略。

返回: 成功

numRetries

整数

指定允许的重试次数。此数字必须 > 0。

返回: 成功

perTryTimeout

复杂类型

指定每次重试尝试的非零超时时间。

如果未指定,将使用 HttpRouteAction 中设置的超时时间。如果未在 HttpRouteAction 中设置超时时间,将使用与路由关联的所有后端服务中最大的超时时间。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

retryConditions

列表 / 元素=字符串

指定此重试规则适用的一个或多个条件。有效值为: * 5xx:如果后端服务响应任何 5xx 响应代码,或者后端服务根本不响应,负载均衡器将尝试重试,例如:断开连接、重置、读取超时、连接失败和拒绝流。

* gateway-error:类似于 5xx,但仅适用于响应代码 502、503 或 504。

* connect-failure:负载均衡器将在连接到后端服务失败时重试,例如由于连接超时。

* retriable-4xx:负载均衡器将重试可重试的 4xx 响应代码。

目前,唯一支持的可重试错误是 409。

* refused-stream:如果后端服务以 REFUSED_STREAM 错误代码重置流,则负载均衡器将重试。此重置类型表示重试是安全的。

* cancelled:如果响应头中的 gRPC 状态代码设置为已取消,负载均衡器将重试 * deadline-exceeded:如果响应头中的 gRPC 状态代码设置为截止日期超出,负载均衡器将重试 * resource-exhausted:如果响应头中的 gRPC 状态代码设置为资源耗尽,负载均衡器将重试 * unavailable:如果响应头中的 gRPC 状态代码设置为不可用,负载均衡器将重试。

返回: 成功

timeout

复杂类型

指定所选路由的超时时间。超时时间是从请求被完全处理(即流的结束)到响应被完全处理的时间计算的。超时时间包括所有重试。如果未指定,则默认值为 15 秒。

返回: 成功

nanos

整数

时间跨度,以纳秒分辨率表示的秒的小数部分。小于一秒的持续时间用 0 `seconds` 字段和正 `nanos` 字段表示。必须从 0 到 999,999,999 之间(含)。

返回: 成功

seconds

字符串

时间跨度,分辨率为秒。必须介于 0 到 315,576,000,000 之间(含 0 和 315,576,000,000)。

返回: 成功

urlRewrite

复杂类型

在将请求转发到匹配的服务之前,修改请求 URL 的规范。

返回: 成功

hostRewrite

字符串

在将请求转发到选定的服务之前,请求的主机标头将替换为 hostRewrite 的内容。该值必须在 1 到 255 个字符之间。

返回: 成功

pathPrefixRewrite

字符串

在将请求转发到选定的后端服务之前,请求路径的匹配部分将替换为 pathPrefixRewrite。该值必须在 1 到 1024 个字符之间。

返回: 成功

weightedBackendServices

复杂类型

当发生路由匹配时,要将流量发送到的加权后端服务列表。权重决定了流向其对应后端服务的流量比例。如果所有流量都需要流向单个后端服务,则必须有一个权重设置为非 0 数字的 weightedBackendService。一旦识别了 backendService,并且在将请求转发到后端服务之前,将根据此 HttpRouteAction 中指定的其他设置应用高级路由操作,如 URL 重写和标头转换。

返回: 成功

backendService

字典

默认的 BackendService 资源。在将请求转发到 backendService 之前,负载均衡器会应用作为此 backendServiceWeight 一部分指定的任何相关 headerActions。

返回: 成功

headerAction

复杂类型

指定需要对选定的 backendService 生效的请求和响应标头的更改。此处指定的 headerAction 将在封闭的 HttpRouteRule、PathMatcher 和 UrlMap 中的 headerAction 之前生效。

返回: 成功

requestHeadersToAdd

复杂类型

在将请求转发到 backendService 之前,要添加到匹配请求的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

requestHeadersToRemove

列表 / 元素=字符串

需要在将请求转发到 backendService 之前从请求中删除的标头的标头名称列表。

返回: 成功

responseHeadersToAdd

复杂类型

在将响应发送回客户端之前,要添加到响应的标头。

返回: 成功

headerName

字符串

标头的名称。

返回: 成功

headerValue

字符串

要添加的标头的值。

返回: 成功

replace

布尔值

如果为 false,则将 headerValue 附加到标头已存在的任何值。如果为 true,则为标头设置 headerValue,丢弃为该标头设置的任何值。

返回: 成功

responseHeadersToRemove

列表 / 元素=字符串

需要在将响应发送回客户端之前从响应中删除的标头的标头名称列表。

返回: 成功

weight

整数

指定发送到 backendService 的流量比例,计算方式为 weight /(routeAction 中所有 weightedBackendService 权重的总和)。仅针对新流量确定后端服务的选择。一旦用户的请求被定向到 backendService,后续请求将发送到同一后端服务,这由 BackendService 的会话亲和性策略确定。

该值必须介于 0 和 1000 之间。

返回: 成功

service

字典

如果此规则匹配,则流量将定向到的后端服务资源。如果还指定了 routeAction,则在将请求发送到后端之前,会执行高级路由操作,如 URL 重写等。但是,如果指定了 service,则 routeAction 不能包含任何 weightedBackendService s。相反,如果 routeAction 指定了任何 weightedBackendServices,则不得指定 service。只能设置 urlRedirect、service 或 routeAction.weightedBackendService 中的一个。

返回: 成功

urlRedirect

复杂类型

当匹配此规则时,请求将重定向到 urlRedirect 指定的 URL。如果指定了 urlRedirect,则不得设置 service 或 routeAction。

返回: 成功

hostRedirect

字符串

在重定向响应中使用的主机,而不是请求中提供的主机。该值必须介于 1 到 255 个字符之间。

返回: 成功

httpsRedirect

布尔值

如果设置为 true,则重定向请求中的 URL 方案将设置为 https。如果设置为 false,则重定向请求的 URL 方案将与请求的 URL 方案保持不变。这只能为 TargetHttpProxys 中使用的 UrlMaps 设置。

不允许为 TargetHttpsProxy 将其设置为 true。默认为 false。

返回: 成功

pathRedirect

字符串

重定向响应中将使用的路径,而不是请求中提供的路径。只能指定 pathRedirect 或 prefixRedirect 中的一个。该值必须介于 1 到 1024 个字符之间。

返回: 成功

prefixRedirect

字符串

替换 HttpRouteRuleMatch 中指定的 prefixMatch 的前缀,保留 URL 的其余部分,然后再重定向请求。

返回: 成功

redirectResponseCode

字符串

此 RedirectAction 要使用的 HTTP 状态代码。支持的值包括:* MOVED_PERMANENTLY_DEFAULT,它是默认值,对应于 301。

* FOUND,对应于 302。

* SEE_OTHER,对应于 303。

* TEMPORARY_REDIRECT,对应于 307。在这种情况下,请求方法将保留。

* PERMANENT_REDIRECT,对应于 308。在这种情况下,请求方法将保留。

返回: 成功

stripQuery

布尔值

如果设置为 true,则在重定向请求之前,将删除原始 URL 的任何随附查询部分。如果设置为 false,则保留原始 URL 的查询部分。默认为 false。

返回: 成功

tests

复杂类型

预期的 URL 映射测试列表。仅当所有测试用例都通过时,更新此 UrlMap 的请求才会成功。您最多可以为每个 UrlMap 指定 100 个测试。

返回: 成功

description

字符串

此测试用例的描述。

返回: 成功

host

字符串

URL 的主机部分。

返回: 成功

path

字符串

URL 的路径部分。

返回: 成功

service

字典

给定 URL 应映射到的预期 BackendService 资源。

返回: 成功

作者

  • Google Inc. (@googlecloudplatform)