Class: Google::Apis::ComputeAlpha::Backend

Inherits:
Object
  • Object
show all
Includes:
Google::Apis::Core::Hashable, Google::Apis::Core::JsonObjectSupport
Defined in:
generated/google/apis/compute_alpha/classes.rb,
generated/google/apis/compute_alpha/representations.rb,
generated/google/apis/compute_alpha/representations.rb

Overview

Message containing information of one individual backend.

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(**args) ⇒ Backend

Returns a new instance of Backend.



2869
2870
2871
# File 'generated/google/apis/compute_alpha/classes.rb', line 2869

def initialize(**args)
   update!(**args)
end

Instance Attribute Details

#balancing_modeString

Specifies the balancing mode for the backend. When choosing a balancing mode, you need to consider the loadBalancingScheme, and protocol for the backend service, as well as the type of backend (instance group or NEG).

  • If the load balancing mode is CONNECTION, then the load is spread based on how many concurrent connections the backend can handle. You can use the CONNECTION balancing mode if the protocol for the backend service is SSL, TCP, or UDP. If the loadBalancingScheme for the backend service is EXTERNAL (SSL Proxy and TCP Proxy load balancers), you must also specify exactly one of the following parameters: maxConnections (except for regional managed instance groups), maxConnectionsPerInstance, or maxConnectionsPerEndpoint. If the loadBalancingScheme for the backend service is INTERNAL (internal TCP/ UDP Load Balancers) or EXTERNAL (Network Load Balancing), you cannot specify any additional parameters.

  • If the load balancing mode is RATE, the load is spread based on the rate of HTTP requests per second (RPS). You can use the RATE balancing mode if the protocol for the backend service is HTTP, HTTP2, or HTTPS. You must specify exactly one of the following parameters: maxRate (except for regional managed instance groups), maxRatePerInstance, or maxRatePerEndpoint.

  • If the load balancing mode is UTILIZATION, the load is spread based on the backend utilization of instances in an instance group. You can use the UTILIZATION balancing mode if the loadBalancingScheme of the backend service is EXTERNAL (except Network Load Balancing), INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED and the backends are instance groups. There are no restrictions on the backend service protocol. Corresponds to the JSON property balancingMode

Returns:

  • (String)


2732
2733
2734
# File 'generated/google/apis/compute_alpha/classes.rb', line 2732

def balancing_mode
  @balancing_mode
end

#capacity_scalerFloat

A multiplier applied to the group's maximum servicing capacity (based on UTILIZATION, RATE or CONNECTION). Default value is 1, which means the group will serve up to 100% of its configured capacity (depending on balancingMode). A setting of 0 means the group is completely drained, offering 0% of its available capacity. Valid range is 0.0 and [0.1,1.0]. You cannot configure a setting larger than 0 and smaller than 0.1. You cannot configure a setting of 0 when there is only one backend attached to the backend service. This cannot be used for Internal TCP/UDP Load Balancing and Network Load Balancing. Corresponds to the JSON property capacityScaler

Returns:

  • (Float)


2745
2746
2747
# File 'generated/google/apis/compute_alpha/classes.rb', line 2745

def capacity_scaler
  @capacity_scaler
end

#descriptionString

An optional description of this resource. Provide this property when you create the resource. Corresponds to the JSON property description

Returns:

  • (String)


2751
2752
2753
# File 'generated/google/apis/compute_alpha/classes.rb', line 2751

def description
  @description
end

#failoverBoolean Also known as: failover?

This field designates whether this is a failover backend. More than one failover backend can be configured for a given BackendService. Corresponds to the JSON property failover

Returns:

  • (Boolean)


2757
2758
2759
# File 'generated/google/apis/compute_alpha/classes.rb', line 2757

def failover
  @failover
end

#groupString

