

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 主機字首注入
<a name="feature-host-prefix"></a>

**注意**  
如需了解設定頁面配置或解譯以下 **Support AWS SDKs和工具**資料表的說明，請參閱 [了解本指南的設定頁面](settings-reference.md#settingsPages)。

主機字首插入是一項功能，其中 AWS SDKs會自動在特定 API 操作的服務端點主機名稱前面加上字首。此字首可以是靜態字串或動態值，其中包含來自請求參數的資料。

例如，使用 Amazon Simple Storage Service 在 Amazon S3 物件或儲存貯體上執行動作時，軟體開發套件會取代最終 API 端點中的儲存貯體名稱和 AWS 帳戶 ID。

雖然一般 AWS 服務端點需要此行為，但在使用 VPC 端點或本機測試工具等自訂端點時，可能會導致問題。在這些情況下，您可能需要停用主機字首注入。

使用下列項目設定此功能：

**`disable_host_prefix_injection` - 共用 AWS `config`檔案設定`AWS_DISABLE_HOST_PREFIX_INJECTION` - 環境變數`aws.disableHostPrefixInjection` - JVM 系統屬性：僅限 Java/Kotlin**  
此設定會控制軟體開發套件或工具是否透過在軟體開發套件的用戶端物件或變數中定義的主機字首前加上來修改端點主機名稱。  
**預設值**：`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
```

## 主機字首注入的範例
<a name="hostprefix_examples"></a>

下表範例顯示 SDKs如何在啟用和停用主機字首注入時修改最終端點。
+ **主機字首**：在 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和工具
<a name="host-prefix-sdk-compat"></a>

下列 SDKs 支援本主題中所述的功能和設定。會記下任何部分例外狀況。 適用於 Java 的 AWS SDK 和 適用於 Kotlin 的 AWS SDK 僅支援任何 JVM 系統屬性設定。


| SDK | 支援 | 備註或更多資訊 | 
| --- | --- | --- | 
| [AWS CLI  ](https://docs.aws.amazon.com/cli/latest/userguide/) v2 | 是 |  | 
| [適用於 C\+\+ 的 SDK](https://docs.aws.amazon.com/sdk-for-cpp/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html](https://sdk.amazonaws.com/cpp/api/LATEST/aws-cpp-sdk-core/html/struct_aws_1_1_client_1_1_client_configuration.html)。 | 
| [適用於 Go V2 的 SDK (1.x)](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/) | 否 | 可以使用[中介軟體](https://docs.aws.amazon.com/sdk-for-go/v2/developer-guide/configure-endpoints.html)停用。 | 
| [適用於 Go 的 SDK 1.x (V1)](https://docs.aws.amazon.com/sdk-for-go/latest/developer-guide/) | 否 |  | 
| [適用於 Java 的 SDK 2.x](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#DISABLE_HOST_PREFIX_INJECTION](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/core/client/config/SdkAdvancedClientOption.html#DISABLE_HOST_PREFIX_INJECTION)。 | 
| [適用於 Java 的 SDK 1.x](https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html)。 | 
| [適用於 JavaScript 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3-control/](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/s3-control/)。 | 
| [適用於 JavaScript 2.x 的 SDK](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/Config.html)。 | 
| [適用於 Kotlin 的 SDK](https://docs.aws.amazon.com/sdk-for-kotlin/latest/developer-guide/) | 否 |  | 
| [適用於 .NET 4.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/Runtime/TClientConfig.html)。 | 
| [適用於 .NET 3.x 的 SDK](https://docs.aws.amazon.com/sdk-for-net/v3/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html)。 | 
| [適用於 PHP 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-php/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClient.html](https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.AwsClient.html)。 | 
| [適用於 Python 的 SDK (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html) | 是 | 您可以使用 ，在用戶端的程式碼中設定 [https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html](https://botocore.amazonaws.com/v1/documentation/api/latest/reference/config.html)。 | 
| [適用於 Ruby 的 SDK 3.x](https://docs.aws.amazon.com/sdk-for-ruby/latest/developer-guide/) | 否 | 不支援設定 ，但可以使用 在用戶端的程式碼中設定 ：[https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/lib/aws-sdk-core/plugins/endpoint_pattern.rb#L8](https://github.com/aws/aws-sdk-ruby/blob/version-3/gems/aws-sdk-core/lib/aws-sdk-core/plugins/endpoint_pattern.rb#L8)。 | 
| [適用於 Rust 的 SDK](https://docs.aws.amazon.com/sdk-for-rust/latest/dg/) | 否 |  | 
| [適用於 Swift 的 SDK](https://docs.aws.amazon.com/sdk-for-swift/latest/developer-guide/) | 否 |  | 
| [PowerShell V5 的工具](https://docs.aws.amazon.com/powershell/latest/userguide/) | 否 | 不支援設定，但可以使用參數 包含在特定 cmdlet 中-ClientConfig @{DisableHostPrefixInjection = $true}。 | 
| [PowerShell V4 的工具](https://docs.aws.amazon.com/powershell/v4/userguide/) | 否 | 不支援設定，但可以使用參數 包含在特定 cmdlet 中-ClientConfig @{DisableHostPrefixInjection = $true}。 | 