

AWS Tools for PowerShell V4 已进入维护模式。

我们建议您迁移到 [AWS Tools for PowerShell V5](https://docs.aws.amazon.com/powershell/v5/userguide/)。有关如何迁移的更多详细信息和信息，请参阅我们的[维护模式公告](https://aws.amazon.com/blogs/developer/aws-tools-for-powershell-v4-maintenance-mode-announcement/)。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在 cmdlet 中使用 ClientConfig 参数
<a name="pstools-clientconfig"></a>

当您连接到某个服务时，`ClientConfig` 参数可用于指定某些配置设置。此参数大多数可能的属性都是在 [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Runtime/TClientConfig.html) 类中定义的，该类继承到 AWS 服务的 API 中。有关简单继承的示例，请参阅 [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/Keyspaces/TKeyspacesConfig.html) 类。此外，一些服务定义了仅适用于该服务的附加属性。有关已定义的其他属性的示例，请参阅 [https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html](https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/S3/TS3Config.html) 类，特别是 `ForcePathStyle` 属性。

## 使用 `ClientConfig` 参数
<a name="clientconfig-operation"></a>

要使用 `ClientConfig` 参数，您可以在命令行上将其指定为 `ClientConfig` 对象，也可以使用 PowerShell splatting 方法将参数值集合作为一个单元传递给命令。以下示例中显示了这些方法。这些示例假设已安装并导入 `AWS.Tools.S3` 模块，并且您拥有具有适当权限的 `[default]` 凭据配置文件。

******定义一个 `ClientConfig` 对象**

```
$s3Config = New-Object -TypeName Amazon.S3.AmazonS3Config
$s3Config.ForcePathStyle = $true
$s3Config.Timeout = [TimeSpan]::FromMilliseconds(150000)
Get-S3Object -BucketName <BUCKET_NAME> -ClientConfig $s3Config
```

**使用 PowerShell splating 添加 `ClientConfig` 属性**

```
$params=@{
    ClientConfig=@{
        ForcePathStyle=$true
        Timeout=[TimeSpan]::FromMilliseconds(150000)
    }
    BucketName="<BUCKET_NAME>"
}

Get-S3Object @params
```

## 使用未定义的属性
<a name="clientconfig-undefined"></a>

使用 PowerShell splatting 时，如果您指定的 `ClientConfig` 属性不存在，则直到运行时 AWS Tools for PowerShell 才会检测到错误，此时它会返回异常。修改上面的示例：

```
$params=@{
    ClientConfig=@{
        ForcePathStyle=$true
        UndefinedProperty="Value"
        Timeout=[TimeSpan]::FromMilliseconds(150000)
    }
    BucketName="<BUCKET_NAME>"
}

Get-S3Object @params
```

此示例生成类似以下内容的例外：

```
Cannot bind parameter 'ClientConfig'. Cannot create object of type "Amazon.S3.AmazonS3Config". The UndefinedProperty property was not found for the Amazon.S3.AmazonS3Config object.
```

## 指定 AWS 区域
<a name="clientconfig-region"></a>

您可以使用 `ClientConfig` 参数为命令设置 AWS 区域。区域是通过 `RegionEndpoint` 属性设置的。AWS Tools for PowerShell 根据以下优先级计算要使用的区域：

1. `-Region` 参数

1. `ClientConfig` 参数中传递的区域

1. PowerShell 会话状态

1. 共享 AWS `config` 文件

1. 环境变量

1. Amazon EC2 实例元数据（如果启用）。