View a markdown version of this page

Injection de préfixe d'hôte - AWS SDK et outils

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Injection de préfixe d'hôte

Note

Pour vous aider à comprendre la mise en page des pages de paramètres ou à interpréter le tableau Support par AWS les SDK et les outils qui suit, consultezComprendre les pages de paramètres de ce guide.

L'injection de préfixe d'hôte est une fonctionnalité dans laquelle AWS les SDK ajoutent automatiquement un préfixe au nom d'hôte des points de terminaison de service pour certaines opérations d'API. Ce préfixe peut être une chaîne statique ou une valeur dynamique qui inclut les données des paramètres de votre demande.

Par exemple, lorsque vous utilisez Amazon Simple Storage Service pour effectuer des actions sur des objets ou des compartiments Amazon S3, le SDK remplace le nom et l' Compte AWS ID de votre compartiment dans le point de terminaison final de l'API.

Bien que ce comportement soit requis pour les points de terminaison de AWS service normaux, il peut entraîner des problèmes lors de l'utilisation de points de terminaison personnalisés tels que des points de terminaison VPC ou des outils de test locaux. Dans ces cas, vous devrez peut-être désactiver l'injection de préfixe d'hôte.

Configurez cette fonctionnalité à l'aide des méthodes suivantes :

disable_host_prefix_injection- réglage des AWS config fichiers partagés
AWS_DISABLE_HOST_PREFIX_INJECTION- variable d'environnement
aws.disableHostPrefixInjection- Propriété du système JVM : uniquement Java/Kotlin

Ce paramètre contrôle si le SDK ou l'outil modifiera le nom d'hôte du point de terminaison en ajoutant un préfixe d'hôte tel que défini dans l'objet ou la variable client de votre SDK.

Valeur par défaut : false

Valeurs valides:

  • true— Désactive l'injection de préfixe d'hôte. Le SDK ne modifiera pas le nom d'hôte du terminal.

  • false— Activez l'injection de préfixe d'hôte. Le SDK ajoutera le préfixe d'hôte au nom d'hôte du point de terminaison.

Exemple de définition de cette valeur dans le config fichier :

[default] disable_host_prefix_injection = true

Linux/macOS exemple de définition de variables d'environnement via la ligne de commande :

export AWS_DISABLE_HOST_PREFIX_INJECTION=true

Exemple Windows de définition de variables d'environnement via la ligne de commande :

setx AWS_DISABLE_HOST_PREFIX_INJECTION true

Exemples d'injection de préfixe d'hôte

Le tableau d'exemples suivant montre comment les SDK modifient le point de terminaison final lorsque l'injection de préfixe d'hôte est activée et désactivée.

  • Préfixe d'hôte  : modèle de chaîne de propriété de préfixe d'hôte définie sur l'objet client ou la variable du SDK dans le code.

  • Entrées  : entrées supplémentaires définies sur l'objet client ou la variable du SDK dans le code.

  • Point de terminaison client  : point de terminaison dérivé du client.

  • Valeur de réglage  : valeur résolue pour le réglage précédent.

  • Point de terminaison résultant  : point de terminaison que le client du SDK utilise pour effectuer l'appel d'API.

Préfixe d'hôte Inputs Point de terminaison client Valeur de réglage Point final résultant
« données ». {} "https://service.us-west-2.amazonaws.com" false "https://data.service.us-west-2.amazonaws.com"
« {Seau} - {AccountId}. » Seau : « 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"
« données ». {} "https://override.us-west-2.amazonaws.com"(en tant que point de terminaison de remplacement) true "https://override.us-west-2.amazonaws.com"

Soutenu par AWS Kits SDK et outils

Les kits SDK suivants prennent en charge les fonctionnalités et les paramètres décrits dans cette rubrique. Toutes les exceptions partielles sont notées. Tous les paramètres de propriété du système JVM sont pris en charge par le AWS SDK pour Java et le AWS SDK pour Kotlin seul.

Kit SDK Pris en charge Remarques ou informations supplémentaires
AWS CLI   v2 Oui
SDK pour C++ Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : enableHostPrefixInjection.
SDK pour Go V2 (1.x) Non Peut être désactivé à l'aide d'un intergiciel.
SDK pour Go 1.x (V1) Non
SDK pour Java 2.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION.
SDK pour Java 1.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : withDisableHostPrefixInjection.
SDK pour 3.x JavaScript Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : disableHostPrefix.
SDK pour 2.x JavaScript Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : hostPrefixEnabled.
SDK pour Kotlin Non
SDK pour .NET 4.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : DisableHostPrefixInjection.
SDK pour .NET 3.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : DisableHostPrefixInjection.
SDK pour PHP 3.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : disable_host_prefix_injection.
SDK pour Python (Boto3) Oui Peut être configuré en code sur le client en utilisant : inject_host_prefix.
SDK pour Ruby 3.x Non Le paramètre n'est pas pris en charge, mais peut être configuré en code sur le client à l'aide de : disable_host_prefix_injection.
SDK pour Rust Non
SDK pour Swift Non
Outils pour PowerShell V5 Non Le paramètre n'est pas pris en charge, mais peut être inclus dans des applets de commande spécifiques à l'aide d'un paramètre. -ClientConfig @{DisableHostPrefixInjection = $true}
Outils pour PowerShell V4 Non Le paramètre n'est pas pris en charge, mais peut être inclus dans des applets de commande spécifiques à l'aide d'un paramètre. -ClientConfig @{DisableHostPrefixInjection = $true}