:doc:`AutoScaling <../../autoscaling>` / Client / attach_traffic_sources

**********************
attach_traffic_sources
**********************



.. py:method:: AutoScaling.Client.attach_traffic_sources(**kwargs)

  

  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 <https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DescribeTrafficSources.html>`__ 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 <https://docs.aws.amazon.com/autoscaling/ec2/APIReference/API_DetachTrafficSources.html>`__ API.

  

  See also: `AWS API Documentation <https://docs.aws.amazon.com/goto/WebAPI/autoscaling-2011-01-01/AttachTrafficSources>`_  


  **Request Syntax**
  ::

    response = client.attach_traffic_sources(
        AutoScalingGroupName='string',
        TrafficSources=[
            {
                'Identifier': 'string',
                'Type': 'string'
            },
        ],
        SkipZonalShiftValidation=True|False
    )
    
  :type AutoScalingGroupName: string
  :param AutoScalingGroupName: **[REQUIRED]** 

    The name of the Auto Scaling group.

    

  
  :type TrafficSources: list
  :param TrafficSources: **[REQUIRED]** 

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

    

  
    - *(dict) --* 

      Identifying information for a traffic source.

      

    
      - **Identifier** *(string) --* **[REQUIRED]** 

        Identifies the traffic source.

         

        For Application Load Balancers, Gateway Load Balancers, Network Load Balancers, and VPC Lattice, this will be the Amazon Resource Name (ARN) for a target group in this account and Region. For Classic Load Balancers, this will be the name of the Classic Load Balancer in this account and Region.

         

        For example:

         

        
        * Application Load Balancer ARN: ``arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/1234567890123456``
         
        * Classic Load Balancer name: ``my-classic-load-balancer``
         
        * VPC Lattice ARN: ``arn:aws:vpc-lattice:us-west-2:123456789012:targetgroup/tg-1234567890123456``
        

         

        To get the ARN of a target group for a Application Load Balancer, Gateway Load Balancer, or Network Load Balancer, or the name of a Classic Load Balancer, use the Elastic Load Balancing `DescribeTargetGroups <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeTargetGroups.html>`__ and `DescribeLoadBalancers <https://docs.aws.amazon.com/elasticloadbalancing/latest/APIReference/API_DescribeLoadBalancers.html>`__ API operations.

         

        To get the ARN of a target group for VPC Lattice, use the VPC Lattice `GetTargetGroup <https://docs.aws.amazon.com/vpc-lattice/latest/APIReference/API_GetTargetGroup.html>`__ API operation.

        

      
      - **Type** *(string) --* 

        Provides additional context for the value of ``Identifier``.

         

        The following lists the valid values:

         

        
        * ``elb`` if ``Identifier`` is the name of a Classic Load Balancer.
         
        * ``elbv2`` if ``Identifier`` is the ARN of an Application Load Balancer, Gateway Load Balancer, or Network Load Balancer target group.
         
        * ``vpc-lattice`` if ``Identifier`` is the ARN of a VPC Lattice target group.
        

         

        Required if the identifier is the name of a Classic Load Balancer.

        

      
    

  :type SkipZonalShiftValidation: boolean
  :param 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 <https://docs.aws.amazon.com/autoscaling/ec2/userguide/ec2-auto-scaling-zonal-shift.html>`__ in the *Amazon EC2 Auto Scaling User Guide*.

    

  
  
  :rtype: dict
  :returns: 
    
    **Response Syntax**

    
    ::

      {}
      
    **Response Structure**

    

    - *(dict) --* 
  
  **Exceptions**
  
  *   :py:class:`AutoScaling.Client.exceptions.ResourceContentionFault`

  
  *   :py:class:`AutoScaling.Client.exceptions.ServiceLinkedRoleFailure`

  
  *   :py:class:`AutoScaling.Client.exceptions.InstanceRefreshInProgressFault`

  

  **Examples**

  This example attaches the specified target group to the specified Auto Scaling group.
  ::

    response = client.attach_traffic_sources(
        AutoScalingGroupName='my-auto-scaling-group',
        TrafficSources=[
            {
                'Identifier': 'arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
            },
        ],
    )
    
    print(response)

  
  Expected Output:
  ::

    {
        'ResponseMetadata': {
            '...': '...',
        },
    }

  