

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Aggiungi una regola listener per il tuo Application Load Balancer
<a name="add-rule"></a>

Definisci una regola predefinita quando crei un listener. È possibile definire regole aggiuntive in qualsiasi momento. Ogni regola deve specificare un'azione e una condizione e può facoltativamente specificare trasformazioni. Per ulteriori informazioni, consulta gli argomenti seguenti:
+ [Tipi di operazione](rule-action-types.md)
+ [Tipi di condizioni](rule-condition-types.md)
+ [Trasformazioni](rule-transforms.md)

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

**Per aggiungere una regola**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Seleziona **Sistemi di bilanciamento del carico** nel riquadro di navigazione.

1. Selezionare il load balancer.

1. Nella scheda **Ascoltatori e regole**, seleziona il testo nella colonna **Protocollo:Porta** per aprire la pagina dei dettagli dell'ascoltatore.

1. Nella scheda **Regole** scegliere **Aggiungi regola**.

1. (Facoltativo) Per specificare un nome per la regola, espandi **Nome e tag e** inserisci il nome. Per aggiungere altri tag, scegli **Aggiungi tag aggiuntivi** e inserisci la chiave del tag e il valore del tag.

1. Per ogni condizione, scegli **Aggiungi condizione**, scegli il tipo di condizione e fornisci i valori di condizione richiesti:
   + **Intestazione host**: seleziona il tipo di pattern di corrispondenza e inserisci l'intestazione dell'host.

     **Corrispondenza dei valori**: massimo 128 caratteri. Non prevede una distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono a-z, A-Z, 0-9, i caratteri speciali -\$1. e i caratteri jolly (\$1 e ?). Si deve includere il carattere "." almeno una volta. Dopo l'ultimo carattere "." è possibile includere solo caratteri alfabetici.

     **Corrispondenza regex**: massimo 128 caratteri.
   + **Percorso**: seleziona il tipo di modello di corrispondenza e inserisci il percorso.

     **Corrispondenza dei valori**: massimo 128 caratteri. Distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono a-z, A-Z, 0-9, i caratteri speciali \$1-.\$1/\$1"'@:\$1; & e i caratteri jolly (\$1 e ?).

     **Corrispondenza regex**: massimo 128 caratteri.
   + **Stringa di query**: immettete coppie chiave:valore o valori senza chiavi.

     Massimo 128 caratteri. Non prevede una distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono a-z, A-Z, 0-9, i caratteri speciali \$1-.\$1/\$1"'@:\$1&()\$1,;= e i caratteri jolly (\$1 e ?).
   + **Metodo di richiesta HTTP**: immettere il metodo di richiesta HTTP.

     Massimo 40 caratteri. Distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono A-Z e i caratteri speciali -\$1. I caratteri jolly non sono supportati.
   + **Intestazione HTTP**: seleziona il tipo di modello di corrispondenza e inserisci il nome dell'intestazione e le stringhe di confronto.
     + **Nome dell'intestazione HTTP**: la regola valuterà le richieste che contengono questa intestazione per confermare i valori corrispondenti.

       **Corrispondenza dei valori**: massimo 40 caratteri. Non prevede una distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono a-z, A-Z, 0-9 e i caratteri speciali \$1?-\$1\$1\$1%&'\$1.^\$1`\$1\$1. I caratteri jolly non sono supportati.

       **Corrispondenza regex**: massimo 128 caratteri.
     + **Valore dell'intestazione HTTP**: inserire stringhe da confrontare rispetto al valore dell'intestazione HTTP.

       **Valore corrispondente**: massimo 128 caratteri. Non prevede una distinzione tra lettere maiuscole e minuscole. I caratteri consentiti sono a-z, A-Z, 0-9; gli spazi; i seguenti caratteri speciali:\$1» \$1\$1%&' () \$1,. /:; <=>@ [] ^\$1` \$1\$1\$1 \$1-; e caratteri jolly (\$1 e?).

       **Corrispondenza Regex**: massimo 128 caratteri.
   + **IP sorgente**: definire l'indirizzo IP sorgente in formato CIDR. Entrambi IPv4 IPv6 CIDRs sono consentiti. I caratteri jolly non sono supportati.

