

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

# Adicionar uma regra de receptor para seu Application Load Balancer
<a name="add-rule"></a>

Você define as ações para a regra padrão ao criar um receptor. É possível definir regras adicionais a qualquer momento. Cada regra deve especificar uma ação e uma condição e, de forma opcional, pode especificar transformações. Para saber mais, consulte:
+ [Tipos de ação](rule-action-types.md)
+ [Tipos de condição](rule-condition-types.md)
+ [Transformações](rule-transforms.md)

------
#### [ Console ]

**Para adicionar uma regra**

1. Abra o console do Amazon EC2 em [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. No painel de navegação, selecione **Balanceador de carga**.

1. Selecione o load balancer.

1. Na guia **Receptores e regras**, selecione o texto na coluna **Protocolo:Porta** para abrir a página de detalhes do receptor.

1. Na guia **Regras**, selecione **Adicionar regra**.

1. (Opcional) Para especificar um nome para sua regra, expanda **Nome e tags** e insira o nome. Para adicionar tags adicionais, escolha **Adicionar tags adicionais** e insira a chave e o valor da tag.

1. Para cada condição, selecione **Adicionar condição**, escolha o tipo de condição e insira os valores de condição necessários:
   + **Cabeçalho do host**: selecione o tipo de padrão de correspondência e insira o cabeçalho do host.

     **Correspondência de valores**: máximo de 128 caracteres. Não diferencia maiúsculas de minúsculas. Os caracteres permitidos são a-z, A-Z, 0-9 e os seguintes caracteres especiais: -\$1.; e curingas (\$1 e ?). É necessário incluir pelo menos um caractere ".". Você pode incluir somente caracteres alfabéticos após o "." final.

     **Correspondência de regex**: máximo de 128 caracteres.
   + **Caminho**: selecione o tipo de padrão de correspondência e insira o caminho.

     **Correspondência de valores**: máximo de 128 caracteres. Diferencia maiúsculas e minúsculas. Os caracteres permitidos são a-z, A-Z, 0-9 e os seguintes caracteres especiais: \$1-.\$1/\$1"'@:\$1; &; e curingas (\$1 e ?).

     **Correspondência de regex**: máximo de 128 caracteres.
   + **Cadeia de caracteres de consulta**: insira pares chave-valor ou valores sem chaves.

     Máximo de 128 caracteres. Não diferencia maiúsculas de minúsculas. Os caracteres permitidos são a-z, A-Z, 0-9 e os seguintes caracteres especiais: \$1-.\$1/\$1"'@:\$1&()\$1,;=; e curingas (\$1 e ?).
   + **Método de solicitação HTTP**: insira o método de solicitação HTTP.

     Máximo de 40 caracteres. Diferencia maiúsculas e minúsculas. Os caracteres permitidos são A-Z e os seguintes caracteres especiais: -\$1. Curingas não são compatíveis.
   + **Cabeçalho HTTP**: selecione o tipo de padrão de correspondência e insira o nome do cabeçalho e das strings de comparação.
     + **Nome do cabeçalho HTTP**: a regra avaliará as solicitações que contêm esse cabeçalho para confirmar os valores correspondentes.

       **Correspondência de valores**: máximo de 40 caracteres. Não diferencia maiúsculas de minúsculas. Os caracteres permitidos são a-z, A-Z, 0-9 e os seguintes caracteres especiais: \$1?-\$1\$1\$1%&'\$1.^\$1`\$1\$1. Curingas não são compatíveis.

       **Correspondência de regex**: máximo de 128 caracteres.
     + **Valor do cabeçalho HTTP**: insira cadeias de caracteres para comparação com o valor do cabeçalho HTTP.

       **Correspondência de valores**: máximo de 128 caracteres. Não diferencia maiúsculas de minúsculas. Os caracteres permitidos são a-z, A-Z, 0-9, espaços e os seguintes caracteres especiais: \$1"\$1\$1%&'()\$1,./:;<=>@[]^\$1`\$1\$1\$1\$1-; e curingas (\$1 e ?).

       **Correspondência de regex**: máximo de 128 caracteres.
   + **IP de origem**: defina o endereço IP de origem no formato CIDR. Ambos IPv4 IPv6 CIDRs são permitidos. Curingas não são compatíveis.

1. (Opcional) Para adicionar uma transformação, selecione **Adicionar transformação**, selecione o tipo de transformação e insira uma expressão regular correspondente e uma string de substituição.

1. (Opcional, somente para ouvintes HTTPS) Para a **ação de pré-roteamento**, selecione uma das seguintes ações:
   + **Autenticar usuário** — Escolha um provedor de identidade e forneça as informações necessárias. Para obter mais informações, consulte [Autenticar usuários usando um Application Load Balancer](listener-authenticate-users.md).
   + **Validar o token** — insira o endpoint do JWKS, os problemas e quaisquer reivindicações adicionais. Para obter mais informações, consulte [Verifique JWTs usando um Application Load Balancer](listener-verify-jwt.md).

1. Em **Ação de roteamento**, selecione uma das seguintes ações:
   + **Encaminhar para um grupo de destino**: selecione um grupo de destino. Para adicionar outro grupo de destino, escolha **Adicionar grupo de destino**, selecione um grupo de destino, revise os pesos relativos e atualize os pesos conforme necessário. Se tiver habilitado a persistência em qualquer dos grupos de destino, você deverá ativar a persistência no nível de grupo.
   + **Redirecionar para URL**: insira o URL inserindo cada parte separadamente na guia de **Partes do URI** ou inserindo o endereço completo na guia **URL completo**. Em **Código de status**, selecione temporário (HTTP 302) ou permanente (HTTP 301) com base em suas necessidades.
   + **Retornar resposta fixa**: insira o **Código de resposta** para retornar às solicitações descartadas do cliente. Como opção, você também pode especificar o **Tipo de conteúdo** e o **Corpo da resposta**.

1. Escolha **Próximo**.

1. Em **Prioridade**, insira um valor de 1 a 50.000. As regras são avaliadas em ordem de prioridade, do valor mais baixo para o valor mais alto.

1. Escolha **Próximo**.

1. Na página **Review and create** (Revisar e criar), escolha **Create** (Criar).

------
#### [ AWS CLI ]

**Para adicionar uma regra**  
Use o comando [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html).

O exemplo mostrado a seguir cria uma regra com uma ação `forward` e uma condição `host-header`.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 10 \
    --conditions "Field=host-header,Values=example.com,www.example.com" \
    --actions "Type=forward,TargetGroupArn=target-group-arn"
```

Para criar uma ação de encaminhamento que distribua o tráfego entre dois grupos de destino, use a opção `--actions`, mostrada a seguir.

```
    --actions '[{
        "Type":"forward",
        "ForwardConfig":{
          "TargetGroups":[
            {"TargetGroupArn":"target-group-1-arn","Weight":50},
            {"TargetGroupArn":"target-group-2-arn","Weight":50}
          ]
        }
    }]'
