View a markdown version of this page

Hostpräfixinjektion - 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.

Hostpräfixinjektion

Anmerkung

Hilfe zum Verständnis des Layouts von Einstellungsseiten oder zur Interpretation der folgenden Tabelle „Unterstützung durch AWS SDKs und Tools“ finden Sie unterDie Einstellungsseiten dieses Handbuchs verstehen.

Bei der Hostpräfix-Injektion handelt es sich um eine Funktion, bei der AWS SDKs dem Hostnamen von Dienstendpunkten für bestimmte API-Operationen automatisch ein Präfix voranstellen. Dieses Präfix kann entweder eine statische Zeichenfolge oder ein dynamischer Wert sein, der Daten aus Ihren Anforderungsparametern enthält.

Wenn Sie beispielsweise Amazon Simple Storage Service verwenden, um Aktionen an Amazon S3-Objekten oder -Buckets auszuführen, ersetzt das SDK Ihren Bucket-Namen und Ihre AWS-Konto ID im endgültigen API-Endpunkt.

Dieses Verhalten ist zwar für normale AWS Service-Endpunkte erforderlich, kann jedoch zu Problemen führen, wenn benutzerdefinierte Endpunkte wie VPC-Endpunkte oder lokale Testtools verwendet werden. In diesen Fällen müssen Sie möglicherweise die Hostpräfixinjektion deaktivieren.

Konfigurieren Sie diese Funktion mithilfe der folgenden Optionen:

disable_host_prefix_injection- Einstellung für gemeinsam genutzte AWS config Dateien
AWS_DISABLE_HOST_PREFIX_INJECTION- Umgebungsvariable
aws.disableHostPrefixInjection- JVM-Systemeigenschaft: nur Java/Kotlin

Diese Einstellung steuert, ob das SDK oder das Tool den Endpunkt-Hostnamen ändert, indem ein Hostpräfix vorangestellt wird, wie im Client-Objekt oder in der Variablen Ihres SDK definiert.

Standardwert: false

Zulässige Werte:

  • true— Deaktiviert die Hostpräfix-Injektion. Das SDK ändert den Hostnamen des Endpunkts nicht.

  • false— Aktiviert die Hostpräfix-Injektion. Das SDK stellt das Hostpräfix dem Hostnamen des Endpunkts voran.

Beispiel für die Einstellung dieses Werts in der config Datei:

[default] disable_host_prefix_injection = true

Linux/macOS Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Windows-Beispiel für das Setzen von Umgebungsvariablen über die Befehlszeile:

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

Beispiele für die Injektion von Host-Präfixen

Die folgende Beispieltabelle zeigt, wie SDKs den endgültigen Endpunkt ändern, wenn die Host-Präfixinjektion aktiviert und deaktiviert ist.

  • Hostpräfix: Die Vorlage der Eigenschaftszeichenfolge für das Hostpräfix, die im Code für das Client-Objekt oder die Variable des SDK festgelegt ist.

  • Eingaben: Zusätzliche Eingaben, die für das Client-Objekt oder die Variable des SDK im Code festgelegt sind.

  • Client-Endpunkt: Der abgeleitete Endpunkt des Clients.

  • Einstellungswert: Aufgelöster Wert für die vorherige Einstellung.

  • Resultierender Endpunkt: Der resultierende Endpunkt, den der SDK-Client für den API-Aufruf verwendet.

Host-Präfix Eingaben Client-Endpunkt Wert setzen Resultierender Endpunkt
„Daten“. {} "https://service.us-west-2.amazonaws.com" false "https://data.service.us-west-2.amazonaws.com"
„{Eimer} - {AccountId}.“ Eimer: „amzn-s3-demo-bucket1",:" 123456789012" AccountId "https://service.us-west-2.amazonaws.com" false "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com"
„Daten.“ {} "https://override.us-west-2.amazonaws.com"(als Override-Endpunkt) true "https://override.us-west-2.amazonaws.com"

Unterstützung von AWS SDKs und Tools

Die folgenden SDKs unterstützen die in diesem Thema beschriebenen Funktionen und Einstellungen. Alle teilweisen Ausnahmen werden vermerkt. Alle JVM-Systemeigenschaftseinstellungen werden von AWS SDK für Java and the AWS SDK für Kotlin only unterstützt.

SDK Unterstützt Hinweise oder weitere Informationen
AWS CLI   v2 Ja
SDK für C++ Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: enableHostPrefixInjection.
SDK für Go V2 (1.x) Nein Kann mithilfe von Middleware deaktiviert werden.
SDK für Go 1.x (V1) Nein
SDK für Java 2.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION.
SDK für Java 1.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: withDisableHostPrefixInjection.
SDK für JavaScript 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: disableHostPrefix.
SDK für JavaScript 2.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: hostPrefixEnabled.
SDK für Kotlin Nein
SDK für.NET 4.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: DisableHostPrefixInjection.
SDK für.NET 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: DisableHostPrefixInjection.
SDK für PHP 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: disable_host_prefix_injection.
SDK für Python (Boto3) Ja Kann auf dem Client im Code konfiguriert werden mit:. inject_host_prefix
SDK für Ruby 3.x Nein Die Einstellung wird nicht unterstützt, kann aber im Code auf dem Client konfiguriert werden mit: disable_host_prefix_injection.
SDK für Rust Nein
SDK für Swift Nein
Tools für PowerShell V5 Nein Die Einstellung wird nicht unterstützt, kann aber mithilfe eines Parameters in bestimmte Cmdlets aufgenommen werden. -ClientConfig @{DisableHostPrefixInjection = $true}
Tools für V4 PowerShell Nein Die Einstellung wird nicht unterstützt, kann aber mithilfe eines Parameters in bestimmte Cmdlets aufgenommen werden. -ClientConfig @{DisableHostPrefixInjection = $true}