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
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
Per impostare in modo esplicito una regione, si consiglia di utilizzare le costanti definite nella classe Region.
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
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
L'SDK esegue le seguenti operazioni per cercare un Regione AWS:
-
Qualsiasi regione esplicita impostata utilizzando il
region
metodo sul builder stesso ha la precedenza su qualsiasi altra cosa. -
L'SDK cerca la proprietà del sistema JVM
aws.region
e, se trovata, ne utilizza il valore. -
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.
-
L'SDK controlla il profilo attivo nei file di configurazione e credenziali AWS condivisi. Se la
region
proprietà è presente, l'SDK la utilizza.Il
default
profilo è il profilo attivo a meno che non venga sovrascritto dalla variabile diAWS_PROFILE
ambiente o dalla proprietà del sistemaaws.profile
JVM. Se l'SDK trova laregion
proprietà in entrambi i file per lo stesso profilo (incluso ildefault
profilo), l'SDK utilizza il valore nel file delle credenziali condivise. -
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
-
-
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
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
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
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 per l'elenco corrente delle regioni e gli endpoint corrispondenti per tutti i servizi. AWS