gRPC 服务 (proto)
config.core.v3.GrpcService
[config.core.v3.GrpcService proto]
gRPC 服务配置。这被 ApiConfigSource 和过滤器配置使用。
{
"envoy_grpc": {...},
"google_grpc": {...},
"timeout": {...},
"initial_metadata": [],
"retry_policy": {...}
}
- envoy_grpc
(config.core.v3.GrpcService.EnvoyGrpc) Envoy 的内置 gRPC 客户端。有关 gRPC 客户端选择的讨论,请参阅 gRPC 服务概述 文档。
必须设置 envoy_grpc 或 google_grpc 中的一个。
- google_grpc
(config.core.v3.GrpcService.GoogleGrpc) Google C++ gRPC 客户端 有关 gRPC 客户端选择的讨论,请参阅 gRPC 服务概述 文档。
必须设置 envoy_grpc 或 google_grpc 中的一个。
- timeout
(Duration) gRPC 请求的超时时间。这是特定请求的超时时间。
- initial_metadata
(repeated config.core.v3.HeaderValue) 要包含在向 GrpcService 发起的流中的附加元数据。这可用于需要注入其他临时授权标头(例如
x-foo-bar: baz-key
)的场景。有关更多信息,包括标头值语法的详细信息,请参阅有关 自定义请求标头 的文档。
- retry_policy
(config.core.v3.RetryPolicy) 面向服务的流的可选默认重试策略。如果异步流未在其流选项中配置重试策略,则使用此重试策略。
config.core.v3.GrpcService.EnvoyGrpc
[config.core.v3.GrpcService.EnvoyGrpc proto]
{
"cluster_name": ...,
"authority": ...,
"retry_policy": {...},
"max_receive_message_length": {...},
"skip_envoy_headers": ...
}
- cluster_name
(string, REQUIRED) 上游 gRPC 集群的名称。SSL 凭据将在 Cluster 的 transport_socket 中提供。
- authority
(string) gRPC 请求中的
:authority
标头。如果此字段未设置,则授权标头值将为cluster_name
。请注意,此授权不会覆盖 SNI。SNI 由集群的传输套接字提供。
- retry_policy
(config.core.v3.RetryPolicy) 指示重新建立 gRPC 流的重试策略。此字段是可选的。如果没有提供最大间隔,则将其设置为提供的基本间隔的十倍。目前仅支持 xDS gRPC 流。如果未设置,xDS gRPC 流默认基本间隔:500 毫秒,最大间隔:30 秒将被应用。
- max_receive_message_length
(UInt32Value) 允许接收的最大 gRPC 消息大小。如果收到超过此限制的消息,则 gRPC 流将以 RESOURCE_EXHAUSTED 错误终止。此限制应用于流响应中的单个消息,而不是流响应的总大小。默认为 0,表示无限制。
- skip_envoy_headers
(bool) 这提供了 gRPC 客户端级对 envoy 生成的标头的控制。如果为 false,则将发送标头,但它可以被每个流选项覆盖。如果为 true,则将删除标头,并且不能被每个流选项覆盖。默认为 false。
config.core.v3.GrpcService.GoogleGrpc
[config.core.v3.GrpcService.GoogleGrpc proto]
{
"target_uri": ...,
"channel_credentials": {...},
"call_credentials": [],
"stat_prefix": ...,
"credentials_factory_name": ...,
"config": {...},
"per_stream_buffer_limit_bytes": {...},
"channel_args": {...}
}
- target_uri
(string, REQUIRED) 使用 Google C++ gRPC 客户端 时的目标 URI。SSL 凭据将在 channel_credentials 中提供。
- channel_credentials
- call_credentials
(repeated config.core.v3.GrpcService.GoogleGrpc.CallCredentials) 一组可以与 通道凭据 组合的调用凭据。
- stat_prefix
(string, REQUIRED) 为 gRPC 服务发出统计信息时要使用的可读性强的前缀。
名称
类型
描述
streams_total
计数器
打开的流的总数
streams_closed_<gRPC 状态代码>
计数器
使用 <gRPC 状态代码> 关闭的流的总数
- credentials_factory_name
(string) 要使用的 Google gRPC 凭据工厂的名称。这必须已在 Envoy 中注册。如果为空,则将使用默认凭据工厂,该工厂根据其他配置参数设置通道凭据。
- config
(Struct) Google gRPC 库的特定于站点自定义的额外配置。
- per_stream_buffer_limit_bytes
(UInt32Value) 每个流可以在内部缓冲的字节数。如果未设置,则应用实现定义的默认值(1MiB)。
- channel_args
(config.core.v3.GrpcService.GoogleGrpc.ChannelArgs) 自定义通道参数。
config.core.v3.GrpcService.GoogleGrpc.SslCredentials
[config.core.v3.GrpcService.GoogleGrpc.SslCredentials proto]
参见 https://grpc.org.cn/grpc/cpp/structgrpc_1_1_ssl_credentials_options.html。
{
"root_certs": {...},
"private_key": {...},
"cert_chain": {...}
}
- root_certs
(config.core.v3.DataSource) PEM 编码的服务器根证书。
- private_key
(config.core.v3.DataSource) PEM 编码的客户端私钥。
- cert_chain
(config.core.v3.DataSource) PEM 编码的客户端证书链。
config.core.v3.GrpcService.GoogleGrpc.GoogleLocalCredentials
[config.core.v3.GrpcService.GoogleGrpc.GoogleLocalCredentials proto]
本地通道凭据。目前只支持 UDS。参见 https://github.com/grpc/grpc/pull/15909。
config.core.v3.GrpcService.GoogleGrpc.ChannelCredentials
[config.core.v3.GrpcService.GoogleGrpc.ChannelCredentials proto]
参见 https://grpc.org.cn/docs/guides/auth.html#credential-types 以了解通道和调用凭据类型。
{
"ssl_credentials": {...},
"google_default": {...},
"local_credentials": {...}
}
- ssl_credentials
(config.core.v3.GrpcService.GoogleGrpc.SslCredentials)
必须设置 ssl_credentials、google_default 或 local_credentials 中的一个。
- google_default
(Empty) https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
必须设置 ssl_credentials、google_default 或 local_credentials 中的一个。
- local_credentials
(config.core.v3.GrpcService.GoogleGrpc.GoogleLocalCredentials)
必须设置 ssl_credentials、google_default 或 local_credentials 中的一个。
config.core.v3.GrpcService.GoogleGrpc.CallCredentials
[config.core.v3.GrpcService.GoogleGrpc.CallCredentials proto]
{
"access_token": ...,
"google_compute_engine": {...},
"google_refresh_token": ...,
"service_account_jwt_access": {...},
"google_iam": {...},
"from_plugin": {...},
"sts_service": {...}
}
- access_token
(string) 访问令牌凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#ad3a80da696ffdaea943f0f858d7a360d。
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- google_compute_engine
(Empty) Google Compute Engine 凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a6beb3ac70ff94bd2ebbd89b8f21d1f61
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- google_refresh_token
(string) Google 刷新令牌凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a96901c997b91bc6513b08491e0dca37c.
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- service_account_jwt_access
(config.core.v3.GrpcService.GoogleGrpc.CallCredentials.ServiceAccountJWTAccessCredentials) 服务帐户 JWT 访问凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a92a9f959d6102461f66ee973d8e9d3aa.
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- google_iam
(config.core.v3.GrpcService.GoogleGrpc.CallCredentials.GoogleIAMCredentials) Google IAM 凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a9fc1fc101b41e680d47028166e76f9d0.
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- from_plugin
(config.core.v3.GrpcService.GoogleGrpc.CallCredentials.MetadataCredentialsFromPlugin) 自定义身份验证器凭据。 https://grpc.org.cn/grpc/cpp/namespacegrpc.html#a823c6a4b19ffc71fb33e90154ee2ad07. https://grpc.org.cn/docs/guides/auth.html#extending-grpc-to-support-other-authentication-mechanisms.
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
- sts_service
(config.core.v3.GrpcService.GoogleGrpc.CallCredentials.StsService) 自定义安全令牌服务,实现 OAuth 2.0 令牌交换。 https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16 参见 https://github.com/grpc/grpc/pull/19587.
必须设置以下选项之一:access_token、google_compute_engine、google_refresh_token、service_account_jwt_access、google_iam、from_plugin、sts_service。
config.core.v3.GrpcService.GoogleGrpc.CallCredentials.ServiceAccountJWTAccessCredentials
[config.core.v3.GrpcService.GoogleGrpc.CallCredentials.ServiceAccountJWTAccessCredentials proto]
{
"json_key": ...,
"token_lifetime_seconds": ...
}
- json_key
(string)
- token_lifetime_seconds
(uint64)
config.core.v3.GrpcService.GoogleGrpc.CallCredentials.GoogleIAMCredentials
[config.core.v3.GrpcService.GoogleGrpc.CallCredentials.GoogleIAMCredentials proto]
{
"authorization_token": ...,
"authority_selector": ...
}
- authorization_token
(string)
- authority_selector
(string)
config.core.v3.GrpcService.GoogleGrpc.CallCredentials.MetadataCredentialsFromPlugin
[config.core.v3.GrpcService.GoogleGrpc.CallCredentials.MetadataCredentialsFromPlugin proto]
{
"name": ...,
"typed_config": {...}
}
- name
(string)
- typed_config
(Any)
config.core.v3.GrpcService.GoogleGrpc.CallCredentials.StsService
[config.core.v3.GrpcService.GoogleGrpc.CallCredentials.StsService proto]
安全令牌服务配置,允许 Google gRPC 从 OAuth 2.0 授权服务器获取安全令牌。 参见 https://tools.ietf.org/html/draft-ietf-oauth-token-exchange-16 和 https://github.com/grpc/grpc/pull/19587.
{
"token_exchange_service_uri": ...,
"resource": ...,
"audience": ...,
"scope": ...,
"requested_token_type": ...,
"subject_token_path": ...,
"subject_token_type": ...,
"actor_token_path": ...,
"actor_token_type": ...
}
- token_exchange_service_uri
(string) 处理令牌交换请求的令牌交换服务的 URI。
- resource
(string) 客户端打算使用请求的安全令牌的目标服务或资源的位置。
- audience
(string) 客户端打算使用请求的安全令牌的目标服务的逻辑名称。
- scope
(string) 请求的安全令牌在将使用令牌的服务或资源的上下文中所需的范围。
- requested_token_type
(string) 请求的安全令牌的类型。
- subject_token_path
(string, REQUIRED) 主题令牌的路径,表示请求代表的当事人的身份的安全令牌。
- subject_token_type
(string, REQUIRED) 主题令牌的类型。
- actor_token_path
(string) 行为者令牌的路径,表示行为者身份的安全令牌。 行为者有权使用请求的安全令牌并代表主题进行操作。
- actor_token_type
(string) 行为者令牌的类型。
config.core.v3.GrpcService.GoogleGrpc.ChannelArgs
[config.core.v3.GrpcService.GoogleGrpc.ChannelArgs proto]
通道参数。
{
"args": {...}
}
- args
(repeated map<string, config.core.v3.GrpcService.GoogleGrpc.ChannelArgs.Value>) 参见 grpc_types.h GRPC_ARG #defines 以了解此处有效的键。
config.core.v3.GrpcService.GoogleGrpc.ChannelArgs.Value
[config.core.v3.GrpcService.GoogleGrpc.ChannelArgs.Value proto]
{
"string_value": ...,
"int_value": ...
}
- string_value
(string) 不支持指针值,因为它们在通过 API 传递时没有任何意义。
必须设置以下选项之一:string_value、int_value。
- int_value
(int64) 不支持指针值,因为它们在通过 API 传递时没有任何意义。
必须设置以下选项之一:string_value、int_value。