Servicespezifische Endpunkte - AWS SDKs und Tools

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.

Servicespezifische Endpunkte

Die dienstspezifische Endpunktkonfiguration bietet die Möglichkeit, einen Endpunkt Ihrer Wahl für API-Anfragen zu verwenden und diese Auswahl beizubehalten. Diese Einstellungen bieten Flexibilität bei der Unterstützung lokaler Endpunkte, VPC-Endpunkte und lokaler AWS -Entwicklungsumgebungen von Drittanbietern. Verschiedene Endpunkte können für Test- und Produktionsumgebungen verwendet werden. Sie können eine Endpunkt-URL für einzelne AWS-Services angeben.

Konfigurieren Sie diese Funktionalität wie folgt:

endpoint_url- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_ENDPOINT_URL- Umgebungsvariable
aws.endpointUrl- JVM-Systemeigenschaft: Nur Java/Kotlin

Wenn diese Einstellung direkt in einem Profil oder als Umgebungsvariable angegeben wird, gibt sie den Endpunkt an, der für alle Serviceanfragen verwendet wird. Dieser Endpunkt wird von jedem konfigurierten dienstspezifischen Endpunkt überschrieben.

Sie können diese Einstellung auch in einem services Abschnitt einer gemeinsam genutzten AWS config Datei verwenden, um einen benutzerdefinierten Endpunkt für einen bestimmten Dienst festzulegen. Eine Liste aller Dienstkennungsschlüssel, die für Unterabschnitte innerhalb dieses services Abschnitts verwendet werden können, finden Sie unterIdentifikatoren für dienstspezifische Endpunkte.

Standardwert: none

Gültige Werte: Eine URL, die das Schema und den Host für den Endpunkt enthält. Die URL kann optional eine Pfadkomponente enthalten, die ein oder mehrere Pfadsegmente enthält.

AWS_ENDPOINT_URL_<SERVICE>- Umgebungsvariable
aws.endpointUrl<ServiceName>- JVM-Systemeigenschaft: Nur Java/Kotlin

AWS_ENDPOINT_URL_<SERVICE>, wobei sich der AWS-Service Bezeichner <SERVICE> befindet, legt einen benutzerdefinierten Endpunkt für einen bestimmten Dienst fest. Eine Liste aller servicespezifischen Umgebungsvariablen finden Sie unter Identifikatoren für dienstspezifische Endpunkte.

Dieser dienstspezifische Endpunkt hat Vorrang vor allen in festgelegten globalen Endpunkten. AWS_ENDPOINT_URL

Standardwert: none

Gültige Werte: Eine URL, die das Schema und den Host für den Endpunkt enthält. Die URL kann optional eine Pfadkomponente enthalten, die ein oder mehrere Pfadsegmente enthält.

ignore_configured_endpoint_urls- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS- Umgebungsvariable
aws.ignoreConfiguredEndpointUrls- JVM-Systemeigenschaft: Nur Java/Kotlin

Diese Einstellung wird verwendet, um alle benutzerdefinierten Endpunktkonfigurationen zu ignorieren.

Beachten Sie, dass jeder explizite Endpunkt, der im Code oder auf einem Service-Client selbst festgelegt ist, unabhängig von dieser Einstellung verwendet wird. Wenn Sie beispielsweise den --endpoint-url Befehlszeilenparameter in einen AWS CLI Befehl aufnehmen oder eine Endpunkt-URL an einen Client-Konstruktor übergeben, ist dies immer wirksam.

Standardwert: false

Zulässige Werte:

  • true— Das SDK oder Tool liest keine benutzerdefinierten Konfigurationsoptionen aus der gemeinsam genutzten config Datei oder aus Umgebungsvariablen zum Setzen einer Endpunkt-URL.

  • false— Das SDK oder Tool verwendet alle verfügbaren, vom Benutzer bereitgestellten Endpunkte aus der gemeinsam genutzten config Datei oder aus Umgebungsvariablen.

