在 cmdlet 中使用 ClientConfig 参数 - AWS Tools for PowerShell

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

在 cmdlet 中使用 ClientConfig 参数

当您连接到某个服务时,ClientConfig 参数可用于指定某些配置设置。此参数大多数可能的属性都是在 Amazon.Runtime.ClientConfig 类中定义的,该类继承到 AWS 服务的 API 中。有关简单继承的示例,请参阅 Amazon.Keyspaces.AmazonKeyspacesConfig 类。此外,一些服务定义了仅适用于该服务的附加属性。有关已定义的其他属性的示例,请参阅 Amazon.S3.AmazonS3Config 类,特别是 ForcePathStyle 属性。

使用 ClientConfig 参数

要使用 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

使用未定义的属性

使用 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 区域

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

  1. -Region 参数

  2. ClientConfig 参数中传递的区域

  3. PowerShell 会话状态

  4. 共享 AWS config 文件

  5. 环境变量

  6. Amazon EC2 实例元数据(如果启用)。