

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

# Impostazione del Regione AWS per AWS SDK for Java 2.x
<a name="region-selection"></a>

I client SDK si connettono Servizio AWS a un indirizzo specifico Regione AWS specificato al momento della creazione del client. Questa configurazione consente all'applicazione di interagire con AWS le risorse in quell'area geografica. Quando crei un client di servizio senza impostare esplicitamente una regione, l'SDK utilizza la regione predefinita della configurazione esterna. 

## Configura esplicitamente un Regione AWS
<a name="region-selection-choose-region"></a>

[Per impostare in modo esplicito una regione, si consiglia di utilizzare le costanti definite nella classe Region.](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/Region.html) Si tratta di un'enumerazione di tutte le regioni disponibili pubblicamente. 

Per creare un client con una regione enumerata dalla classe, utilizzate il metodo del client builder. `region`

```
Ec2Client ec2 = Ec2Client.builder()
          .region(Region.US_WEST_2)
          .build();
```

Se la regione che desideri utilizzare non è una delle enumerazioni della `Region` classe, puoi creare una nuova regione utilizzando il metodo statico. `of` Questo metodo consente di accedere a nuove regioni senza aggiornare l'SDK. 

```
Region newRegion = Region.of("us-east-42");
Ec2Client ec2 = Ec2Client.builder()
          .region(newRegion)
          .build();
```

**Nota**  
*Dopo aver creato un client con il builder, è *immutabile* e non può essere modificato. Regione AWS * Se devi lavorare con più client Regioni AWS per lo stesso servizio, devi creare più client, uno per regione.

## Consenti all'SDK di determinare automaticamente l'impostazione predefinita dall'ambiente Regione AWS
<a name="automatically-determine-the-aws-region-from-the-environment"></a>

Quando il codice viene eseguito su Amazon EC2 o AWS Lambda, potresti voler configurare i client in modo Regione AWS che utilizzino lo stesso su cui è in esecuzione il codice. Questo disaccoppia il codice dall'ambiente in cui è in esecuzione e semplifica la distribuzione dell'applicazione su più utenti Regioni AWS per ridurre la latenza o la ridondanza.

Per utilizzare la catena di Regione AWS provider predefinita per determinare la regione dall'ambiente, utilizzate il metodo del client builder. `create`

```
Ec2Client ec2 = Ec2Client.create();
```

Puoi anche configurare il client in altri modi, ma non impostare la regione. L'SDK rileva Regione AWS utilizzando la catena di provider regionali predefinita:

```
Ec2Client ec2Client = Ec2Client.builder()
        .credentialsProvider(ProfileCredentialsProvider.builder()
                .profileName("my-profile")
                .build())
        .build();
```

Se non ne imposti uno in modo esplicito Regione AWS utilizzando il `region` metodo, l'SDK consulta la catena di provider di regioni predefinita per determinare la regione da utilizzare.

### Comprendere la catena di provider predefinita Regione AWS
<a name="default-region-provider-chain"></a>

 **L'SDK esegue le seguenti operazioni per cercare un Regione AWS:** 

1. Qualsiasi regione esplicita impostata utilizzando il `region` metodo sul builder stesso ha la precedenza su qualsiasi altra cosa.

1. L'SDK cerca la proprietà del sistema JVM `aws.region` e, se trovata, ne utilizza il valore.

1. La variabile di ambiente `AWS_REGION` è selezionata. Se è impostata, quella regione viene utilizzata per configurare il client.
**Nota**  
Il Lambda contenitore imposta questa variabile di ambiente.

1. L'SDK controlla il profilo attivo nei file di [configurazione e credenziali AWS condivisi](https://docs.aws.amazon.com/sdkref/latest/guide/file-format.html). Se la `region` proprietà è presente, l'SDK la utilizza.

   Il `default` profilo è il profilo attivo a meno che non venga sovrascritto dalla variabile di `AWS_PROFILE` ambiente o dalla proprietà del sistema `aws.profile` JVM. Se l'SDK trova la `region` proprietà in entrambi i file per lo stesso profilo (incluso il `default` profilo), l'SDK utilizza il valore nel file delle credenziali condivise.

1. L'SDK tenta di utilizzare il servizio di metadati dell' Amazon EC2 istanza (IMDS) per determinare la regione dell'istanza attualmente in esecuzione. Amazon EC2 
   + Per una maggiore sicurezza, dovresti disattivare l'SDK dal tentativo di utilizzare la versione 1 di IMDS. Per disabilitare la versione 1, si utilizza la stessa impostazione descritta nella sezione. [Acquisisci in modo sicuro le credenziali dei ruoli IAM](ec2-iam-roles.md#securely-read-IAM-role_credentials)

1. Se l'SDK non ha ancora trovato una regione a questo punto, la creazione del client fallisce con un'eccezione.

Quando si sviluppano AWS applicazioni, un approccio comune consiste nell'utilizzare il *file di configurazione condiviso* per impostare la regione per lo sviluppo locale e affidarsi alla catena di provider di regioni predefinita per determinare la regione quando l'applicazione viene eseguita sull' AWS infrastruttura. Questo semplifica notevolmente la creazione del client e mantiene l'applicazione portatile.

## Verifica se un servizio è disponibile in una regione
<a name="region-selection-query-service"></a>

Per vedere se un particolare Servizio AWS è disponibile in una regione, usa il `serviceMetadata` metodo statico su un client di servizio:

```
DynamoDbClient.serviceMetadata().regions().forEach(System.out::println);
```

Lo snippet precedente stampa un lungo elenco di Regione AWS codici che dispongono del servizio DynamoDB:

```
af-south-1
ap-east-1
ap-northeast-1
ap-northeast-2
ap-northeast-3
ap-south-1
ap-south-2
ap-southeast-1
...
```

È possibile utilizzare un codice per cercare l'[enumerazione delle classi Region per la regione](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/regions/Region.html) da utilizzare dal client di servizio.

Ad esempio, se vuoi lavorare con DynamoDB nella regione con il `ap-northeast-2` codice, crea il tuo client DynamoDB con almeno la seguente configurazione:

```
DynamoDbClient ddb = DynamoDbClient.builder()
    .region(Region.AP_NORTHEAST_2)
    .build();
```

## Scegli un endpoint specifico
<a name="choosing-a-specific-endpoint"></a>

In determinate situazioni, ad esempio per testare in anteprima le funzionalità di un servizio prima che queste diventino disponibili sul mercato, potrebbe essere necessario specificare un endpoint specifico in una regione. In queste situazioni, i client del servizio possono essere configurati chiamando il metodo. `endpointOverride`

Ad esempio, per configurare un Amazon EC2 client in modo che utilizzi la regione Europa (Irlanda) con un endpoint specifico, usa il codice seguente.

```
Ec2Client ec2 = Ec2Client.builder()
               .region(Region.EU_WEST_1)
               .endpointOverride(URI.create("https://ec2.eu-west-1.amazonaws.com"))
               .build();
```

Vedi [Regioni ed endpoint](https://docs.aws.amazon.com/general/latest/gr/rande.html) per l'elenco corrente delle regioni e gli endpoint corrispondenti per tutti i servizi. AWS 