Tipos de ação para regras de ouvinte - Elastic Load Balancing

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á.

Tipos de ação para regras de ouvinte

As ações determinam como um balanceador de carga trata as solicitações quando as condições de uma regra de ouvinte são satisfeitas. Cada regra deve ter pelo menos uma ação que especifique como lidar com as solicitações correspondentes. Cada ação de regra tem um tipo e informações de configuração. Os Application Load Balancers oferecem suporte aos seguintes tipos de ação para regras de ouvinte.

Tipos de ação
authenticate-cognito

[Receptores HTTPS] Use o Amazon Cognito para autenticar usuários. Para obter mais informações, consulte Configurar a autenticação de usuários.

authenticate-oidc

[Listeners HTTPS] Usa um provedor de identidade compatível com OpenID Connect (OIDC) para autenticar usuários. Para obter mais informações, consulte Configurar a autenticação de usuários.

fixed-response

Retorna uma resposta HTTP personalizada. Para obter mais informações, consulte Ações de resposta fixa.

forward

Encaminha as solicitações para os grupos de destino especificados. Para obter mais informações, consulte Ações de encaminhamento.

redirect

Redireciona solicitações de um URL para outro. Para obter mais informações, consulte Ações de redirecionamento.

Princípios básicos da ação
  • Cada regra deve incluir exatamente uma das seguintes ações de roteamento:forward,redirect, oufixed-response, e deve ser a última ação a ser executada.

  • Um ouvinte HTTPS pode ter uma regra com uma ação de autenticação do usuário e uma ação de roteamento.

  • Quando há várias ações, a ação com a menor prioridade é executada primeiro.

  • Se a versão do protocolo for gRPC ou HTTP/2, as únicas ações compatíveis serão ações forward.

Ações de resposta fixa

Uma fixed-response ação descarta as solicitações do cliente e retorna uma resposta HTTP personalizada. Você pode usar essa ação para retornar um código de resposta 2XX, 4XX e 5XX e uma mensagem opcional.

Quando uma ação de fixed-response é executada, a ação e o URL do destino do redirecionamento são registrados no logs de acesso. Para obter mais informações, consulte Entradas do log de acesso. A contagem de ações de fixed-response com êxito é relatada na métrica HTTP_Fixed_Response_Count. Para obter mais informações, consulte Métricas do Application Load Balancer.

exemplo Exemplo de ação de resposta fixa para o AWS CLI

Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir envia uma resposta fixa com o código de status e o corpo da mensagem especificados.

[ { "Type": "fixed-response", "FixedResponseConfig": { "StatusCode": "200", "ContentType": "text/plain", "MessageBody": "Hello world" } } ]

Ações de encaminhamento

Uma ação de forward faz o roteamento das solicitações para seu grupo de destino. Antes de adicionar uma ação forward, crie o grupo de destino e adicione destinos a ele. Para obter mais informações, consulte Criar um grupo de destino para o Application Load Balancer.

Se especificar vários grupos de destino para uma ação forward, você deverá especificar um peso para cada grupo de destino. Cada peso de grupo de destino é um valor de 0 a 999. As solicitações que correspondem a uma regra de listener com grupos de destino ponderados são distribuídas para esses grupos de destino com base em seus pesos. Por exemplo, se você especificar dois grupos de destino, cada um com um peso de 10, cada grupo de destino receberá metade das solicitações. Se você especificar dois grupos de destino, um com peso de 10 e o outro com peso de 20, o grupo de destino com peso de 20 receberá duas vezes mais solicitações do que o outro grupo de destino.

Se você configurar uma regra para distribuir o tráfego entre grupos de destino ponderados e um dos grupos de destino estiver vazio ou tiver apenas alvos não íntegros, o balanceador de carga não fará o failover automaticamente para um grupo-alvo com alvos íntegros.

Por padrão, configurar uma regra para distribuir o tráfego entre grupos de destino ponderados não garante que as sticky sessions sejam honradas. Para garantir que as sticky sessions sejam honradas, habilite a perdurabilidade do grupo de destino para a regra. Quando o balanceador de carga encaminha pela primeira vez uma solicitação para um grupo-alvo ponderado, ele gera um cookie chamado AWSALBTG que codifica informações sobre o grupo-alvo selecionado, criptografa o cookie e inclui o cookie na resposta ao cliente. O cliente deve incluir o cookie recebido nas solicitações subsequentes ao load balancer. Quando o load balancer recebe uma solicitação que corresponde a uma regra com a perdurabilidade do grupo de destino habilitada e contém o cookie, a solicitação é roteada para o grupo de destino especificado no cookie.

Os Application Load Balancers não são compatíveis com valores de cookie codificados por URL.

Com solicitações de CORS (cross-origin resource sharing, compartilhamento de recursos de origem cruzada), alguns navegadores exigem SameSite=None; Secure para habilitar a perdurabilidade. Nesse caso, o Elastic Load Balancing gera um segundo cookie AWSALBTGCORS, que inclui as mesmas informações do cookie de aderência original mais esse atributo. SameSite Os clientes recebem ambos os cookies.

