AWS-Region Auswahl - AWS SDK for Java 1.x

Wir haben die kommende Version end-of-support für AWS SDK for Java (v1) angekündigt. Wir empfehlen Ihnen, auf AWS SDK for Java Version 2 zu migrieren. Termine, weitere Details und Informationen zur Migration finden Sie in der verlinkten Ankündigung.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

AWS-Region Auswahl

Regionen ermöglichen Ihnen den Zugriff auf AWS Dienste, die sich physisch in einem bestimmten geografischen Gebiet befinden. Dies ist nicht nur für die Redundanz nützlich, sondern sorgt auch dafür, dass Ihre Daten und Anwendungen in der Nähe Ihres Standorts sowie des Standorts Ihrer Benutzer ausgeführt werden.

Überprüfung der Serviceverfügbarkeit in einer Region

Um zu sehen, ob ein bestimmtes Produkt in einer Region verfügbar AWS-Service ist, wenden Sie die isServiceSupported Methode für die Region an, die Sie verwenden möchten.

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

Weitere Informationen über die Regionen, die Sie angeben können, und über die Nutzung des Endpunkt-Präfixes für den abzufragenden Service finden Sie in der Dokumentation der Regions-Klasse. Jedes Service-Endpunkt-Präfix wird in der Service-Schnittstelle definiert. Das DynamoDB Endpunktpräfix ist beispielsweise in AmazonDynamoDB definiert.

Auswählen einer Region

Ab Version 1.4 von können Sie einen Regionsnamen angeben AWS SDK for Java, und das SDK wählt automatisch einen geeigneten Endpunkt für Sie aus. Informationen darüber, wie Sie den Endpunkt selbst auswählen können, finden Sie unter Auswahl eines bestimmten Endpunkts.

Um explizit eine Region festzulegen, empfehlen wir, dass Sie die Regions-Aufzählung nutzen. Dabei handelt es sich um eine Aufzählung aller öffentlich verfügbaren Regionen. Mit dem folgenden Code können Sie einen Client mit einer Region aus der Aufzählung erstellen:

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

Wenn die Region, die Sie verwenden möchten, nicht in der Regions-Aufzählung enthalten ist, können Sie die Region mit einem String festlegen, der den Namen der Region enthält.

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

Nachdem Sie einen Client mit dem Generator erstellt haben, ist er unveränderlich und die Region kann nicht mehr geändert werden. Wenn Sie mit mehreren AWS-Regionen für denselben Service arbeiten, sollten Sie mehrere Clients erstellen — einen pro Region.

Auswahl eines bestimmten Endpunkts

Jeder AWS Client kann so konfiguriert werden, dass er einen bestimmten Endpunkt innerhalb einer Region verwendet, indem die withEndpointConfiguration Methode bei der Erstellung des Clients aufgerufen wird.

Verwenden Sie beispielsweise den folgenden Code, um den Amazon S3 Client für die Verwendung der Region Europa (Irland) zu konfigurieren.

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

Die aktuelle Liste der Regionen und der entsprechenden Endpunkte für alle AWS Dienste finden Sie unter Regionen und Endpunkte.

Ermitteln Sie die Region automatisch anhand der Umgebung

Wichtig

Dieser Abschnitt gilt nur, wenn Sie einen Client Builder für den Zugriff auf AWS Dienste verwenden. AWS Clients, die mit dem Client-Konstruktor erstellt wurden, ermitteln die Region nicht automatisch anhand der Umgebung, sondern verwenden stattdessen die Standard-SDK-Region (useAST1).

Wenn Sie auf Amazon EC2 oder Lambda ausgeführt werden, möchten Sie möglicherweise Clients so konfigurieren, dass sie dieselbe Region verwenden, in der Ihr Code ausgeführt wird. So wird der Code von der Umgebung abgekoppelt, in der er läuft, wodurch die Bereitstellung Ihrer Anwendung in mehreren Regionen einfacher wird. Dies wiederum sorgt für weniger Latenz und mehr Redundanz.

Sie sollten Client-Generatoren verwenden, damit das SDK die Region, in der der Code ausgeführt wird, automatisch erkennt.

Rufen Sie die defaultClient-Methode des Client-Generators auf, um die Region aus der Umgebung mithilfe der Standard-Anbieterkette für Anmeldeinformationen/Regionen zu bestimmen.

AmazonEC2 ec2 = AmazonEC2ClientBuilder.defaultClient();

Dies entspricht der Verwendung von standard, gefolgt von build.

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

Wenn Sie nicht explizit eine Region mit den withRegion-Methoden festlegen, nutzt das SDK die Standard-Anbieterkette für Regionen und versucht, die zu nutzende Region zu ermitteln.

Standard-Anbieterkette für Regionen

Folgende Regeln gelten für das Nachschlagen der Region:

  1. Etwaige explizite, mit withRegion oder setRegion festgelegte Regionen direkt im Generator haben Vorrang vor allen anderen.

  2. Die Umgebungsvariable AWS_REGION wird geprüft. Wenn sie festgelegt ist, wird die zugehörige Region zur Konfiguration des Clients verwendet.

    Anmerkung

    Diese Umgebungsvariable wird vom Lambda Container festgelegt.

  3. Das SDK überprüft die AWS gemeinsam genutzte Konfigurationsdatei (normalerweise unter~/.aws/config). Ist die Eigenschaft region vorhanden, wird sie vom SDK verwendet.

    • Die Umgebungsvariable AWS_CONFIG_FILE kann verwendet werden, um den Speicherort der gemeinsam genutzten Konfigurationsdatei anzupassen.

    • Die AWS_PROFILE Umgebungsvariable oder die aws.profile Systemeigenschaft können verwendet werden, um das Profil anzupassen, das vom SDK geladen wird.

  4. Das SDK versucht, mithilfe des Amazon EC2 Instanz-Metadatendienstes die Region der aktuell ausgeführten Amazon EC2 Instanz zu ermitteln.

  5. Hat das SDK zu diesem Zeitpunkt immer noch keine Region gefunden, schlägt die Erstellung des Clients mit einer Ausnahme fehl.

Bei der Entwicklung von AWS Anwendungen besteht ein gängiger Ansatz darin, die gemeinsam genutzte Konfigurationsdatei (beschrieben unter Verwenden der Standardanbieterkette für Anmeldeinformationen) zu verwenden, um die Region für die lokale Entwicklung festzulegen, und sich bei der Ausführung auf der AWS Infrastruktur auf die Standardregions-Anbieterkette zu verlassen, um die Region zu bestimmen. Dies vereinfacht die Client-Erstellung stark und sorgt dafür, dass Ihre Anwendung portabel bleibt.