Konfigurieren Sie Endpunkte mithilfe von Umgebungsvariablen

Um Anfragen für alle Dienste an eine benutzerdefinierte Endpunkt-URL weiterzuleiten, legen Sie die AWS_ENDPOINT_URL globale Umgebungsvariable fest.

export AWS_ENDPOINT_URL=http://localhost:4567

Verwenden Sie die AWS_ENDPOINT_URL_<SERVICE> Umgebungsvariable AWS-Service , um Anfragen für eine bestimmte URL an einen benutzerdefinierten Endpunkt weiterzuleiten. Amazon DynamoDB hat ein serviceId von DynamoDB. Für diesen Service lautet die Umgebungsvariable für die Endpunkt-URL AWS_ENDPOINT_URL_DYNAMODB. Dieser Endpunkt hat Vorrang vor dem globalen Endpunkt, der AWS_ENDPOINT_URL für diesen Dienst eingerichtet wurde.

export AWS_ENDPOINT_URL_DYNAMODB=http://localhost:5678

Als weiteres Beispiel AWS Elastic Beanstalk hat er ein serviceId von. Elastic Beanstalk Der AWS-Service Bezeichner basiert auf dem API-Modell, indem alle Leerzeichen serviceId durch Unterstriche ersetzt und alle Buchstaben in Großbuchstaben geschrieben werden. Um den Endpunkt für diesen Dienst festzulegen, lautet die entsprechende Umgebungsvariable. AWS_ENDPOINT_URL_ELASTIC_BEANSTALK Eine Liste aller servicespezifischen Umgebungsvariablen finden Sie unter Identifikatoren für dienstspezifische Endpunkte.

export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:5567

Konfigurieren Sie Endpunkte mithilfe der gemeinsam genutzten Datei config

Wird in der gemeinsam genutzten config Datei an verschiedenen Stellen für unterschiedliche Funktionen verwendet. endpoint_url

  • endpoint_urldirekt in a angegeben, profile macht diesen Endpunkt zum globalen Endpunkt.

  • endpoint_urlWenn dieser Endpunkt unter einem Dienstbezeichnerschlüssel innerhalb eines services Abschnitts verschachtelt ist, gilt dieser Endpunkt nur für Anfragen, die an diesen Dienst gestellt werden. Details zur Definition eines services-Abschnitts in Ihrer freigegebenen config-Datei finden Sie unter Format der Konfigurationsdatei.

Das folgende Beispiel verwendet eine services Definition, um eine dienstspezifische Endpunkt-URL für Amazon S3 und einen benutzerdefinierten globalen Endpunkt für alle anderen Services zu konfigurieren:

[profile dev-s3-specific-and-global] endpoint_url = http://localhost:1234 services = s3-specific [services s3-specific] s3 = endpoint_url = https://play.min.io:9000

Mit einem einzigen Profil können Endpunkte für mehrere Services konfiguriert werden. Dieses Beispiel zeigt, wie die dienstspezifischen Endpunkt-URLs für Amazon S3 und AWS Elastic Beanstalk im selben Profil festgelegt werden. AWS Elastic Beanstalk hat einen serviceId von. Elastic Beanstalk Der AWS-Service Bezeichner basiert auf dem API-Modell, serviceId indem alle Leerzeichen durch Unterstriche ersetzt und alle Buchstaben klein geschrieben werden. Somit wird der Service-Identifier-Schlüssel elastic_beanstalk und die Einstellungen für diesen Dienst beginnen in der Zeile. elastic_beanstalk = Eine Liste aller Service-ID-Schlüssel, die im services-Abschnitt verwendet werden können, finden Sie unter Identifikatoren für dienstspezifische Endpunkte.

[services testing-s3-and-eb] s3 = endpoint_url = http://localhost:4567 elastic_beanstalk = endpoint_url = http://localhost:8000 [profile dev] services = testing-s3-and-eb

