Application Load Balancer API, gRPC: BackendGroupService
- Calls BackendGroupService
- Get
- GetBackendGroupRequest
- BackendGroup
- HttpBackendGroup
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- GrpcBackend
- StreamBackendGroup
- StreamBackend
- List
- ListBackendGroupsRequest
- ListBackendGroupsResponse
- BackendGroup
- HttpBackendGroup
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- GrpcBackend
- StreamBackendGroup
- StreamBackend
- Create
- CreateBackendGroupRequest
- HttpBackendGroup
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- GrpcBackend
- StreamBackendGroup
- StreamBackend
- Operation
- CreateBackendGroupMetadata
- BackendGroup
- Update
- UpdateBackendGroupRequest
- HttpBackendGroup
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- GrpcBackend
- StreamBackendGroup
- StreamBackend
- Operation
- UpdateBackendGroupMetadata
- BackendGroup
- Delete
- AddBackend
- AddBackendRequest
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- GrpcBackend
- StreamBackend
- Operation
- AddBackendMetadata
- BackendGroup
- HttpBackendGroup
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- StreamBackendGroup
- RemoveBackend
- RemoveBackendRequest
- Operation
- RemoveBackendMetadata
- BackendGroup
- HttpBackendGroup
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- GrpcBackend
- StreamBackendGroup
- StreamBackend
- UpdateBackend
- UpdateBackendRequest
- HttpBackend
- LoadBalancingConfig
- TargetGroupsBackend
- StorageBucketBackend
- HealthCheck
- StreamHealthCheck
- HttpHealthCheck
- GrpcHealthCheck
- PlaintextTransportSettings
- SecureTransportSettings
- ValidationContext
- Payload
- BackendTls
- GrpcBackend
- StreamBackend
- Operation
- UpdateBackendMetadata
- BackendGroup
- HttpBackendGroup
- ConnectionSessionAffinity
- HeaderSessionAffinity
- CookieSessionAffinity
- GrpcBackendGroup
- StreamBackendGroup
- ListOperations
A set of methods for managing backend groups.
Call | Description |
---|---|
Get | Returns the specified backend group. |
List | Lists backend groups in the specified folder. |
Create | Creates a backend group in the specified folder. |
Update | Updates the specified backend group. |
Delete | Deletes the specified backend group. |
AddBackend | Adds backends to the specified backend group. |
RemoveBackend | Removes backends from the specified backend group. |
UpdateBackend | Updates the specified backend. |
ListOperations | Lists operations for the specified backend group. |
Calls BackendGroupService
Get
Returns the specified backend group.
To get the list of all available backend groups, make a List request.
rpc Get (GetBackendGroupRequest) returns (BackendGroup)
GetBackendGroupRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to return. To get the backend group ID, make a BackendGroupService.List request. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
List
Lists backend groups in the specified folder.
rpc List (ListBackendGroupsRequest) returns (ListBackendGroupsResponse)
ListBackendGroupsRequest
Field | Description |
---|---|
folder_id | string Required. ID of the folder to list backend groups in. To get the folder ID, make a yandex.cloud.resourcemanager.v1.FolderService.List request. |
page_size | int64 The maximum number of results per page to return. If the number of available results is larger than page_size , the service returns a ListBackendGroupsResponse.next_page_token that can be used to get the next page of results in subsequent list requests. Default value: 100. Acceptable values are 0 to 1000, inclusive. |
page_token | string Page token. To get the next page of results, set page_token to the ListBackendGroupsResponse.next_page_token returned by a previous list request. The maximum string length in characters is 100. |
filter | string A filter expression that filters backend groups listed in the response. The expression must specify:
name=my-backend-group . The maximum string length in characters is 1000. |
ListBackendGroupsResponse
Field | Description |
---|---|
backend_groups[] | BackendGroup List of backend groups in the specified folder. |
next_page_token | string Token for getting the next page of the list. If the number of results is greater than the specified ListBackendGroupsRequest.page_size, use next_page_token as the value for the ListBackendGroupsRequest.page_token parameter in the next list request. Each subsequent page will have its own next_page_token to continue paging through the results. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
Create
Creates a backend group in the specified folder.
rpc Create (CreateBackendGroupRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:CreateBackendGroupMetadata
Operation.response:BackendGroup
CreateBackendGroupRequest
Field | Description |
---|---|
folder_id | string Required. ID of the folder to create a backend group in. To get the folder ID, make a yandex.cloud.resourcemanager.v1.FolderService.List request. |
name | string Name of the backend group. The name must be unique within the folder. Value must match the regular expression ([a-z]([-a-z0-9]{0,61}[a-z0-9])?)? . |
description | string Description of the backend group. The maximum string length in characters is 256. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. No more than 64 per resource. The maximum string length in characters for each value is 63. Each value must match the regular expression [-_./\\@0-9a-z]* . The string length in characters for each key must be 1-63. Each key must match the regular expression [a-z][-_./\\@0-9a-z]* . |
backend | oneof: http , grpc or stream Backends that the backend group will consist of. |
http | HttpBackendGroup List of HTTP backends that the backend group will consist of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
CreateBackendGroupMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that is being created. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
Update
Updates the specified backend group.
rpc Update (UpdateBackendGroupRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:UpdateBackendGroupMetadata
Operation.response:BackendGroup
UpdateBackendGroupRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to update. To get the backend group ID, make a BackendGroupService.List request. |
update_mask | google.protobuf.FieldMask Field mask that specifies which attributes of the backend group should be updated. |
name | string New name for the backend group. The name must be unique within the folder. Value must match the regular expression ([a-z]([-a-z0-9]{0,61}[a-z0-9])?)? . |
description | string New description of the backend group. The maximum string length in characters is 256. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. Existing set of labels is completely replaced by the provided set, so if you just want to add or remove a label:
[-_./\\@0-9a-z]* . The string length in characters for each key must be 1-63. Each key must match the regular expression [a-z][-_./\\@0-9a-z]* . |
backend | oneof: http , grpc or stream New list of backends in the backend group. Existing list of backends is completely replaced by the specified list, so if you just want to add or remove a target, make a BackendGroupService.AddBackend request or a BackendGroupService.RemoveBackend request. |
http | HttpBackendGroup New list of HTTP backends that the backend group will consist of. |
grpc | GrpcBackendGroup New list of gRPC backends that the backend group will consist of. |
stream | StreamBackendGroup New list of stream (TCP) backends that the backend group will consist of. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
UpdateBackendGroupMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that is being updated. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
Delete
Deletes the specified backend group.
rpc Delete (DeleteBackendGroupRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:DeleteBackendGroupMetadata
Operation.response:google.protobuf.Empty
DeleteBackendGroupRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to delete. To get the backend group ID, make a BackendGroupService.List request. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
DeleteBackendGroupMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that is being deleted. |
AddBackend
Adds backends to the specified backend group.
rpc AddBackend (AddBackendRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:AddBackendMetadata
Operation.response:BackendGroup
AddBackendRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to add a backend to. To get the backend group ID, make a BackendGroupService.List request. |
backend | oneof: http , grpc or stream Backend to add to the backend group. |
http | HttpBackend HTTP backend to add to the backend group. |
grpc | GrpcBackend gRPC backend to add to the backend group. |
stream | StreamBackend New settings for the Stream backend. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
AddBackendMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that the backend is being added to. |
backend_name | string Name of the backend that is being added to the backend group. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
RemoveBackend
Removes backends from the specified backend group.
rpc RemoveBackend (RemoveBackendRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:RemoveBackendMetadata
Operation.response:BackendGroup
RemoveBackendRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to remove a backend from. To get the backend group ID, make a BackendGroupService.List request. |
backend_name | string Required. Name of the backend to remove. To get the backend name, make a BackendGroupService.Get request. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
RemoveBackendMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that the backend is being removed from. |
backend_name | string Name of the backend that is being removed. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
UpdateBackend
Updates the specified backend.
rpc UpdateBackend (UpdateBackendRequest) returns (operation.Operation)
Metadata and response of Operation:
Operation.metadata:UpdateBackendMetadata
Operation.response:BackendGroup
UpdateBackendRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to update the backend in. |
update_mask | google.protobuf.FieldMask Field mask that specifies which attributes of the backend should be updated. |
backend | oneof: http , grpc or stream Name of the backend to update (required) and new settings for the backend. |
http | HttpBackend New settings for the HTTP backend. |
grpc | GrpcBackend New settings for the gRPC backend. |
stream | StreamBackend New settings for the stream (TCP) backend. |
HttpBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups or storage_bucket Reference to targets that belong to the backend. A backend may be a set of target groups or an Object Storage bucket. For details about backend types, see documentation. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
storage_bucket | StorageBucketBackend Object Storage bucket to use as the backend. For details about buckets, see documentation. If a bucket is used as a backend, the list of bucket objects and the objects themselves must be publicly accessible. For instructions, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
use_http2 | bool Enables HTTP/2 usage in connections between load balancer nodes and backend targets. Default value: false , HTTP/1.1 is used. |
LoadBalancingConfig
Field | Description |
---|---|
panic_threshold | int64 Threshold for panic mode. If percentage of healthy backends in the group drops below threshold, panic mode will be activated and traffic will be routed to all backends, regardless of their health check status. This helps to avoid overloading healthy backends. For details about panic mode, see documentation. If the value is 0 , panic mode will never be activated and traffic is routed only to healthy backends at all times. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
locality_aware_routing_percent | int64 Percentage of traffic that a load balancer node sends to healthy backends in its availability zone. The rest is divided equally between other zones. For details about zone-aware routing, see documentation. If there are no healthy backends in an availability zone, all the traffic is divided between other zones. If strict_locality is true , the specified value is ignored. A load balancer node sends all the traffic within its availability zone, regardless of backends' health. Default value: 0 . Acceptable values are 0 to 100, inclusive. |
strict_locality | bool Specifies whether a load balancer node should only send traffic to backends in its availability zone, regardless of their health, and ignore backends in other zones. If set to true and there are no healthy backends in the zone, the node in this zone will respond to incoming traffic with errors. For details about strict locality, see documentation. If strict_locality is true , the value specified in locality_aware_routing_percent is ignored. Default value: false . |
mode | enum LoadBalancingMode Load balancing mode for the backend. For details about load balancing modes, see documentation.
|
TargetGroupsBackend
Field | Description |
---|---|
target_group_ids[] | string List of ID's of target groups that belong to the backend. To get the ID's of all available target groups, make a TargetGroupService.List request. The number of elements must be greater than 0. |
StorageBucketBackend
Field | Description |
---|---|
bucket | string Required. Name of the bucket. |
HealthCheck
Field | Description |
---|---|
timeout | google.protobuf.Duration Required. Health check timeout. The timeout is the time allowed for the target to respond to a check. If the target doesn't respond in time, the check is considered failed. |
interval | google.protobuf.Duration Required. Base interval between consecutive health checks. |
interval_jitter_percent | double |
healthy_threshold | int64 Number of consecutive successful health checks required to mark an unhealthy target as healthy. Both 0 and 1 values amount to one successful check required. The value is ignored when a load balancer is initialized; a target is marked healthy after one successful check. Default value: 0 . |
unhealthy_threshold | int64 Number of consecutive failed health checks required to mark a healthy target as unhealthy. Both 0 and 1 values amount to one unsuccessful check required. The value is ignored if a health check is failed due to an HTTP 503 Service Unavailable response from the target (not applicable to TCP stream health checks). The target is immediately marked unhealthy. Default value: 0 . |
healthcheck_port | int64 Port used for health checks. If not specified, the backend port (HttpBackend.port or GrpcBackend.port) is used for health checks. Acceptable values are 0 to 65535, inclusive. |
healthcheck | oneof: stream , http or grpc Protocol-specific health check settings. The protocols of the backend and of its health check may differ, e.g. a gRPC health check may be specified for an HTTP backend. |
stream | StreamHealthCheck TCP stream health check settings. |
http | HttpHealthCheck HTTP health check settings. |
grpc | GrpcHealthCheck gRPC health check settings. |
transport_settings | oneof: plaintext or tls Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
plaintext | PlaintextTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
tls | SecureTransportSettings Optional transport protocol for health checks. When not set, health checks use the same protocol as the proxied traffic. Use this when health checks' protocol settings differ from their backend, e.g. plaintext health checks for a TLS backend. |
StreamHealthCheck
Field | Description |
---|---|
send | Payload Message sent to targets during TCP data transfer. If not specified, no data is sent to the target. |
receive | Payload Data that must be contained in the messages received from targets for a successful health check. If not specified, no messages are expected from targets, and those that are received are not checked. |
HttpHealthCheck
Field | Description |
---|---|
host | string Value for the HTTP/1.1 Host header or the HTTP/2 :authority pseudo-header used in requests to targets. |
path | string Required. HTTP path used in requests to targets: request URI for HTTP/1.1 request line or value for the HTTP/2 :path pseudo-header. |
use_http2 | bool Enables HTTP/2 usage in health checks. Default value: false , HTTP/1.1 is used. |
GrpcHealthCheck
Field | Description |
---|---|
service_name | string Name of the gRPC service to be checked. If not specified, overall health is checked. For details about the concept, see GRPC Health Checking Protocol |
PlaintextTransportSettings
Empty.
SecureTransportSettings
Field | Description |
---|---|
sni | string SNI string for TLS connections. |
validation_context | ValidationContext Validation context for backend TLS connections. |
ValidationContext
Field | Description |
---|---|
trusted_ca | oneof: trusted_ca_id or trusted_ca_bytes TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_id | string TLS certificate issued by a trusted certificate authority (CA). |
trusted_ca_bytes | string X.509 certificate contents in PEM format. |
Payload
Field | Description |
---|---|
payload | oneof: text Payload. |
text | string Payload text. The string length in characters must be greater than 0. |
BackendTls
Field | Description |
---|---|
sni | string Server Name Indication (SNI) string for TLS connections. |
validation_context | ValidationContext Validation context for TLS connections. |
GrpcBackend
Field | Description |
---|---|
name | string Required. Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends of a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. For now, targets are referenced via target groups. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes HTTPS (HTTP over TLS) connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted HTTP connections with targets. |
StreamBackend
Field | Description |
---|---|
name | string Name of the backend. Value must match the regular expression [a-z][-a-z0-9]{1,61}[a-z0-9] . |
backend_weight | google.protobuf.Int64Value Backend weight. Traffic is distributed between backends of a backend group according to their weights. Weights must be set either for all backends in a group or for none of them. Setting no weights is the same as setting equal non-zero weights for all backends. If the weight is non-positive, traffic is not sent to the backend. |
load_balancing_config | LoadBalancingConfig Load balancing configuration for the backend. |
port | int64 Port used by all targets to receive traffic. Acceptable values are 0 to 65535, inclusive. |
backend_type | oneof: target_groups Reference to targets that belong to the backend. |
target_groups | TargetGroupsBackend Target groups that belong to the backend. For details about target groups, see documentation. |
healthchecks[] | HealthCheck Health checks to perform on targets from target groups. For details about health checking, see documentation. If no health checks are specified, active health checking is not performed. |
tls | BackendTls Settings for TLS connections between load balancer nodes and backend targets. If specified, the load balancer establishes TLS-encrypted TCP connections with targets and compares received certificates with the one specified in BackendTls.validation_context. If not specified, the load balancer establishes unencrypted TCP connections with targets. |
enable_proxy_protocol | bool If set, proxy protocol will be enabled for this backend. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any if operation finished successfully. |
UpdateBackendMetadata
Field | Description |
---|---|
backend_group_id | string ID of the backend group that the backend is being updated it. |
backend_name | string Name of the backend that is being updated. |
BackendGroup
Field | Description |
---|---|
id | string ID of the backend group. Generated at creation time. |
name | string Name of the backend group. The name is unique within the folder. The string length in characters is 3-63. |
description | string Description of the backend group. The string is 0-256 characters long. |
folder_id | string ID of the folder that the backend group belongs to. |
labels | map<string,string> Backend group labels as key:value pairs. For details about the concept, see documentation. The maximum number of labels is 64. |
backend | oneof: http , grpc or stream Backends that the backend group consists of. |
http | HttpBackendGroup List of HTTP backends that the backend group consists of. |
grpc | GrpcBackendGroup List of gRPC backends that the backend group consists of. |
stream | StreamBackendGroup List of stream (TCP) backends that the backend group consists of. |
created_at | google.protobuf.Timestamp Creation timestamp. |
HttpBackendGroup
Field | Description |
---|---|
backends[] | HttpBackend List of HTTP backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
ConnectionSessionAffinity
Field | Description |
---|---|
source_ip | bool Specifies whether an IP address of the client is used to define a connection for session affinity. |
HeaderSessionAffinity
Field | Description |
---|---|
header_name | string Name of the HTTP header field that is used for session affinity. The string length in characters must be 1-256. |
CookieSessionAffinity
Field | Description |
---|---|
name | string Name of the cookie that is used for session affinity. The string length in characters must be 1-256. |
ttl | google.protobuf.Duration Maximum age of cookies that are generated for sessions. If set to 0 , session cookies are used, which are stored by clients in temporary memory and are deleted on client restarts. If not set, the balancer does not generate cookies and only uses incoming ones for establishing session affinity. |
GrpcBackendGroup
Field | Description |
---|---|
backends[] | GrpcBackend List of gRPC backends. |
session_affinity | oneof: connection , header or cookie Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive GrpcBackend.backend_weight), and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
header | HeaderSessionAffinity HTTP-header-field-based session affinity configuration. |
cookie | CookieSessionAffinity Cookie-based session affinity configuration. |
StreamBackendGroup
Field | Description |
---|---|
backends[] | StreamBackend List of stream (TCP) backends. |
session_affinity | oneof: connection Session affinity configuration for the backend group. For details about the concept, see documentation. If session affinity is configured, the backend group should contain exactly one active backend (i.e. with positive HttpBackend.backend_weight), its HttpBackend.backend_type should be TargetGroupsBackend, and its LoadBalancingConfig.load_balancing_mode should be MAGLEV_HASH . If any of these conditions are not met, session affinity will not work. |
connection | ConnectionSessionAffinity Connection-based session affinity configuration. For now, a connection is defined only by an IP address of the client. |
ListOperations
Lists operations for the specified backend group.
rpc ListOperations (ListBackendGroupOperationsRequest) returns (ListBackendGroupOperationsResponse)
ListBackendGroupOperationsRequest
Field | Description |
---|---|
backend_group_id | string Required. ID of the backend group to get operations for. To get the backend group ID, use a BackendGroupService.List request. The maximum string length in characters is 50. |
page_size | int64 The maximum number of results per page that should be returned. If the number of available results is larger than page_size , the service returns a ListBackendGroupOperationsResponse.next_page_token that can be used to get the next page of results in subsequent list requests. Default value: 100. The maximum value is 1000. |
page_token | string Page token. To get the next page of results, set page_token to the ListBackendGroupOperationsResponse.next_page_token returned by a previous list request. The maximum string length in characters is 100. |
ListBackendGroupOperationsResponse
Field | Description |
---|---|
operations[] | operation.Operation List of operations for the specified backend group. |
next_page_token | string Token for getting the next page of the list. If the number of results is greater than the specified ListBackendGroupOperationsRequest.page_size, use next_page_token as the value for the ListBackendGroupOperationsRequest.page_token parameter in the next list request. Each subsequent page will have its own next_page_token to continue paging through the results. |
Operation
Field | Description |
---|---|
id | string ID of the operation. |
description | string Description of the operation. 0-256 characters long. |
created_at | google.protobuf.Timestamp Creation timestamp. |
created_by | string ID of the user or service account who initiated the operation. |
modified_at | google.protobuf.Timestamp The time when the Operation resource was last modified. |
done | bool If the value is false , it means the operation is still in progress. If true , the operation is completed, and either error or response is available. |
metadata | google.protobuf.Any Service-specific metadata associated with the operation. It typically contains the ID of the target resource that the operation is performed on. Any method that returns a long-running operation should document the metadata type, if any. |
result | oneof: error or response The operation result. If done == false and there was no failure detected, neither error nor response is set. If done == false and there was a failure detected, error is set. If done == true , exactly one of error or response is set. |
error | google.rpc.Status The error result of the operation in case of failure or cancellation. |
response | google.protobuf.Any The normal response of the operation in case of success. If the original method returns no data on success, such as Delete, the response is google.protobuf.Empty |