```

O exemplo mostrado a seguir cria uma regra com uma ação `fixed-response` e uma condição `source-ip`.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 20 \
    --conditions '[{"Field":"source-ip","SourceIpConfig":{"Values":["192.168.1.0/24","10.0.0.0/16"]}}]' \
    --actions "Type=fixed-response,FixedResponseConfig={StatusCode=403,ContentType=text/plain,MessageBody='Access denied'}"
```

O exemplo mostrado a seguir cria uma regra com uma ação `redirect` e uma condição `http-header`.

```
aws elbv2 create-rule \
    --listener-arn listener-arn \
    --priority 30 \
    --conditions '[{"Field":"http-header","HttpHeaderConfig":{"HttpHeaderName":"User-Agent","Values":["*Mobile*","*Android*","*iPhone*"]}}]' \
    --actions "Type=redirect,RedirectConfig={Host=m.example.com,StatusCode=HTTP_302}"
```

------
#### [ CloudFormation ]

**Para adicionar uma regra**  
Defina um recurso do tipo [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html).

O exemplo mostrado a seguir cria uma regra com uma ação `forward` e uma condição `host-header`. A regra envia tráfego para o grupo de destino especificado quando a condição é atendida.

```
Resources:
    myForwardListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 10
       Conditions:
         - Field: host-header
           Values:
             - example.com
             - www.example.com
       Actions:
         - Type: forward
           TargetGroupArn: !Ref myTargetGroup
```

De forma alternativa, para criar uma ação de encaminhamento que distribua o tráfego entre dois grupos de destino quando a condição for atendida, defina `Actions` conforme mostrado a seguir.

```
       Actions:
         - Type: forward
           ForwardConfig:
             TargetGroups:
               - TargetGroupArn: !Ref TargetGroup1
                 Weight: 50
               - TargetGroupArn: !Ref TargetGroup2
                 Weight: 50
```

O exemplo mostrado a seguir cria uma regra com uma ação `fixed-response` e uma condição `source-ip`.

```
Resources:
    myFixedResponseListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 20
       Conditions:
         - Field: source-ip
           SourceIpConfig:
             Values:
                - 192.168.1.0/24
                - 10.0.0.0/16
       Actions:
         - Type: fixed-response
           FixedResponseConfig:
             StatusCode: 403
             ContentType: text/plain
             MessageBody: "Access denied"
```

O exemplo mostrado a seguir cria uma regra com uma ação `redirect` e uma condição `http-header`.

```
Resources:
    myRedirectListenerRule:
     Type: 'AWS::ElasticLoadBalancingV2::ListenerRule'
     Properties:
       ListenerArn: !Ref myListener
       Priority: 30
       Conditions:
         - Field: http-header
           HttpHeaderConfig:
             HttpHeaderName: User-Agent
             Values: 
               - "*Mobile*"
               - "*Android*"
               - "*iPhone*"
       Actions:
         - Type: redirect
           RedirectConfig:
             Host: m.example.com
             StatusCode: HTTP_302
```

------