Der Abschnitt zur Dienstkonfiguration kann von mehreren Profilen aus verwendet werden. Beispielsweise können zwei Profile dieselbe services Definition verwenden und gleichzeitig andere Profileigenschaften ändern:

[services testing-s3] s3 = endpoint_url = https://localhost:4567 [profile testing-json] output = json services = testing-s3 [profile testing-text] output = text services = testing-s3

Konfigurieren Sie Endpunkte in Profilen mithilfe von rollenbasierten Anmeldeinformationen

Wenn Ihr Profil über rollenbasierte Anmeldeinformationen verfügt, die über einen source_profile-Parameter für die IAM-Funktion „Rolle übernehmen“ konfiguriert wurden, verwendet das SDK nur Servicekonfigurationen für das angegebene Profil. Es verwendet keine Profile mit verketteten Rollen. Verwenden Sie beispielsweise die folgende freigegebene config-Datei:

[profile A] credential_source = Ec2InstanceMetadata endpoint_url = https://profile-a-endpoint.aws/ [profile B] source_profile = A role_arn = arn:aws:iam::123456789012:role/roleB services = profileB [services profileB] ec2 = endpoint_url = https://profile-b-ec2-endpoint.aws

Wenn Sie das Profil B verwenden und in Ihrem Code Amazon EC2 aufrufen, wird der Endpunkt als https://profile-b-ec2-endpoint.aws aufgelöst. Wenn Ihr Code eine Anforderung für einen anderen Service stellt, folgt die Endpunktauflösung keiner benutzerdefinierten Logik. Der Endpunkt wird nicht zu dem im Profil A definierten globalen Endpunkt aufgelöst. Damit ein globaler Endpunkt für das Profil B wirksam wird, müssten Sie endpoint_url direkt im Profil B festlegen. Weitere Informationen zur source_profile-Einstellung finden Sie unter Übernehmen Sie die Rolle Credential Provider.

Vorrang der Einstellungen

Die Einstellungen für diese Funktion können gleichzeitig verwendet werden, pro Dienst hat jedoch nur ein Wert Priorität. Bei API-Aufrufen an einen bestimmten AWS-Service Wert wird die folgende Reihenfolge verwendet:

  1. Jede explizite Einstellung, die im Code oder auf einem Service-Client selbst festgelegt ist, hat Vorrang vor allen anderen Einstellungen.

    • Für die ist dies der Wert AWS CLI, der vom --endpoint-url Befehlszeilenparameter bereitgestellt wird. Bei einem SDK können explizite Zuweisungen die Form eines Parameters annehmen, den Sie bei der Instanziierung eines AWS-Service Client- oder Konfigurationsobjekts festlegen.

  2. Der Wert, der von einer dienstspezifischen Umgebungsvariablen bereitgestellt wird, z. B. AWS_ENDPOINT_URL_DYNAMODB

  3. Der von der globalen Endpunkt-Umgebungsvariable AWS_ENDPOINT_URL bereitgestellte Wert

  4. Der Wert, der von der endpoint_url Einstellung bereitgestellt wird, die unter einem Dienstbezeichnerschlüssel in einem services Abschnitt der gemeinsam genutzten config Datei verschachtelt ist.

  5. Der Wert, der durch die endpoint_url Einstellung bereitgestellt wird, die direkt in einer profile der gemeinsam genutzten config Datei angegeben wurde.

  6. Jede Standard-Endpunkt-URL für die jeweilige AWS-Service Datei wird zuletzt verwendet.

Kompatibilität mit AWS SDKs

Die folgenden SDKs unterstützen die in diesem Thema beschriebenen Funktionen und Einstellungen. Alle teilweisen Ausnahmen werden vermerkt. Alle Einstellungen für JVM-Systemeigenschaften werden AWS SDK for Kotlin nur von AWS SDK for Java und vom unterstützt.