1. (Facoltativo) Per aggiungere una trasformazione, **scegliete Aggiungi trasformazione**, scegliete il tipo di trasformazione e immettete un'espressione regolare da abbinare e una stringa sostitutiva.

1. (Facoltativo, solo listener HTTPS) Per l'**azione di pre-routing**, selezionate una delle seguenti azioni:
   + **Autentica utente**: scegli un provider di identità e fornisci le informazioni richieste. Per ulteriori informazioni, consulta [Autenticazione degli utenti tramite Application Load Balancer](listener-authenticate-users.md).
   + **Token di convalida**: inserisci l'endpoint JWKS, i problemi e qualsiasi altra dichiarazione. Per ulteriori informazioni, consulta [Verifica JWTs utilizzando un Application Load Balancer](listener-verify-jwt.md).

1. Per l'**azione di routing**, seleziona una delle seguenti azioni:
   + **Inoltra ai gruppi target**: scegli un gruppo target. Per aggiungere un altro gruppo target, scegli **Aggiungi gruppo target**, scegli un gruppo target, rivedi i pesi relativi e aggiorna i pesi secondo necessità. Devi abilitare la fedeltà a livello di gruppo se l'hai abilitata su uno qualsiasi dei gruppi target.
   + **Reindirizza all'URL****: inserisci l'URL inserendo ogni parte separatamente nella scheda **Parti URI** o inserendo l'indirizzo completo nella scheda URL completo.** Per il **codice di stato**, selezionate temporaneo (HTTP 302) o permanente (HTTP 301) in base alle vostre esigenze.
   + **Restituisci una risposta fissa**: inserisci il **codice di risposta** da restituire in caso di mancata risposta alle richieste dei client. Facoltativamente, puoi specificare il **tipo di contenuto** e il **corpo della risposta**.

1. Scegli **Next (Successivo)**.

1. Per **Priorità**, inserisci un valore compreso tra 1 e 50.000. Le regole vengono valutate in ordine di priorità dal valore più basso a quello più alto.

1. Scegli **Next (Successivo)**.

1. Nella pagina **Rivedi e crea**, scegli **Crea**.

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

**Per aggiungere una regola**  
Usa il comando [create-rule](https://docs.aws.amazon.com/cli/latest/reference/elbv2/create-rule.html).

L'esempio seguente crea una regola con un'`forward`azione e una `host-header` condizione.

```
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"
```

Per creare un'azione di inoltro che distribuisca il traffico tra due gruppi target, utilizzate invece la seguente `--actions` opzione.

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

L'esempio seguente crea una regola con un'`fixed-response`azione e una `source-ip` condizione.

```
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'}"
```

L'esempio seguente crea una regola con un'`redirect`azione e una `http-header` condizione.

```
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 ]

**Per aggiungere una regola**  
Definire un tipo di risorsa [AWS::ElasticLoadBalancingV2::ListenerRule](https://docs.aws.amazon.com/AWSCloudFormation/latest/TemplateReference/aws-resource-elasticloadbalancingv2-listenerrule.html).

L'esempio seguente crea una regola con un'`forward`azione e una `host-header` condizione. La regola invia il traffico al gruppo target specificato quando viene soddisfatta la condizione.

```
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
```

In alternativa, per creare un'azione di inoltro che distribuisca il traffico tra due gruppi target quando viene soddisfatta la condizione, definisci `Actions` quanto segue.

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

L'esempio seguente crea una regola con un'`fixed-response`azione e una `source-ip` condizione.

```
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"
```

L'esempio seguente crea una regola con un'`redirect`azione e una `http-header` condizione.

```
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
```

------