attachTrafficSources method

Future<void> attachTrafficSources({
  1. required String autoScalingGroupName,
  2. required List<TrafficSourceIdentifier> trafficSources,
  3. bool? skipZonalShiftValidation,
})

Attaches one or more traffic sources to the specified Auto Scaling group.

You can use any of the following as traffic sources for an Auto Scaling group:

  • Application Load Balancer
  • Classic Load Balancer
  • Gateway Load Balancer
  • Network Load Balancer
  • VPC Lattice
This operation is additive and does not detach existing traffic sources from the Auto Scaling group.

After the operation completes, use the DescribeTrafficSources API to return details about the state of the attachments between traffic sources and your Auto Scaling group. To detach a traffic source from the Auto Scaling group, call the DetachTrafficSources API.

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

Parameter autoScalingGroupName : The name of the Auto Scaling group.

Parameter trafficSources : The unique identifiers of one or more traffic sources. You can specify up to 10 traffic sources.

Parameter skipZonalShiftValidation : If you enable zonal shift with cross-zone disabled load balancers, capacity could become imbalanced across Availability Zones. To skip the validation, specify true. For more information, see Auto Scaling group zonal shift in the Amazon EC2 Auto Scaling User Guide.

Implementation

Future<void> attachTrafficSources({
  required String autoScalingGroupName,
  required List<TrafficSourceIdentifier> trafficSources,
  bool? skipZonalShiftValidation,
}) async {
  final $request = <String, String>{
    'AutoScalingGroupName': autoScalingGroupName,
    if (trafficSources.isEmpty)
      'TrafficSources': ''
    else
      for (var i1 = 0; i1 < trafficSources.length; i1++)
        for (var e3 in trafficSources[i1].toQueryMap().entries)
          'TrafficSources.member.${i1 + 1}.${e3.key}': e3.value,
    if (skipZonalShiftValidation != null)
      'SkipZonalShiftValidation': skipZonalShiftValidation.toString(),
  };
  await _protocol.send(
    $request,
    action: 'AttachTrafficSources',
    version: '2011-01-01',
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    resultWrapper: 'AttachTrafficSourcesResult',
  );
}