Servicespezifische Endpunkte - AWS SDKsund 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 Drittanbieter AWS Entwicklungsumgebungen. Verschiedene Endpunkte können für Test- und Produktionsumgebungen verwendet werden. Sie können einen Endpunkt URL für einzelne Personen angeben AWS-Services.

Konfigurieren Sie diese Funktionalität wie folgt:

endpoint_url- geteilt AWS configDateieinstellung
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 Bereich einer geteilten Datei verwenden AWS configDatei, 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: AURL, einschließlich des Schemas und des Hosts für den Endpunkt. URLSie 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>, wo ist der <SERVICE> AWS-Service Identifier, 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: A, URL einschließlich des Schemas und des Hosts für den Endpunkt. URLSie kann optional eine Pfadkomponente enthalten, die ein oder mehrere Pfadsegmente enthält.

ignore_configured_endpoint_urls- gemeinsam genutzt AWS configDateieinstellung
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. Zum Beispiel einschließlich des --endpoint-url Befehlszeilenparameters mit einem AWS CLI Ein Befehl oder URL die Übergabe eines Endpunkts an einen Client-Konstruktor ist immer wirksam.

Standardwert: false

Zulässige Werte:

  • true— Das Tool SDK oder liest keine benutzerdefinierten Konfigurationsoptionen aus der gemeinsam genutzten config Datei oder aus Umgebungsvariablen zum Setzen eines EndpunktsURL.

  • false— Das Tool SDK oder 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 einen benutzerdefinierten Endpunkt weiterzuleitenURL, legen Sie die AWS_ENDPOINT_URL globale Umgebungsvariable fest.

export AWS_ENDPOINT_URL=http://localhost:4567

Um Anfragen für einen bestimmten AWS-Service Verwenden Sie die AWS_ENDPOINT_URL_<SERVICE> Umgebungsvariable an einen benutzerdefinierten EndpunktURL. Amazon DynamoDB hat ein serviceId von DynamoDB. Für diesen Dienst lautet die URL Umgebungsvariable für den EndpunktAWS_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 ein serviceId von Elastic Beanstalk. Das Tool AWS-Service Der Bezeichner basiert auf dem API Modell, serviceId indem alle Leerzeichen 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 einen dienstspezifischen 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 der dienstspezifische Endpunkt URLs für Amazon S3 eingerichtet wird und AWS Elastic Beanstalk im selben Profil. AWS Elastic Beanstalk hat ein serviceId von Elastic Beanstalk. Das Tool AWS-Service Der 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 auf der Leitung. 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 Funktion „Rolle IAM übernehmen“ konfiguriert wurden, werden SDK nur Dienstkonfigurationen für das angegebene Profil verwendet. 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 verwenden B und in Ihrem Code Amazon anrufenEC2, 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. Für API Anrufe an einen bestimmten AWS-Service wird die folgende Reihenfolge verwendet, um einen Wert auszuwählen:

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

    • Für den AWS CLI, dies ist der Wert, 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 Konfigurationsobjekt.

  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. Jeder Standardendpunkt URL für den jeweiligen AWS-Service wird zuletzt verwendet.

Kompatibilität mit AWS SDKs

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