

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 -\_. e i caratteri jolly (\* 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 \_-.$/\~"'@:\+; & e i caratteri jolly (\* 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 \_-.$/\~"'@:\+&()\!,;= e i caratteri jolly (\* 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 -\_. 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 \*?-\!\#$%&'\+.^\_`\|\~. 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; spazi; i seguenti caratteri speciali:\!» \#$%&' () \+,. /:; <=>@ [] ^\_` {\|} \~-; e caratteri jolly (\* 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
```

------