ElasticLoadBalancingv2 / Client / register_targets

register_targets#

ElasticLoadBalancingv2.Client.register_targets(**kwargs)#

Registers the specified targets with the specified target group.

If the target is an EC2 instance, it must be in the running state when you register it.

By default, the load balancer routes requests to registered targets using the protocol and port for the target group. Alternatively, you can override the port for a target when you register it. You can register each EC2 instance or IP address with the same target group multiple times using different ports.

With a Network Load Balancer, you can’t register instances by instance ID if they have the following instance types: C1, CC1, CC2, CG1, CG2, CR1, CS1, G1, G2, HI1, HS1, M1, M2, M3, and T1. You can register instances of these types by IP address.

See also: AWS API Documentation

Request Syntax

response = client.register_targets(
    TargetGroupArn='string',
    Targets=[
        {
            'Id': 'string',
            'Port': 123,
            'AvailabilityZone': 'string'
        },
    ]
)
Parameters:
  • TargetGroupArn (string) –

    [REQUIRED]

    The Amazon Resource Name (ARN) of the target group.

  • Targets (list) –

    [REQUIRED]

    The targets.

    • (dict) –

      Information about a target.

      • Id (string) – [REQUIRED]

        The ID of the target. If the target type of the target group is instance, specify an instance ID. If the target type is ip, specify an IP address. If the target type is lambda, specify the ARN of the Lambda function. If the target type is alb, specify the ARN of the Application Load Balancer target.

      • Port (integer) –

        The port on which the target is listening. If the target group protocol is GENEVE, the supported port is 6081. If the target type is alb, the targeted Application Load Balancer must have at least one listener whose port matches the target group port. This parameter is not used if the target is a Lambda function.

      • AvailabilityZone (string) –

        An Availability Zone or all. This determines whether the target receives traffic from the load balancer nodes in the specified Availability Zone or from all enabled Availability Zones for the load balancer.

        For Application Load Balancer target groups, the specified Availability Zone value is only applicable when cross-zone load balancing is off. Otherwise the parameter is ignored and treated as all.

        This parameter is not supported if the target type of the target group is instance or alb.

        If the target type is ip and the IP address is in a subnet of the VPC for the target group, the Availability Zone is automatically detected and this parameter is optional. If the IP address is outside the VPC, this parameter is required.

        For Application Load Balancer target groups with cross-zone load balancing off, if the target type is ip and the IP address is outside of the VPC for the target group, this should be an Availability Zone inside the VPC for the target group.

        If the target type is lambda, this parameter is optional and the only supported value is all.

Return type:

dict

Returns:

Response Syntax

{}

Response Structure

  • (dict) –

Exceptions

  • ElasticLoadBalancingv2.Client.exceptions.TargetGroupNotFoundException

  • ElasticLoadBalancingv2.Client.exceptions.TooManyTargetsException

  • ElasticLoadBalancingv2.Client.exceptions.InvalidTargetException

  • ElasticLoadBalancingv2.Client.exceptions.TooManyRegistrationsForTargetIdException

Examples

This example registers the specified instances with the specified target group.

response = client.register_targets(
    TargetGroupArn='arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067',
    Targets=[
        {
            'Id': 'i-80c8dd94',
        },
        {
            'Id': 'i-ceddcd4d',
        },
    ],
)

print(response)

Expected Output:

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

This example registers the specified instance with the specified target group using multiple ports. This enables you to register ECS containers on the same instance as targets in the target group.

response = client.register_targets(
    TargetGroupArn='arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-new-targets/3bb63f11dfb0faf9',
    Targets=[
        {
            'Id': 'i-80c8dd94',
            'Port': 80,
        },
        {
            'Id': 'i-80c8dd94',
            'Port': 766,
        },
    ],
)

print(response)

Expected Output:

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