Há mais exemplos de AWS SDK disponíveis no repositório AWS Doc SDK Examples
As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.
Use CreateListener com um AWS SDK ou CLI
Os exemplos de código a seguir mostram como usar o CreateListener.
Exemplos de ações são trechos de código de programas maiores e devem ser executados em contexto. É possível ver essa ação em contexto no seguinte exemplo de código:
- .NET
-
- SDK para .NET
-
nota
Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository
. /// <summary> /// Create an Elastic Load Balancing load balancer that uses the specified subnets /// and forwards requests to the specified target group. /// </summary> /// <param name="name">The name for the new load balancer.</param> /// <param name="subnetIds">Subnets for the load balancer.</param> /// <param name="targetGroup">Target group for forwarded requests.</param> /// <returns>The new LoadBalancer object.</returns> public async Task<LoadBalancer> CreateLoadBalancerAndListener(string name, List<string> subnetIds, TargetGroup targetGroup) { var createLbResponse = await _amazonElasticLoadBalancingV2.CreateLoadBalancerAsync( new CreateLoadBalancerRequest() { Name = name, Subnets = subnetIds }); var loadBalancerArn = createLbResponse.LoadBalancers[0].LoadBalancerArn; // Wait for load balancer to be available. var loadBalancerReady = false; while (!loadBalancerReady) { try { var describeResponse = await _amazonElasticLoadBalancingV2.DescribeLoadBalancersAsync( new DescribeLoadBalancersRequest() { Names = new List<string>() { name } }); var loadBalancerState = describeResponse.LoadBalancers[0].State.Code; loadBalancerReady = loadBalancerState == LoadBalancerStateEnum.Active; } catch (LoadBalancerNotFoundException) { loadBalancerReady = false; } Thread.Sleep(10000); } // Create the listener. await _amazonElasticLoadBalancingV2.CreateListenerAsync( new CreateListenerRequest() { LoadBalancerArn = loadBalancerArn, Protocol = targetGroup.Protocol, Port = targetGroup.Port, DefaultActions = new List<Action>() { new Action() { Type = ActionTypeEnum.Forward, TargetGroupArn = targetGroup.TargetGroupArn } } }); return createLbResponse.LoadBalancers[0]; }-
Para obter detalhes da API, consulte CreateListenera Referência AWS SDK para .NET da API.
-
- CLI
-
- AWS CLI
-
Exemplo 1: como criar um receptor HTTP
O exemplo de
create-listenera seguir cria um receptor HTTP para o Application Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado.aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188\ --protocolHTTP\ --port80\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067Para obter mais informações, consulte Tutorial: Criar um Application Load Balancer usando a AWS CLI no Guia do usuário para Application Load Balancers.
Exemplo 2: como criar um receptor HTTPS
O exemplo de
create-listenera seguir cria um receptor HTTPS para o Application Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado. É necessário especificar um certificado SSL para um receptor HTTPS. Você pode criar e gerenciar certificados usando o AWS Certificate Manager (ACM). Como alternativa, você pode criar um certificado usando SSL/TLS ferramentas, obter o certificado assinado por uma autoridade de certificação (CA) e fazer o upload do certificado no AWS Identity and Access Management (IAM).aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188\ --protocolHTTPS\ --port443\ --certificatesCertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/3dcb0a41-bd72-4774-9ad9-756919c40557\ --ssl-policyELBSecurityPolicy-2016-08\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067Para obter mais informações, consulte Adicionar um receptor HTTPS no Guia do usuário de Application Load Balancers.
Exemplo 3: como criar um receptor TCP
O exemplo de
create-listenera seguir cria um receptor TCP para o Network Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado.aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-network-load-balancer/5d1b75f4f1cee11e\ --protocolTCP\ --port80\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-targets/b6bba954d1361c78Para obter mais informações, consulte Tutorial: Criar um Network Load Balancer usando a AWS CLI no Guia do usuário para Network Load Balancers.
Exemplo 4: como criar um receptor TLS
O exemplo de
create-listenera seguir cria um receptor TLS para o Network Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado. É necessário especificar um certificado SSL para um listener TLS.aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188\ --protocolTLS\ --port443\ --certificatesCertificateArn=arn:aws:acm:us-west-2:123456789012:certificate/3dcb0a41-bd72-4774-9ad9-756919c40557\ --ssl-policyELBSecurityPolicy-2016-08\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067Para obter mais informações, consulte Listeners TLS para o Network Load Balancer no Guia do usuário dos Network Load Balancers.
Exemplo 5: como criar um receptor UDP
O exemplo de
create-listenera seguir cria um receptor UDP para o Network Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado.aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/net/my-network-load-balancer/5d1b75f4f1cee11e\ --protocolUDP\ --port53\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-tcp-targets/b6bba954d1361c78Para obter mais informações, consulte Tutorial: Criar um Network Load Balancer usando a AWS CLI no Guia do usuário para Network Load Balancers.
Exemplo 6: como criar um receptor para o gateway e encaminhamento especificados
O exemplo de
create-listenera seguir cria um receptor para o Gateway Load Balancer especificado. Esse receptor encaminha as solicitações para o grupo de destino especificado.aws elbv2 create-listener \ --load-balancer-arnarn:aws:elasticloadbalancing:us-east-1:850631746142:loadbalancer/gwy/my-gateway-load-balancer/e0f9b3d5c7f7d3d6\ --default-actionsType=forward,TargetGroupArn=arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/my-glb-targets/007ca469fae3bb1615Saída:
{ "Listeners": [ { "ListenerArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:listener/gwy/my-agw-lb-example2/e0f9b3d5c7f7d3d6/afc127db15f925de", "LoadBalancerArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:loadbalancer/gwy/my-agw-lb-example2/e0f9b3d5c7f7d3d6", "DefaultActions": [ { "Type": "forward", "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/test-tg-agw-2/007ca469fae3bb1615", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-east-1:850631746142:targetgroup/test-tg-agw-2/007ca469fae3bb1615" } ] } } ] } ] }Para obter mais informações, consulte Introdução aos balanceadores de carga de gateway usando a AWS CLI no Guia do usuário para balanceadores de carga de gateway.
-
Para obter detalhes da API, consulte CreateListener
em Referência de AWS CLI Comandos.
-
- Java
-
- SDK para Java 2.x
-
nota
Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository
. /* * Creates an Elastic Load Balancing load balancer that uses the specified * subnets * and forwards requests to the specified target group. */ public String createLoadBalancer(List<Subnet> subnetIds, String targetGroupARN, String lbName, int port, String protocol) { try { List<String> subnetIdStrings = subnetIds.stream() .map(Subnet::subnetId) .collect(Collectors.toList()); CreateLoadBalancerRequest balancerRequest = CreateLoadBalancerRequest.builder() .subnets(subnetIdStrings) .name(lbName) .scheme("internet-facing") .build(); // Create and wait for the load balancer to become available. CreateLoadBalancerResponse lsResponse = getLoadBalancerClient().createLoadBalancer(balancerRequest); String lbARN = lsResponse.loadBalancers().get(0).loadBalancerArn(); ElasticLoadBalancingV2Waiter loadBalancerWaiter = getLoadBalancerClient().waiter(); DescribeLoadBalancersRequest request = DescribeLoadBalancersRequest.builder() .loadBalancerArns(lbARN) .build(); System.out.println("Waiting for Load Balancer " + lbName + " to become available."); WaiterResponse<DescribeLoadBalancersResponse> waiterResponse = loadBalancerWaiter .waitUntilLoadBalancerAvailable(request); waiterResponse.matched().response().ifPresent(System.out::println); System.out.println("Load Balancer " + lbName + " is available."); // Get the DNS name (endpoint) of the load balancer. String lbDNSName = lsResponse.loadBalancers().get(0).dnsName(); System.out.println("*** Load Balancer DNS Name: " + lbDNSName); // Create a listener for the load balance. Action action = Action.builder() .targetGroupArn(targetGroupARN) .type("forward") .build(); CreateListenerRequest listenerRequest = CreateListenerRequest.builder() .loadBalancerArn(lsResponse.loadBalancers().get(0).loadBalancerArn()) .defaultActions(action) .port(port) .protocol(protocol) .build(); getLoadBalancerClient().createListener(listenerRequest); System.out.println("Created listener to forward traffic from load balancer " + lbName + " to target group " + targetGroupARN); // Return the load balancer DNS name. return lbDNSName; } catch (ElasticLoadBalancingV2Exception e) { e.printStackTrace(); } return ""; }-
Para obter detalhes da API, consulte CreateListenera Referência AWS SDK for Java 2.x da API.
-
- JavaScript
-
- SDK para JavaScript (v3)
-
nota
Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository
. const client = new ElasticLoadBalancingV2Client({}); const { Listeners } = await client.send( new CreateListenerCommand({ LoadBalancerArn: state.loadBalancerArn, Protocol: state.targetGroupProtocol, Port: state.targetGroupPort, DefaultActions: [ { Type: "forward", TargetGroupArn: state.targetGroupArn }, ], }), );-
Para obter detalhes da API, consulte CreateListenera Referência AWS SDK para JavaScript da API.
-
- PowerShell
-
- Ferramentas para PowerShell V4
-
Exemplo 1: Este exemplo cria um novo ouvinte do ALB com a ação padrão 'Encaminhar' para enviar tráfego para o grupo-alvo especificado.
$defaultAction = [Amazon.ElasticLoadBalancingV2.Model.Action]@{ ForwardConfig = @{ TargetGroups = @( @{ TargetGroupArn = "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/testAlbTG/3d61c2f20aa5bccb" } ) TargetGroupStickinessConfig = @{ DurationSeconds = 900 Enabled = $true } } Type = "Forward" } New-ELB2Listener -LoadBalancerArn 'arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/testALB/3e2f03b558e19676' -Port 8001 -Protocol "HTTP" -DefaultAction $defaultActionSaída:
Certificates : {} DefaultActions : {Amazon.ElasticLoadBalancingV2.Model.Action} ListenerArn : arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/testALB/3e2f03b558e19676/1c84f02aec143e80 LoadBalancerArn : arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/testALB/3e2f03b558e19676 Port : 8001 Protocol : HTTP SslPolicy :-
Para obter detalhes da API, consulte CreateListenerem Referência de Ferramentas da AWS para PowerShell cmdlet (V4).
-
- Ferramentas para PowerShell V5
-
Exemplo 1: Este exemplo cria um novo ouvinte do ALB com a ação padrão 'Encaminhar' para enviar tráfego para o grupo-alvo especificado.
$defaultAction = [Amazon.ElasticLoadBalancingV2.Model.Action]@{ ForwardConfig = @{ TargetGroups = @( @{ TargetGroupArn = "arn:aws:elasticloadbalancing:us-east-1:123456789012:targetgroup/testAlbTG/3d61c2f20aa5bccb" } ) TargetGroupStickinessConfig = @{ DurationSeconds = 900 Enabled = $true } } Type = "Forward" } New-ELB2Listener -LoadBalancerArn 'arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/testALB/3e2f03b558e19676' -Port 8001 -Protocol "HTTP" -DefaultAction $defaultActionSaída:
Certificates : {} DefaultActions : {Amazon.ElasticLoadBalancingV2.Model.Action} ListenerArn : arn:aws:elasticloadbalancing:us-east-1:123456789012:listener/app/testALB/3e2f03b558e19676/1c84f02aec143e80 LoadBalancerArn : arn:aws:elasticloadbalancing:us-east-1:123456789012:loadbalancer/app/testALB/3e2f03b558e19676 Port : 8001 Protocol : HTTP SslPolicy :-
Para obter detalhes da API, consulte CreateListenerem Referência de Ferramentas da AWS para PowerShell cmdlet (V5).
-
- Python
-
- SDK para Python (Boto3)
-
nota
Tem mais sobre GitHub. Encontre o exemplo completo e saiba como configurar e executar no AWS Code Examples Repository
. class ElasticLoadBalancerWrapper: """Encapsulates Elastic Load Balancing (ELB) actions.""" def __init__(self, elb_client: boto3.client): """ Initializes the LoadBalancer class with the necessary parameters. """ self.elb_client = elb_client def create_listener( self, load_balancer_name: str, target_group: Dict[str, Any], ) -> Dict[str, Any]: """ Creates a listener for the specified load balancer that forwards requests to the specified target group. :param load_balancer_name: The name of the load balancer to create a listener for. :param target_group: An existing target group that is added as a listener to the load balancer. :return: Data about the newly created listener. """ try: # Retrieve the load balancer ARN load_balancer_response = self.elb_client.describe_load_balancers( Names=[load_balancer_name] ) load_balancer_arn = load_balancer_response["LoadBalancers"][0][ "LoadBalancerArn" ] # Create the listener response = self.elb_client.create_listener( LoadBalancerArn=load_balancer_arn, Protocol=target_group["Protocol"], Port=target_group["Port"], DefaultActions=[ { "Type": "forward", "TargetGroupArn": target_group["TargetGroupArn"], } ], ) log.info( f"Created listener to forward traffic from load balancer '{load_balancer_name}' to target group '{target_group['TargetGroupName']}'." ) return response["Listeners"][0] except ClientError as err: error_code = err.response["Error"]["Code"] log.error( f"Failed to add a listener on '{load_balancer_name}' for target group '{target_group['TargetGroupName']}'." ) if error_code == "ListenerNotFoundException": log.error( f"The listener could not be found for the load balancer '{load_balancer_name}'. " "Please check the load balancer name and target group configuration." ) if error_code == "InvalidConfigurationRequestException": log.error( f"The configuration provided for the listener on load balancer '{load_balancer_name}' is invalid. " "Please review the provided protocol, port, and target group settings." ) log.error(f"Full error:\n\t{err}")-
Para obter detalhes da API, consulte a CreateListenerReferência da API AWS SDK for Python (Boto3).
-