attachLoadBalancerTargetGroups method

Future<void> attachLoadBalancerTargetGroups({
  1. required String autoScalingGroupName,
  2. required List<String> targetGroupARNs,
})
Attaches one or more target groups to the specified Auto Scaling group.

This operation is used with the following load balancer types:

  • Application Load Balancer - Operates at the application layer (layer 7) and supports HTTP and HTTPS.
  • Network Load Balancer - Operates at the transport layer (layer 4) and supports TCP, TLS, and UDP.
  • Gateway Load Balancer - Operates at the network layer (layer 3).
To describe the target groups for an Auto Scaling group, call the DescribeLoadBalancerTargetGroups API. To detach the target group from the Auto Scaling group, call the DetachLoadBalancerTargetGroups API.

This operation is additive and does not detach existing target groups or Classic Load Balancers from the Auto Scaling group.

For more information, see Use Elastic Load Balancing to distribute traffic across the instances in your Auto Scaling group in the Amazon EC2 Auto Scaling User Guide.

May throw InstanceRefreshInProgressFault. May throw ResourceContentionFault. May throw ServiceLinkedRoleFailure.

Parameter autoScalingGroupName : The name of the Auto Scaling group.

Parameter targetGroupARNs : The Amazon Resource Names (ARNs) of the target groups. You can specify up to 10 target groups. To get the ARN of a target group, use the Elastic Load Balancing DescribeTargetGroups API operation.

Implementation

Future<void> attachLoadBalancerTargetGroups({
  required String autoScalingGroupName,
  required List<String> targetGroupARNs,
}) async {
  final $request = <String, String>{
    'AutoScalingGroupName': autoScalingGroupName,
    if (targetGroupARNs.isEmpty)
      'TargetGroupARNs': ''
    else
      for (var i1 = 0; i1 < targetGroupARNs.length; i1++)
        'TargetGroupARNs.member.${i1 + 1}': targetGroupARNs[i1],
  };
  await _protocol.send(
    $request,
    action: 'AttachLoadBalancerTargetGroups',
    version: '2011-01-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'AttachLoadBalancerTargetGroupsResult',
  );
}