翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ホストプレフィックスインジェクション
注記
設定ページのレイアウトの理解、または以下の AWS SDKs「」を参照してくださいこのガイドの設定ページについて。
ホストプレフィックスインジェクションは、 AWS SDKsが特定の API オペレーションのサービスエンドポイントのホスト名にプレフィックスを自動的に付加する機能です。このプレフィックスは、静的文字列でも、リクエストパラメータのデータを含む動的な値でもかまいません。
例えば、Amazon Simple Storage Service を使用して Amazon S3 オブジェクトまたはバケットに対してアクションを実行する場合、SDK は最終的な API エンドポイントでバケット名と AWS アカウント ID を置き換えます。
この動作は通常の AWS サービスエンドポイントに必要ですが、VPC エンドポイントやローカルテストツールなどのカスタムエンドポイントを使用すると問題が発生する可能性があります。このような場合は、ホストプレフィックスインジェクションの無効化が必要になる場合があります。
この機能を設定するには、以下のように使用します。
disable_host_prefix_injection- 共有 AWSconfigファイル設定AWS_DISABLE_HOST_PREFIX_INJECTION- 環境変数aws.disableHostPrefixInjection- JVM システムプロパティ: Java/Kotlin のみ-
この設定は、SDK またはツールが SDK のクライアントオブジェクトまたは変数で定義されているホストプレフィックスを付加してエンドポイントホスト名を変更するかどうかを制御します。
デフォルト値:
false有効な値:
-
true- ホストプレフィックスインジェクションを無効にします。SDK はエンドポイントのホスト名を変更しません。 -
false– ホストプレフィックスインジェクションを有効にします。SDK は、エンドポイントのホスト名の先頭にホストプレフィックスを付加します。
-
config ファイルにこの値を設定する例を以下に示します。
[default] disable_host_prefix_injection = true
Linux/macOS のコマンドラインによる環境変数の設定の例を以下に示します。
export AWS_DISABLE_HOST_PREFIX_INJECTION=true
Windows のコマンドラインによる環境変数の設定の例を以下に示します。
setx AWS_DISABLE_HOST_PREFIX_INJECTION true
ホストプレフィックスインジェクションの例
次の例の表は、ホストプレフィックスインジェクションが有効になっている場合と無効になっている場合に SDK が最後のエンドポイントを変更する方法を示しています。
-
ホストプレフィックス: SDK のクライアントオブジェクトまたはコード内の変数に設定されたホストプレフィックスプロパティ文字列のテンプレート。
-
入力: SDK のクライアントオブジェクトまたはコード内の変数に設定された追加の入力。
-
クライアントエンドポイント: クライアントの派生エンドポイント。
-
設定値: 前の設定の解決された値。
-
結果のエンドポイント: SDK クライアントが API コールを行うために使用する結果のエンドポイント。
| ホストプレフィックス | 入力 | クライアントエンドポイント | 設定値 | 結果のエンドポイント |
|---|---|---|---|---|
| "data." | {} | "https://service.us-west-2.amazonaws.com" | false | "https://data.service.us-west-2.amazonaws.com" |
| "{Bucket}-{AccountId}." | Bucket: "amzn-s3-demo-bucket1", AccountId:"123456789012" | "https://service.us-west-2.amazonaws.com" | false | "https://amzn-s3-demo-bucket1-123456789012.service.us-west-2.amazonaws.com" |
| "data." | {} | "https://override.us-west-2.amazonaws.com" (as an override endpoint) | true | "https://override.us-west-2.amazonaws.com" |
AWS SDKsとツールによるサポート
以下の SDK は、このトピックで説明する機能と設定をサポートします。部分的な例外があれば、すべて記載されています。JVM システムプロパティ設定は、 AWS SDK for Java と AWS SDK for Kotlin でのみサポートされます。
| SDK | サポート | 注意または詳細情報 |
|---|---|---|
| AWS CLI v2 | はい | |
| SDK for C++ | 不可 | 設定はサポートされていませんが、enableHostPrefixInjection |
| SDK for Go V2 (1.x) |
不可 | ミドルウェアを使用して無効にできます。 |
| SDK for Go 1.x (V1) | 不可 | |
| SDK for Java 2.x | 不可 | 設定はサポートされていませんが、SdkAdvancedClientOption.DISABLE_HOST_PREFIX_INJECTION |
| SDK for Java 1.x | 不可 | 設定はサポートされていませんが、withDisableHostPrefixInjection を使用してクライアントのコードで設定できます。 |
| SDK for JavaScript 3.x | 不可 | 設定はサポートされていませんが、disableHostPrefix を使用してクライアントのコードで設定できます。 |
| SDK for JavaScript 2.x | 不可 | 設定はサポートされていませんが、hostPrefixEnabled を使用してクライアントのコードで設定できます。 |
| SDK for Kotlin | 不可 | |
| SDK for .NET 4.x | 不可 | 設定はサポートされていませんが、DisableHostPrefixInjection を使用してクライアントのコードで設定できます。 |
| SDK for .NET 3.x | 不可 | 設定はサポートされていませんが、DisableHostPrefixInjection を使用してクライアントのコードで設定できます。 |
| SDK for PHP 3.x | 不可 | 設定はサポートされていませんが、disable_host_prefix_injection を使用してクライアントのコードで設定できます。 |
| SDK for Python (Boto3) |
はい | inject_host_prefix |
| SDK for Ruby 3.x | 不可 | 設定はサポートされていませんが、disable_host_prefix_injection |
| SDK for Rust | 不可 | |
| SDK for Swift | 不可 | |
| PowerShell V5 のツール | 不可 | 設定はサポートされていませんが、パラメータ -ClientConfig @{DisableHostPrefixInjection = $true} を使用して特定のコマンドレットに含めることができます。 |
| PowerShell V4 のツール | 不可 | 設定はサポートされていませんが、パラメータ -ClientConfig @{DisableHostPrefixInjection = $true} を使用して特定のコマンドレットに含めることができます。 |