在 cmdlets 中使用用 ClientConfig 參數 - AWS Tools for PowerShell (第 4 版)

AWS Tools for PowerShell 第 5 版 (V5) 正在預覽。若要查看可能變更的 V5 內容,並試用新版本,請參閱版本 5 (預覽) 使用者指南。如需有關中斷變更和遷移至 V5 的特定資訊,請參閱該指南中的遷移主題

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

在 cmdlets 中使用用 ClientConfig 參數

當您連線至服務時,此 ClientConfig 參數可用來指定特定組態設定。此參數的大部分可能屬性都是在 Amazon.Runtime.ClientConfig類別中定義,其會繼承至 APIs。 AWS 請參閱 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 splatting 新增 ClientConfig 屬性

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

使用未定義的屬性

使用 PowerShell 潑濺時,如果您指定不存在的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 區域 的 。Region (區域) 是透過 RegionEndpoint 屬性進行設定。會根據下列優先順序 AWS Tools for PowerShell 計算要使用的區域:

  1. -Region 參數

  2. ClientConfig 參數中傳遞的區域

  3. PowerShell 工作階段狀態

  4. 共用 AWS config檔案

  5. 環境變數

  6. Amazon EC2 執行個體中繼資料 (若已啟用)。