本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 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 根据以下优先级计算要使用的区域:
-
-Region
参数 -
ClientConfig
参数中传递的区域 -
PowerShell 会话状态
-
共享 AWS
config
文件 -
环境变量
-
Amazon EC2 实例元数据(如果启用)。