Einstellung der AWS-Region für AWS SDK for Java 2.x - AWS SDK for Java 2.x

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.

Einstellung der AWS-Region für AWS SDK for Java 2.x

SDK-Clients stellen eine Verbindung zu einem bestimmten AWS-Service in einem bestimmten Bereich her AWS-Region , den Sie bei der Erstellung des Clients angeben. Diese Konfiguration ermöglicht es Ihrer Anwendung, mit AWS Ressourcen in diesem geografischen Gebiet zu interagieren. Wenn Sie einen Service-Client erstellen, ohne explizit eine Region festzulegen, verwendet das SDK die Standardregion aus Ihrer externen Konfiguration.

Konfigurieren Sie explizit ein AWS-Region

Um eine Region explizit festzulegen, empfehlen wir, die in der Region-Klasse definierten Konstanten zu verwenden. Dabei handelt es sich um eine Aufzählung aller öffentlich verfügbaren Regionen.

Verwenden Sie die Methode des Client Builders, um einen Client mit einer aufgezählten Region aus der Klasse zu erstellen. region

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

Wenn die Region, die Sie verwenden möchten, keine der Aufzählungen in der Region Klasse ist, können Sie mithilfe der statischen Methode eine neue Region erstellen. of Mit dieser Methode können Sie auf neue Regionen zugreifen, ohne das SDK aktualisieren zu müssen.

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

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

Lassen Sie das SDK den Standard automatisch anhand der Umgebung AWS-Region ermitteln

Wenn Ihr Code auf Amazon EC2 oder ausgeführt wird AWS Lambda, möchten Sie möglicherweise Clients so konfigurieren, AWS-Region dass sie dasselbe verwenden, auf dem Ihr Code ausgeführt wird. Dadurch wird Ihr Code von der Umgebung entkoppelt, in der er ausgeführt wird, und es ist einfacher, Ihre Anwendung AWS-Regionen für mehrere Anwendungen bereitzustellen, um Latenz oder Redundanz zu reduzieren.

Verwenden Sie die Methode des Client Builders, um die Region anhand der AWS-Region Standardanbieterkette von der Umgebung zu bestimmen. create

Ec2Client ec2 = Ec2Client.create();

Sie können den Client auch auf andere Weise konfigurieren, aber nicht die Region festlegen. Das SDK übernimmt das AWS-Region mithilfe der standardmäßigen Anbieterkette für die Region:

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

Wenn Sie AWS-Region mithilfe der region Methode nicht explizit eine festlegen, verwendet das SDK die Standardregion-Providerkette, um die zu verwendende Region zu ermitteln.

Grundlegendes zur AWS-Region Standardanbieterkette

Das SDK unternimmt die folgenden Schritte, um nach einem zu suchen AWS-Region:

  1. Jede explizite Region, die mithilfe der region Methode im Builder selbst festgelegt wurde, hat Vorrang vor allem anderen.

  2. Das SDK sucht nach der JVM-Systemeigenschaft aws.region und verwendet ihren Wert, falls er gefunden wird.

  3. Die Umgebungsvariable AWS_REGION wird geprüft. Wenn es gesetzt ist, wird diese Region zur Konfiguration des Clients verwendet.

    Anmerkung

    Der Lambda Container legt diese Umgebungsvariable fest.

  4. Das SDK überprüft das aktive Profil in den AWS gemeinsam genutzten Konfigurations- und Anmeldeinformationsdateien. Wenn die region Eigenschaft vorhanden ist, verwendet das SDK sie.

    Das default Profil ist das aktive Profil, sofern es nicht durch eine AWS_PROFILE Umgebungsvariable oder eine aws.profile JVM-Systemeigenschaft überschrieben wird. Wenn das SDK die region Eigenschaft in beiden Dateien für dasselbe Profil (einschließlich des Profils) findet, verwendet das default SDK den Wert in der Datei mit den gemeinsamen Anmeldeinformationen.

  5. Das SDK versucht, den Amazon EC2 Instanz-Metadatendienst (IMDS) zu verwenden, um die Region der aktuell laufenden Amazon EC2 Instanz zu ermitteln.

  6. Wenn das SDK bis zu diesem Zeitpunkt immer noch keine Region gefunden hat, schlägt die Client-Erstellung mit einer Ausnahme fehl.

Bei der Entwicklung von AWS Anwendungen besteht ein gängiger Ansatz darin, die gemeinsam genutzte Konfigurationsdatei zu verwenden, um die Region für die lokale Entwicklung festzulegen, und sich auf die Standardregions-Providerkette zu verlassen, um die Region zu bestimmen, wenn die Anwendung in der AWS Infrastruktur ausgeführt wird. Dies vereinfacht die Client-Erstellung stark und sorgt dafür, dass Ihre Anwendung portabel bleibt.

Prüfen Sie, ob ein Dienst in einer Region verfügbar ist

Verwenden Sie die statische serviceMetadata Methode auf einem Service-Client, um festzustellen, ob ein bestimmter Artikel in einer Region verfügbar AWS-Service ist:

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

Das vorherige Snippet druckt eine lange Liste von AWS-Region Codes aus, die den DynamoDB-Dienst haben:

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

Sie können einen Code verwenden, um die Region-Klassenaufzählung für die Region nachzuschlagen, die Ihr Service-Client verwenden soll.

Wenn Sie beispielsweise mit DynamoDB in der Region mit dem Code arbeiten möchtenap-northeast-2, erstellen Sie Ihren DynamoDB-Client mit mindestens der folgenden Konfiguration:

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

Wählen Sie einen bestimmten Endpunkt

In bestimmten Situationen, z. B. um Vorschaufunktionen eines Dienstes zu testen, bevor die Funktionen allgemein verfügbar sind, müssen Sie möglicherweise einen bestimmten Endpunkt in einer Region angeben. In diesen Situationen können Service-Clients durch Aufrufen der Methode konfiguriert werden. endpointOverride

Um beispielsweise einen Amazon EC2 Client so zu konfigurieren, dass er die Region Europa (Irland) mit einem bestimmten Endpunkt verwendet, verwenden Sie den folgenden Code.

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

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