Regione AWS Selezione - AWS SDK for Java 1.x

Abbiamo annunciato l'imminente versione end-of-support di AWS SDK for Java (v1). Ti consigliamo di migrare alla AWS SDK for Java v2. Per date, dettagli aggiuntivi e informazioni su come effettuare la migrazione, consulta l'annuncio collegato.

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 un nome di regione e l'SDK sceglierà automaticamente l'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 regione SDK 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 i client builder per fare in modo che l'SDK rilevi 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 da. build

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

Se non impostate esplicitamente una regione utilizzando withRegion i metodi, l'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. L'SDK controlla il file di configurazione AWS condiviso (che di solito si trova in~/.aws/config). Se la proprietà region è presente, viene utilizzata dall'SDK.

    • 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 dall'SDK.

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

  5. Se a questo punto l'SDK non ha ancora trovato una regione, la creazione del client non riesce 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 aree predefinita per determinare la regione durante l'esecuzione sull'infrastruttura. AWS Questo semplifica notevolmente la creazione del client e mantiene l'applicazione portatile.