Regione AWS Selezione - AWS SDK for Java 1. x

La AWS SDK for Java versione 1.x è entrata in modalità manutenzione il 31 luglio 2024 e sarà disponibile il 31 end-of-supportdicembre 2025. Ti consigliamo di eseguire la migrazione a per continuare AWS SDK for Java 2.xa ricevere nuove funzionalità, miglioramenti della disponibilità e aggiornamenti di sicurezza.

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

Regione AWS Selezione

Le regioni consentono di accedere ai AWS servizi che risiedono fisicamente in un'area geografica specifica. Ciò può essere utile per la ridondanza e per mantenere i dati e le applicazioni in esecuzione vicino ai punti di accesso ai servizi stessi.

Verifica della disponibilità del servizio in una regione

Per verificare se un determinato prodotto Servizio AWS è disponibile in una regione, utilizza il isServiceSupported metodo relativo alla regione che desideri utilizzare.

Region.getRegion(Regions.US_WEST_2) .isServiceSupported(AmazonDynamoDB.ENDPOINT_PREFIX);

Consultate la documentazione della classe Regions per le regioni che potete specificare e utilizzate il prefisso endpoint del servizio per eseguire le query. Il prefisso dell'endpoint di ogni servizio è definito nell'interfaccia del servizio. Ad esempio, il prefisso dell' DynamoDB endpoint è definito nel DB. AmazonDynamo

Scelta di una Regione

A partire dalla versione 1.4 di AWS SDK for Java, puoi specificare il nome di una regione e SDK sceglierà automaticamente un endpoint appropriato per te. Per scegliere tu stesso l'endpoint, vedi Scelta di un endpoint specifico.

Per impostare in modo esplicito una regione, ti consigliamo di utilizzare l'enumerazione Regioni. Si tratta di un'enumerazione di tutte le regioni disponibili pubblicamente. Per creare un client con una regione dall'enum, usa il codice seguente.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion(Regions.US_WEST_2) .build();

Se la regione che stai tentando di utilizzare non è nell'Regionsenum, puoi impostare la regione usando una stringa che rappresenta il nome della regione.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .withRegion("{region_api_default}") .build();
Nota

Dopo che è stato creato con il generatore, il client è immutabile e la regione non può essere modificata. Se state lavorando con più client Regioni AWS per lo stesso servizio, dovreste creare più client, uno per regione.

Scelta di un endpoint specifico

Ogni AWS client può essere configurato per utilizzare un endpoint specifico all'interno di una regione chiamando il withEndpointConfiguration metodo durante la creazione del client.

Ad esempio, per configurare il Amazon S3 client in modo che utilizzi la regione Europa (Irlanda), utilizza il codice seguente.

AmazonS3 s3 = AmazonS3ClientBuilder.standard() .withEndpointConfiguration(new EndpointConfiguration( "https://s3.eu-west-1.amazonaws.com", "eu-west-1")) .withCredentials(CREDENTIALS_PROVIDER) .build();

Vedi Regioni ed endpoint per l'elenco corrente delle regioni e gli endpoint corrispondenti per tutti i AWS servizi.

Determina automaticamente la regione dall'ambiente

Importante

Questa sezione si applica solo quando si utilizza un client builder per accedere ai AWS servizi. AWS i client creati utilizzando il costruttore del client non determineranno automaticamente la regione dall'ambiente e utilizzeranno invece la SDK regione predefinita ()USEast1.

Quando è in esecuzione su Amazon EC2 o Lambda, potresti voler configurare i client in modo che utilizzino la stessa regione su cui è in esecuzione il codice. Questo consente di separare il codice dall'ambiente in cui è in esecuzione e facilita la distribuzione dell'applicazione in più regioni per minore latenza o ridondanza.

È necessario utilizzare client builder per far sì che rilevi SDK automaticamente la regione in cui è in esecuzione il codice.

Per utilizzare la catena di provider delle credenziali/regioni predefinita per determinare la regione dell'ambiente, utilizzare il metodo defaultClient del generatore client.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

È lo stesso che si usa standard seguito dabuild.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.standard() .build();

Se non impostate esplicitamente una regione utilizzando i withRegion metodi, SDK consulta la catena di fornitori di regioni predefinita per cercare di determinare la regione da utilizzare.

Catena di provider delle regioni predefinita

Di seguito è riportato il processo di ricerca della regione:

  1. Qualsiasi regione esplicita impostata utilizzando withRegion o setRegion sul builder stesso ha la precedenza su qualsiasi altra cosa.

  2. La variabile di ambiente AWS_REGION è selezionata. Se è impostata, questa regione viene utilizzata per configurare il client.

    Nota

    Questa variabile di ambiente è impostata dal contenitore. Lambda

  3. SDKControlla il file di configurazione AWS condiviso (che di solito si trova in~/.aws/config). Se la proprietà region è presente, la SDK utilizza.

    • La variabile di ambiente AWS_CONFIG_FILE può essere utilizzata per personalizzare il percorso del file di configurazione condiviso.

    • La variabile di AWS_PROFILE ambiente o la proprietà di aws.profile sistema possono essere utilizzate per personalizzare il profilo caricato daSDK.

  4. I SDK tentativi di utilizzare il servizio di metadati dell' Amazon EC2 istanza per determinare la regione dell' Amazon EC2 istanza attualmente in esecuzione.

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

Durante lo sviluppo di AWS applicazioni, un approccio comune consiste nell'utilizzare il file di configurazione condiviso (descritto in Utilizzo della catena di provider di credenziali predefinita) per impostare la regione per lo sviluppo locale e fare affidamento sulla catena di provider di regioni predefinita per determinare la regione durante l'esecuzione sull' AWS infrastruttura. Questo semplifica notevolmente la creazione del client e mantiene l'applicazione portatile.