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
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:
-
Jede explizite Region, die mithilfe der
region
Methode im Builder selbst festgelegt wurde, hat Vorrang vor allem anderen. -
Das SDK sucht nach der JVM-Systemeigenschaft
aws.region
und verwendet ihren Wert, falls er gefunden wird. -
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.
-
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 eineAWS_PROFILE
Umgebungsvariable oder eineaws.profile
JVM-Systemeigenschaft überschrieben wird. Wenn das SDK dieregion
Eigenschaft in beiden Dateien für dasselbe Profil (einschließlich des Profils) findet, verwendet dasdefault
SDK den Wert in der Datei mit den gemeinsamen Anmeldeinformationen. -
Das SDK versucht, den Amazon EC2 Instanz-Metadatendienst (IMDS) zu verwenden, um die Region der aktuell laufenden Amazon EC2 Instanz zu ermitteln.
-
Aus Sicherheitsgründen sollten Sie verhindern, dass das SDK versucht, Version 1 von IMDS zu verwenden. Sie verwenden dieselbe Einstellung, um Version 1 zu deaktivieren, die im Besorgen Sie sich auf sichere Weise Anmeldeinformationen für IAM-Rollen Abschnitt beschrieben wird.
-
-
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
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.