The fully-qualified URL of an instance group or network endpoint group (NEG) resource. The type of backend that a backend service supports depends on the backend service's loadBalancingScheme.

  • When the loadBalancingScheme for the backend service is EXTERNAL (except Network Load Balancing), INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED , the backend can be either an instance group or a NEG. The backends on the backend service must be either all instance groups or all NEGs. You cannot mix instance group and NEG backends on the same backend service.
  • When the loadBalancingScheme for the backend service is EXTERNAL for Network Load Balancing or INTERNAL for Internal TCP/UDP Load Balancing, the backend must be an instance group. NEGs are not supported. For regional services, the backend must be in the same region as the backend service. You must use the fully-qualified URL (starting with https://www.googleapis.com/ ) to specify the instance group or NEG. Partial URLs are not supported. Corresponds to the JSON property group

Returns:

  • (String)


2778
2779
2780
# File 'generated/google/apis/compute_alpha/classes.rb', line 2778

def group
  @group
end

#max_connectionsFixnum

Defines a target maximum number of simultaneous connections that the backend can handle. Valid for network endpoint group and instance group backends ( except for regional managed instance groups). If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must specify either this parameter, maxConnectionsPerInstance, or maxConnectionsPerEndpoint. Not available if the backend's balancingMode is RATE. Cannot be specified for Network Load Balancing or Internal TCP/UDP Load Balancing, even though those load balancers require a balancing mode of CONNECTION. Corresponds to the JSON property maxConnections

Returns:

  • (Fixnum)


2793
2794
2795
# File 'generated/google/apis/compute_alpha/classes.rb', line 2793

def max_connections
  @max_connections
end

#max_connections_per_endpointFixnum

Defines a target maximum number of simultaneous connections for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a maximum number of target maximum simultaneous connections for the NEG. If the backend's balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must specify either this parameter, maxConnections, or maxConnectionsPerInstance. Not available if the backend's balancingMode is RATE. Cannot be specified for Network Load Balancing or Internal TCP/UDP Load Balancing, even though those load balancers require a balancing mode of CONNECTION. Corresponds to the JSON property maxConnectionsPerEndpoint

Returns:

  • (Fixnum)


2807
2808
2809
# File 'generated/google/apis/compute_alpha/classes.rb', line 2807

def max_connections_per_endpoint
  @max_connections_per_endpoint
end

#max_connections_per_instanceFixnum

Defines a target maximum number of simultaneous connections for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum number of simultaneous connections for the whole instance group. If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is CONNECTION, and backend is attached to a backend service whose loadBalancingScheme is EXTERNAL (except Network Load Balancing), you must specify either this parameter, maxConnections, or maxConnectionsPerEndpoint. Not available if the backend's balancingMode is RATE. Cannot be specified for Network Load Balancing or Internal TCP/UDP Load Balancing, even though those load balancers require a balancing mode of CONNECTION. Corresponds to the JSON property maxConnectionsPerInstance

Returns:

  • (Fixnum)


2822
2823
2824
# File 'generated/google/apis/compute_alpha/classes.rb', line 2822

def max_connections_per_instance
  @max_connections_per_instance
end

#max_rateFixnum

Defines a maximum number of HTTP requests per second (RPS) that the backend can handle. Valid for network endpoint group and instance group backends ( except for regional managed instance groups). Must not be defined if the backend is a managed instance group that uses autoscaling based on load balancing. If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is RATE, you must specify maxRate, maxRatePerInstance, or maxRatePerEndpoint. Not available if the backend's balancingMode is CONNECTION. Corresponds to the JSON property maxRate

Returns:

  • (Fixnum)


2835
2836
2837
# File 'generated/google/apis/compute_alpha/classes.rb', line 2835

def max_rate
  @max_rate
end

#max_rate_per_endpointFloat

Defines a maximum target for requests per second (RPS) for an endpoint of a NEG. This is multiplied by the number of endpoints in the NEG to implicitly calculate a target maximum rate for the NEG. If the backend's balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerInstance. Not available if the backend's balancingMode is CONNECTION. Corresponds to the JSON property maxRatePerEndpoint

Returns:

  • (Float)


2845
2846
2847
# File 'generated/google/apis/compute_alpha/classes.rb', line 2845

def max_rate_per_endpoint
  @max_rate_per_endpoint
end

#max_rate_per_instanceFloat

Defines a maximum target for requests per second (RPS) for a single VM in a backend instance group. This is multiplied by the number of instances in the instance group to implicitly calculate a target maximum rate for the whole instance group. If the backend's balancingMode is UTILIZATION, this is an optional parameter. If the backend's balancingMode is RATE, you must specify either this parameter, maxRate (except for regional managed instance groups), or maxRatePerEndpoint. Not available if the backend's balancingMode is CONNECTION. Corresponds to the JSON property maxRatePerInstance

Returns:

  • (Float)


2857
2858
2859
# File 'generated/google/apis/compute_alpha/classes.rb', line 2857

def max_rate_per_instance
  @max_rate_per_instance
end

#max_utilizationFloat

Defines the maximum average backend utilization of a backend VM in an instance group. The valid range is [0.0, 1.0]. This is an optional parameter if the backend's balancingMode is UTILIZATION. This parameter can be used in conjunction with maxRate, maxRatePerInstance, maxConnections (except for regional managed instance groups), or maxConnectionsPerInstance. Corresponds to the JSON property maxUtilization

Returns:

  • (Float)


2867
2868
2869
# File 'generated/google/apis/compute_alpha/classes.rb', line 2867

def max_utilization
  @max_utilization
end

Instance Method Details

#update!(**args) ⇒ Object

Update properties of this object



2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
# File 'generated/google/apis/compute_alpha/classes.rb', line 2874

def update!(**args)
  @balancing_mode = args[:balancing_mode] if args.key?(:balancing_mode)
  @capacity_scaler = args[:capacity_scaler] if args.key?(:capacity_scaler)
  @description = args[:description] if args.key?(:description)
  @failover = args[:failover] if args.key?(:failover)
  @group = args[:group] if args.key?(:group)
  @max_connections = args[:max_connections] if args.key?(:max_connections)
  @max_connections_per_endpoint = args[:max_connections_per_endpoint] if args.key?(:max_connections_per_endpoint)
  @max_connections_per_instance = args[:max_connections_per_instance] if args.key?(:max_connections_per_instance)
  @max_rate = args[:max_rate] if args.key?(:max_rate)
  @max_rate_per_endpoint = args[:max_rate_per_endpoint] if args.key?(:max_rate_per_endpoint)
  @max_rate_per_instance = args[:max_rate_per_instance] if args.key?(:max_rate_per_instance)
  @max_utilization = args[:max_utilization] if args.key?(:max_utilization)
end