exemplo Exemplo de ação de encaminhamento com um grupo de destino

Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir encaminha solicitações para o grupo de destino especificado.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/my-targets/73e2d6bc24d8a067" } ] } } ]
exemplo Exemplo de ação de encaminhamento com dois grupos ponderados de destino

A ação a seguir encaminha solicitações para os dois grupos de destino especificados, com base no peso de cada grupo de destino.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59", "Weight": 20 } ] } } ]
exemplo Exemplo de ação de encaminhamento com perdurabilidade habilitada

Se você tiver uma regra de encaminhamento com vários grupos de destino e um ou mais grupos de destino tiver sessões persistentes habilitadas, você deverá habilitar a perdurabilidade do grupo de destino.

A ação a seguir encaminha solicitações para os dois grupos de destino especificados, com a perdurabilidade do grupo de destino habilitada. As solicitações que não contêm os cookies de perdurabilidade são roteadas com base no peso de cada grupo de destino.

[ { "Type": "forward", "ForwardConfig": { "TargetGroups": [ { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/blue-targets/73e2d6bc24d8a067", "Weight": 10 }, { "TargetGroupArn": "arn:aws:elasticloadbalancing:us-west-2:123456789012:targetgroup/green-targets/09966783158cda59", "Weight": 20 } ], "TargetGroupStickinessConfig": { "Enabled": true, "DurationSeconds": 1000 } } } ]

Ações de redirecionamento

Uma redirect ação redireciona as solicitações do cliente de uma URL para outra. Você pode configurar redirecionamentos como temporários (HTTP 302) ou permanentes (HTTP 301) com base em suas necessidades.

Um URI consiste nos seguintes componentes:

protocol://hostname:port/path?query

Você deve modificar pelo menos um dos seguintes componentes para evitar um loop de redirecionamento: protocolo, nome do host, porta ou caminho. Todos os componentes que você não modificar manterão seus valores originais.

protocolo

O protocolo (HTTP or HTTPS). Você pode redirecionar HTTP para HTTP, HTTP para HTTPS e HTTPS para HTTPS. Você não pode redirecionar HTTPS para HTTP.

hostname

O nome do host. Um nome de host não diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e consiste em caracteres alfanuméricos, curingas (* e ?) e hifens (-).

porta

A porta (1 a 65535).

caminho

O caminho absoluto, começando com a "/" inicial. Um caminho diferencia maiúsculas de minúsculas, pode ter até 128 caracteres e consiste em caracteres alfanuméricos, curingas (* e ?), & (usando &) e nos seguintes caracteres especiais: _-.$/~"'@:+.

consulta

Os parâmetros da consulta. O tamanho máximo é 128 caracteres.

Você pode reutilizar os componentes do URI do URL original no URL de destino usando as seguintes palavras-chave reservadas:

  • #{protocol} – mantém o protocolo. Use no protocolo e nos componentes de consulta.

  • #{host} – mantém o domínio. Use no nome de host, no caminho e nos componentes de consulta.

  • #{port} – mantém a porta. Use na porta, no caminho e nos componentes de consulta.

  • #{path} – mantém o caminho. Use no caminho e nos componentes de consulta.

  • #{query} – mantém os parâmetros da consulta. Use no componente de consulta.

Quando uma ação de redirect é executada, a ação é registrada nos logs de acesso. Para obter mais informações, consulte Entradas do log de acesso. A contagem de ações de redirect com êxito é relatada na métrica HTTP_Redirect_Count. Para obter mais informações, consulte Métricas do Application Load Balancer.

exemplo Exemplo de ações de redirecionamento usando o console

A regra a seguir define um redirecionamento permanente para um URL que usa o protocolo HTTPS e a porta especificada (40443), mas mantém o nome do host, o caminho e os parâmetros de consulta originais. Esta tela é equivalente a "https://#{host}:40443/#{path}?#{query}".

Uma regra que redireciona a solicitação para um URL que usa o protocolo HTTPS e a porta especificada (40443), mas mantém o domínio, o caminho e os parâmetros de consulta originais do URL original.

A seguinte regra define um redirecionamento permanente para um URL que usa o protocolo, a porta, nome de host e os parâmetros de consulta originais, e usa a palavra-chave #{path} para criar um caminho modificado. Esta tela é equivalente a "#{protocol}://#{host}:#{port}/new/#{path}?#{query}".

Uma regra que redireciona a solicitação para um URL que retém o protocolo, a porta, o nome de host e os parâmetros de consulta originais, e usa a palavra-chave #{path} para criar um caminho modificado.
exemplo Exemplo de ação de redirecionamento para o AWS CLI

Você pode especificar uma ação ao criar ou modificar uma regra. Para obter mais informações, consulte os comandos create-rule e modify-rule. A ação a seguir redireciona uma solicitação HTTP para uma solicitação HTTPS na porta 443, com o mesmo nome de host, caminho e string de consulta que a solicitação HTTP.

[ { "Type": "redirect", "RedirectConfig": { "Protocol": "HTTPS", "Port": "443", "Host": "#{host}", "Path": "/#{path}", "Query": "#{query}", "StatusCode": "HTTP_301" } } ]