組態與憑證檔案設定
您可以將常用的組態設定和憑證儲存在 AWS CLI 維護的檔案中。
這些文件被分為 profiles
。依預設,AWS CLI 會使用在名為 default
的設定檔中找到的設定。若要使用替代設定,您可以建立和參考額外的描述檔。
您可以設定其中一個支援的環境變數,或使用命令列參數,以覆寫個別設定。如需組態設定優先順序的詳細資訊,請參閱 設定 AWS CLI。
注意
如需設定憑證的相關資訊,請參閱 驗證與存取憑證。
組態和憑證檔案的格式
config
和 credentials
檔案會組織成名為設定檔的區段。設定檔是具名的設定集合,且會持續到發生其他設定檔定義列為止。許多設定檔可以儲存於 config
和 credentials
檔案。
這些檔案是使用下列格式的純文字檔案:
-
根據檔案,設定檔名稱會使用下列格式:
-
組態檔案:
[default]
[profile
user1
] -
憑證檔案:
[default]
[
user1
]在
credentials
檔案中建立項目時,請勿使用profile
一字。
-
-
區段中的所有項目均採用
setting_name=value
的一般形式。 -
您可以在列的開頭使用井字號 (
#
),為列加上註解。
每個描述檔可以指定不同的憑證,也可以指定不同的 AWS 區域和輸出格式。為 config
檔案中的設定檔命名時,請包含前綴詞「profile
」,但不要將其包含在 credentials
檔案中。
下列範例顯示 credentials
和 config
檔案,兩者皆具有兩個設定檔、區域和指定輸出。當您執行不含指定設定檔的 AWS CLI 命令時會使用第一個 [預設]。當您執行含有 --profile
user1
參數的 AWS CLI 命令時會使用第二個。
如需詳細資訊以及其他驗證和憑證方式,請參閱 使用 IAM 使用者憑證進行驗證。
組態設定存放在何處?
AWS CLI 會將您使用 aws
configure
指定的敏感憑證資訊存放在名為 credentials
的本機檔案中,而此檔案位於主目錄中名為
的資料夾。您使用 .aws
aws configure
指定的較不敏感組態選項,則存放在名為 config
的本機檔案中,而此檔案也是存放在主目錄中的
資料夾。.aws
將憑證存放到組態檔中
您可以將所有設定檔設定保留在單一檔案中,因為 AWS CLI 可以從 config
檔案讀取憑證。如果兩個檔案中都有共用相同名稱之設定檔的憑證,則憑證檔案中的金鑰具有高優先順序。建議您在 credentials
檔案中保留憑證。各種語言軟體開發套件 (SDK) 也使用這些檔案。如果您除了 AWS CLI 以外還使用其中一個軟體開發套件,請確認憑證是否應該儲存在自己的檔案中。
主目錄的位置根據作業系統而不同,但在 Windows 中是使用環境變數 %UserProfile%
來參考,而在 Unix 系統中是使用 $HOME
或 ~
(波狀符號) 來參考。您可以將 AWS_CONFIG_FILE
和 AWS_SHARED_CREDENTIALS_FILE
環境變數設為其他本機路徑,以指定檔案的非預設位置。如需詳細資訊,請參閱 您可以使用環境變數來設定 AWS CLI。
當您使用指定 AWS Identity and Access Management (IAM) 角色的共用設定檔時,AWS CLI 會呼叫 AWS STS AssumeRole
操作來擷取臨時憑證。然後會存放這些憑證 (在
中)。後續的 AWS CLI 命令會使用快取的臨時憑證,直到過期為止,此時 AWS CLI 會自動重新整理憑證。~/.aws/cli/cache
使用命名設定檔
若未明確定義任何設定檔,系統會使用 default
設定檔。
若要使用命名設定檔,請新增 --profile
選項到命令中。下列範例列出使用 profile-name
user1
設定檔中定義的憑證和設定的所有 Amazon EC2 執行個體。
$
aws ec2 describe-instances --profile user1
如果您要將一個具名設定檔用於多個命令,請將 AWS_PROFILE
環境變數設定為預設設定檔,即可避免在每個命令中指定設定檔。您可以使用 --profile
參數來覆寫此設定。
使用命令設定和檢視組態設定
有數種方法可以使用命令,來檢視和設定您的組態設定。
aws configure
-
執行此命令以快速設定和檢視您的 憑證、區域和輸出格式。下列範例顯示範本值。
$
aws configure
AWS Access Key ID [None]:
AWS Secret Access Key [None]:AKIAIOSFODNN7EXAMPLE
Default region name [None]:wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
Default output format [None]:us-west-2
json
aws configure set
-
您可以使用
aws configure set
來設定任何憑證或組態設定。使用--profile
設定來指定您想要檢視或修改的設定檔。例如,以下命令會在名為
integ
的設定檔中進行region
設定。$
aws configure set region
us-west-2
--profileinteg
若要移除設定,請使用空字串作為值,或在文字編輯器中手動刪除
config
和credentials
檔案中的設定。$
aws configure set cli_pager "" --profile
integ
aws configure get
-
您可以擷取已使用
aws configure get
設定的任何憑證或組態設定。使用--profile
設定來指定您想要檢視或修改的設定檔。例如,以下命令會在名為
region
的設定檔中擷取integ
設定。$
aws configure get
region
--profileinteg
us-west-2
如果輸出是空的,則設定未明確設定,將會使用預設值。
aws configure import
-
匯入從 IAM Web 主控台產生的
CSV
憑證。這不適用於從 IAM Identity Center 產生的憑證;使用 IAM Identity Center 的客戶應使用 aws 來設定 sso。系統會匯入 CSV 檔案,其設定檔名稱與使用者名稱相符。CSV 檔案必須包含以下標頭。-
使用者名稱
-
存取金鑰 ID
-
私密存取金鑰
注意
在初始金鑰對建立過程中,一旦關閉 Download .csv file (下載 .csv 檔案) 對話方塊中,您將無法在關閉對話方塊之後存取私密金鑰。如果您需要
.csv
檔案,您必須自己建立一個包含所需標頭和您所儲存金鑰對資訊的檔案。如果您無法存取您的金鑰對資訊,則必須建立新的金鑰對。$
aws configure import --csv
file://credentials.csv
-
aws configure list
-
若要列出所有組態資料,請使用
aws configure list
命令。這個命令會顯示您已設定之所有設定的 AWS CLI 名稱、其數值,以及從中擷取組態的位置。$
aws configure list
Name Value Type Location ---- ----- ---- -------- profile <not set> None None access_key ****************ABCD shared-credentials-file secret_key ****************ABCD shared-credentials-file region us-west-2 env AWS_DEFAULT_REGION
aws configure list-profiles
-
若要列出所有設定檔名稱,請使用
aws configure list-profiles
命令。$
aws configure list-profiles
default test
aws configure sso
-
執行此命令以快速設定和檢視您的 AWS IAM Identity Center 憑證、區域和輸出格式。下列範例顯示範本值。
$
aws configure sso
SSO session name (Recommended):
my-sso
SSO start URL [None]:
https://my-sso-portal.awsapps.com/start
SSO region [None]:
us-east-1
SSO registration scopes [None]:
sso:account:access
aws configure sso-session
-
執行此命令以快速設定和檢視您於
credentials
和config
檔案中,sso 工作階段區段的 AWS IAM Identity Center 憑證、區域和輸出格式。下列範例顯示範本值。$
aws configure sso-session
SSO session name:
my-sso
SSO start URL [None]:
https://my-sso-portal.awsapps.com/start
SSO region [None]:
us-east-1
SSO registration scopes [None]:
sso:account:access
設定新的組態和憑證命令範例
您可以從下列範例了解如何針對不同驗證方法,用憑證、區域和指定輸出來設定預設設定檔。
支援的 config
檔案設定
config
檔案中支援下列設定。將會使用指定的 (或預設) 描述檔中列出的數值,除非因為有相同名稱的環境變數或相同名稱的命令列選項而被覆寫。如需有關哪些順序設定具有高優先順序的詳細資訊,請參閱 設定 AWS CLI
全域設定
-
aws_access_key_id
-
指定憑證中使用的 AWS 存取金鑰來驗證命令請求。雖然這可以存放在
config
檔案中,但建議您存放在credentials
檔案中。可由
AWS_ACCESS_KEY_ID
環境變數所覆寫。您不能將存取金鑰 ID 指定為命令列選項。aws_access_key_id =
AKIAIOSFODNN7EXAMPLE
aws_secret_access_key
-
指定憑證中使用的 AWS 私密金鑰來驗證命令請求。雖然這可以存放在
config
檔案中,但建議您存放在credentials
檔案中。可由
AWS_SECRET_ACCESS_KEY
環境變數所覆寫。您不能將私密存取金鑰指定為命令列選項。aws_secret_access_key =
wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
aws_session_token
-
指定 AWS 工作階段字符。只有當您手動指定臨時的安全憑證時,才需要工作階段字符。雖然這可以存放在
config
檔案中,但建議您存放在credentials
檔案中。可由
AWS_SESSION_TOKEN
環境變數所覆寫。您不能將工作階段字符指定為命令列選項。aws_session_token =
AQoEXAMPLEH4aoAH0gNCAPyJxz4BlCFFxWNE1OPTgk5TthT+FvwqnKwRcOIfrRh3c/LTo6UDdyJwOOvEVPvLXCrrrUtdnniCEXAMPLE/IvU1dYUg2RVAJBanLiHb4IgRmpRV3zrkuWJOgQs8IZZaIv2BXIa2R4Olgk
ca_bundle
-
指定用於驗證 SSL 憑證的憑證授權機構憑證套件 (副檔名為
.pem
的檔案)。可由
AWS_CA_BUNDLE
環境變數或--ca-bundle
命令列選項所覆寫。ca_bundle =
dev/apps/ca-certs/cabundle-2019mar05.pem
cli_auto_prompt
-
為 AWS CLI 第 2 版啟用自動提示。有兩種設定可以使用:
-
在您每次嘗試執行
aws
命令時,on
都會使用完整的自動提示模式。這包括在完整的命令或不完整的命令之後按下 ENTER。cli_auto_prompt = on
-
on-partial
使用部分自動提示模式。如果命令不完整或因用戶端驗證錯誤而無法執行,則會使用自動提示。如果您有預先存在的指令碼、Runbook,或是您只希望系統自動提示您不熟悉的命令 (而非針對每個命令發出提示),這個模式就特別有用。cli_auto_prompt = on-partial
您可以使用
aws_cli_auto_prompt
環境變數或--cli-auto-prompt
及--no-cli-auto-prompt
命令列參數來覆寫此設定。如需 AWS CLI 第 2 版自動提示功能的相關資訊,請參閱 讓 AWS CLI 提示您輸入命令提示。
-
cli_binary_format
-
指定 AWS CLI 第 2 版如何解譯二進位輸入參數。它可能是以下其中一個數值:
-
base64 – 這是預設值。以二進位大型物件 (BLOB) 輸入的輸入參數接受 base64 編碼的字串。若要傳遞實際的二進位內容,請將內容放置在檔案中,並在參數值中使用
fileb://
前綴,以提供檔案路徑和名稱。若要傳遞包含在檔案中的 base64 編碼文字,請在參數值中使用file://
前綴,以提供檔案路徑和名稱。 -
raw-in-base64-out — AWS CLI 第 1 版的預設值。如果設定的值為
raw-in-base64-out
,則會將使用file://
字首參照的檔案讀取為文字,然後 AWS CLI 嘗試將其編碼為二進位。
此項目沒有同等環境變數。您可以使用
--cli-binary-format raw-in-base64-out
參數,在單一命令上指定數值。cli_binary_format = raw-in-base64-out
如果您使用
fileb://
前綴表示法在檔案中參照二進位值,AWS CLI 一律預期檔案包含原始二進位內容,而且不會嘗試轉換該數值。如果您使用
file://
前綴表示法在檔案中參照二進位值,AWS CLI 會根據目前的cli_binary_format
設定來處理檔案。如果設定值為base64
(未明確設定時的預設值),AWS CLI 預期檔案會包含 base64 編碼文字。如果該設定值為raw-in-base64-out
,AWS CLI 預期檔案會包含原始二進位內容。 -
cli_history
-
預設為停用。此設定會啟用 AWS CLI 命令歷史記錄。啟用此設定後,AWS CLI 就會記錄
aws
命令的歷史記錄。cli_history = enabled
您可以使用
aws history list
命令來列出歷史記錄,並且在aws history show
命令中使用產生的command_ids
取得詳細資訊。如需詳細資訊,請參閱 AWS CLI 參考指南中的aws history
。 cli_pager
-
指定用於輸出的分頁程式。根據預設,AWS CLI 第 2 版會透過作業系統的預設分頁程式傳回所有輸出。
可以由 AWS_PAGER 環境變數所覆寫。
cli_pager=less
若要停用所有使用外部分頁程式,請將變數設定為空字串,如下列範例所示。
cli_pager=
cli_timestamp_format
-
指定輸出包含的時間戳記值格式。您可以指定下列任一數值:
-
iso8601 – AWS CLI 第 2 版的預設值。如果指定,AWS CLI 會根據 ISO 8601
將所有時間戳記重新格式化。 ISO 8601 格式化的時間戳記如下所示。第一個範例會以國際標準時間 (UTC)
顯示時間,方法是在時間之後併入 Z
。日期和時間使用T
分隔。2019-10-31T22:21:41Z
若要指定不同的時區,不要指定
Z
,而是指定+
或-
與距離所需 UTC 之前或之後的小時數 (兩位數形式)。下列範例顯示與前一個範例相同的時間,但調整為太平洋標準時間,它是 UTC 後八小時。2019-10-31T14:21:41-08
-
wire – AWS CLI 第 1 版的預設值。如果指定,AWS CLI 會確切顯示 HTTP 查詢回應中所接收的所有時間戳記值。
此項目沒有同等環境變數或命令列選項。
cli_timestamp_format = iso8601
-
credential_process
-
指定外部命令,供 AWS CLI 執行來產生或擷取此命令所用的身分驗證憑證。命令必須以特定格式傳回憑證。如需有關如何使用此設定的詳細資訊,請參閱 透過外部程序取得憑證。
此項目沒有同等環境變數或命令列選項。
credential_process =
/opt/bin/awscreds-retriever --username susan
credential_source
-
在 Amazon EC2 執行個體或容器中使用,以指定 AWS CLI 可以找到用於擔任您使用
role_arn
參數所指定角色的憑證。您無法在同一個描述檔中同時指定source_profile
和credential_source
。此參數可以有下列三個數值中的一個:
-
Enviornment – 指定 AWS CLI 從環境變數擷取來源憑證。
-
Ec2InstanceMetadata – 指定 AWS CLI 將使用附加到 EC2 執行個體描述檔的 IAM 角色來取得來源憑證。
-
EcsContainer – 指定 AWS CLI 將使用連接至 ECS 容器的 IAM 角色作為來源憑證。
credential_source = Ec2InstanceMetadata
-
duration_seconds
-
指定角色工作階段的最大持續時間 (以秒為單位)。此數值的範圍可以從 900 秒 (15 分鐘) 到角色的最大工作階段持續時間設定的數值 (其最大值為 43200)。這是選用參數,並且依預設,此數值會設為 3600 秒。
external_id
-
指定一個唯一識別符,第三方用來在其客戶帳戶擔任角色。這映射到
ExternalId
操作的AssumeRole
參數。只有在角色的信任政策指定ExternalId
的數值時,才需要此參數。如需詳細資訊,請參閱 IAM 使用者指南中的將 AWS 資源的存取權授予第三方時如何使用外部 ID。 max_attempts
-
指定 AWS CLI 重試處理常式使用的重試次數上限值,其中初始呼叫會計入您提供的
max_attempts
數值。您可以使用
AWS_MAX_ATTEMPTS
環境變數來覆寫此數值。max_attempts =
3
mfa_serial
-
擔任角色時使用的 MFA 裝置識別碼。只有在所擔任角色的信任政策包含要求 MFA 身分驗證的條件時才具強制性。此數值可以是硬體裝置的序號 (例如
GAHT12345678
) 或虛擬 MFA 裝置的 Amazon Resource Name (ARN) (例如arn:aws:iam::123456789012:mfa/
)。user
output
-
對於請求使用此描述檔的命令,指定預設輸出格式。您可以指定下列任何數值:
可由
AWS_DEFAULT_OUTPUT
環境變數或--output
命令列選項所覆寫。output =
table
parameter_validation
-
指定 AWS CLI 用戶端在將參數傳送到 AWS 服務端點之前,是否嘗試驗證參數。
-
true – 這是預設值。如果指定,AWS CLI 會執行命令列參數的本機驗證。
-
false – 如果指定,AWS CLI 在將命令列參數傳送到 AWS 服務端點之前,不會驗證參數。
此項目沒有同等環境變數或命令列選項。
parameter_validation = false
-
region
-
對於使用此描述檔請求的命令,指定要將請求傳送到其中的 AWS 區域。
-
您可以指定可用於所選服務的任何區域程式碼,如 Amazon Web Services 一般參考 中的 AWS 區域與端點所列。
-
aws_global
可讓您針對支援區域端點以外之全域端點的服務,指定全域端點,例如 AWS Security Token Service (AWS STS) 和 Amazon Simple Storage Service (Amazon S3)。
您可以使用
AWS_REGION
環境變數、AWS_DEFAULT_REGION
環境變數或--region
命令列選項來覆寫此數值。region =
us-west-2
-
retry_mode
-
指定 AWS CLI 使用的重試模式。有三種可用的重試模式:傳統 (預設)、標準和自適應。如需有關重試的詳細資訊,請參閱 AWS CLI 重試。
您可以使用
AWS_RETRY_MODE
環境變數來覆寫此數值。retry_mode =
standard
role_arn
-
指定您要用來執行 AWS CLI 命令之 IAM 角色的 Amazon Resource Name (ARN)。您還必須指定下列其中一個參數,以識別具有許可能擔任此角色的憑證:
-
source_profile
-
credential_source
role_arn = arn:aws:iam::
123456789012
:role/role-name
環境變數 AWS_ROLE_ARN 會覆寫此設定。
如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色。
-
role_session_name
-
指定要連接到角色工作階段的名稱。此數值會在
RoleSessionName
呼叫 AWS CLI 操作時提供給AssumeRole
參數,並成為所擔任角色使用者 ARN 的一部分:arn:aws:sts::
。這是選擇性的參數。若您未提供此數值,將會自動產生工作階段名稱。此名稱會出現在與此工作階段相關聯之項目的 AWS CloudTrail 日誌中。123456789012
:assumed-role/role_name
/role_session_name
role_session_name =
maria_garcia_role
環境變數 AWS_ROLE_SESSION_NAME 會覆寫此設定。
如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色。
source_profile
-
指定具有長期憑證、AWS CLI 可用來擔任您使用
role_arn
參數所指定角色的具名描述檔。您無法在同一個描述檔中同時指定source_profile
和credential_source
。source_profile =
production-profile
sso_account_id
-
指定包含 IAM 角色的 AWS 帳戶 ID,該角色具有您要授予關聯 IAM Identity Center 使用者的權限。
此設定沒有環境變數或命令列選項。
sso_account_id = 123456789012
sso_region
-
指定包含 AWS 存取入口網站主機的 AWS 區域。這與預設的 CLI
region
參數不同,且可以是與其不同的區域。此設定沒有環境變數或命令列選項。
sso_region = us_west-2
sso_registration_scopes
-
要針對
sso-session
授權的逗號分隔清單範圍。範圍授權對 IAM Identity Center 承載字符授權端點的存取。有效範圍是一個字串,例如sso:account:access
。這個設定不適用於舊版不可重新整理的組態設定。sso_registration_scopes = sso:account:access
sso_role_name
-
使用此設定檔時,指定定義使用者權限的 IAM 角色的易記名稱。
此設定沒有環境變數或命令列選項。
sso_role_name = ReadAccess
sso_start_url
-
指定指向組織 AWS 存取入口網站的 URL。AWS CLI 使用此 URL 與 IAM Identity Center 服務建立工作階段,以驗證其使用者。若要尋找您的 AWS 存取入口網站 URL,請使用以下選項之一:
-
開啟您的邀請電子郵件,將列出 AWS 存取入口網站 URL。
-
開啟 AWS IAM Identity Center 主控台 https://console.aws.amazon.com/singlesignon/
。AWS 存取入口網站 URL 將在您的設定中列出。
此設定沒有環境變數或命令列選項。
sso_start_url =
https://my-sso-portal.awsapps.com/start
-
use_fips_endpoint
部分 AWS 服務在部分區域提供支援聯邦資訊處理標準 (FIPS) 140-2
的端點。AWS 服務支援 FIPS 時,此設定會指定 AWS CLI 應使用的 FIPS 端點。與標準的 AWS 端點不同,FIPS 端點使用的是遵守 FIPS 140-2 的 TLS 軟體程式庫。會與美國政府互動的企業可能需要這些端點。 如果已定義,
AWS_USE_FIPS_ENDPOINT
環境變數和--endpoint-url
指令列選項會覆寫此環境變數。web_identity_token_file
-
指定檔案的路徑,其包含由身分提供者提供的 OAuth 2.0 存取字符或 OpenID Connect ID 字符。AWS CLI 會載入此檔案的內容,並將其作為
WebIdentityToken
引數傳遞至AssumeRoleWithWebIdentity
操作。環境變數
AWS_WEB_IDENTITY_TOKEN_FILE
會覆寫此設定。如需使用 Web 身分的詳細資訊,請參閱 擔任具有 Web 身分的角色。
tcp_keepalive
-
指定 AWS CLI 用戶端是否使用 TCP 持續連線封包。
此項目沒有同等環境變數或命令列選項。
tcp_keepalive = false
S3 自訂命令設定
Amazon S3 支援多種設定來設定 AWS CLI 如何執行 Amazon S3 操作。有些適用於 s3api
和 s3
命名空間中的所有 S3 命令。其他則專用於 S3「自訂」命令,這些命令摘錄常見的操作,而不僅止於一對一映射到 API 操作。aws s3
傳輸命令 cp
、sync
、mv
和 rm
有額外設定,供您用來控制 S3 傳輸。
您可以在 config
檔案中指定 s3
巢狀設定,以設定所有這些選項。每個設定都各自一行縮排。
注意
這些設定完全是選用。您無需設定任何這些設定,就應該能夠成功使用 aws s3
傳輸命令。提供這些設定可讓您基於效能而調整,或控制您執行這些 aws
s3
命令的特定環境。
這些設定全部都在 config
檔案中的最上層 s3
索引鍵之下設定,如以下 development
描述檔的範例所示。
[profile development] s3 = max_concurrent_requests = 20 max_queue_size = 10000 multipart_threshold = 64MB multipart_chunksize = 16MB max_bandwidth = 50MB/s use_accelerate_endpoint = true addressing_style = path
以下設定適用於 s3
或 s3api
命名空間中的任何 S3 命令。
addressing_style
-
指定要使用的定址樣式。這控制儲存貯體名稱是否位於主機名稱或為 URL 的一部分。有效值為:
path
、virtual
和auto
。預設值為auto
。建構 Amazon S3 端點有兩種樣式。第一種稱為
virtual
,並且在主機名稱中包含儲存貯體名稱。例如:https://
。或者,如果使用bucketname
.s3.amazonaws.compath
樣式,則儲存貯體名稱就如同 URI 中的路徑,例如https://s3.amazonaws.com/
。CLI 中的預設值是使用bucketname
auto
,將會儘可能嘗試使用virtual
樣式,但在需要時會回復為path
樣式。例如,如果您的儲存貯體名稱與 DNS 不相容,則儲存貯體名稱不能作為主機名稱的一部分,而必須在路徑中。使用auto
時,CLI 會偵測到這個情況,並自動切換到path
樣式。如果您將定址樣式設為path
,則必須確保您在 AWS CLI 中設定的 AWS 區域符合儲存貯體的區域。 payload_signing_enabled
-
指定是否以 SHA256 簽署 sigv4 承載。在預設情況下,使用 HTTPS 來串流上傳時 (
UploadPart
和PutObject
) 會停用此參數。根據預設,在串流上傳時 (UploadPart
和PutObject
),這會設定為false
,但僅限於ContentMD5
存在 (依預設會產生) 且端點使用 HTTPS 的情況。如果設定為 true,S3 請求會收到 SHA256 檢查總和形式的額外內容驗證,這是為您計算並且包含在請求簽章中。如果設定為 false,則不計算檢查總和。停用此參數有助於降低檢查總和計算所造成的效能負荷。
use_dualstack_endpoint
-
對所有
s3
和s3api
命令使用 Amazon S3 雙重 IPv4/IPv6 端點。預設值為 false。這與use_accelerate_endpoint
設定互斥。如果設定為 true,AWS CLI 會將所有 Amazon S3 請求導引至所設定區域的雙重 IPv4/IPv6 端點。
use_accelerate_endpoint
-
對所有
s3
和s3api
命令使用 Amazon S3 加速端點。預設值為 false。這與use_dualstack_endpoint
設定互斥。如果設定為 true,則 AWS CLI 會將所有 Amazon S3 請求導向至位於
s3-accelerate.amazonaws.com
的S3 Accelerate
端點。若要使用這個端點,您必須啟用儲存貯體來使用S3 Accelerate
。所有請求都是使用虛擬樣式的儲存貯體定址所傳送:
。不會將任何my-bucket
.s3-accelerate.amazonaws.comListBuckets
、CreateBucket
和DeleteBucket
請求傳送至 S3 加速端點,因為該端點不支援這些操作。如果將任何s3
或s3api
命令的--endpoint-url
參數設為https://s3-accelerate.amazonaws.com
或http://s3-accelerate.amazonaws.com
,也可以設定此行為。
以下設定只適用於 s3
命名空間命令集的命令。
max_bandwidth
-
指定往返於 Amazon S3 上傳和下載資料時可消耗的最大頻寬。預設值是無限制。
這會限制 S3 命令在往返於 Amazon S3 傳輸資料時可使用的最大頻寬。這個數值僅適用於上傳和下載,不適用於複製或刪除。數值以每秒位元組數為單位。數值可以指定為:
-
整數。例如,
1048576
將最大頻寬使用量設定為每秒 1 百萬位元組。 -
整數加上速率尾碼。您可以使用
KB/s
、MB/s
或GB/s
指定速率尾碼,例如300KB/s
和10MB/s
。
一般而言,我們建議您先降低
max_concurrent_requests
,以嘗試降低頻寬耗用量。如果這還無法將限制頻寬耗用量調到所需的速率,您可以使用max_bandwidth
設定來進一步限制頻寬耗用量。這是因為max_concurrent_requests
控制目前執行多少個執行緒。如果您先降低max_bandwidth
但保留較高的max_concurrent_requests
設置,則可能導致執行緒必須等待不必要的等待。這可能會導致過多的資源消耗和連線逾時。 -
max_concurrent_requests
-
指定並行請求數量上限。預設值為 10。
aws s3
傳輸命令是多執行緒。隨時可以執行多個 Amazon S3 請求。例如,當您使用命令aws s3 cp localdir s3://bucket/ --recursive
將檔案上傳到 S3 儲存貯體時,AWS CLI 可以同時上傳檔案localdir/file1
、localdir/file2
和localdir/file3
。設定max_concurrent_requests
會指定可同時執行的傳輸操作數量上限。由於幾個原因,您可能需要變更這個數值:
-
降低這個數值 – 在某些環境中,10 個並行請求的預設值可能拖垮系統。這可能導致連線逾時,或使系統的回應能力變慢。降低這個數值可讓 S3 傳輸命令耗用較少的資源。缺點是 S3 傳輸可能需要更久才會完成。如果您使用工具來限制頻寬,則可能需要降低這個數值。
-
提高這個數值 – 在某些情況下,您可能希望 Amazon S3 傳輸依需要儘量使用網路頻寬,以儘快完成。在這種情況下,預設的並行請求數量可能還不足以使用所有可用的網路頻寬。提高此數值可以縮短完成 Amazon S3 傳輸所花的時間。
-
max_queue_size
-
指定任務佇列中的任務數量上限。預設值為 1000。
AWS CLI 在內部採用一種模型將 Amazon S3 任務排入佇列,然後由消費者執行,而其數量受限於
max_concurrent_requests
。任務通常會映射到單一 Amazon S3 操作。例如,任務可能是PutObjectTask
、GetObjectTask
或UploadPartTask
。任務新增到佇列的速率可比消費者完成任務的速率快很多。為了避免無限制成長,任務佇列大小會受限於特定大小。這個設定會變更該數量的上限值。您通常不需要變更此設定。此設定也對應到 AWS CLI 知道需要執行的任務數量。這表示根據預設,AWS CLI 只能看到前 1000 個任務。提高此數值表示 AWS CLI 可以更快知道所需的任務總數 (假設佇列速率比任務完成速率更快)。缺點是較大的 max_queue_size 需要更多記憶體。
multipart_chunksize
-
指定 AWS CLI 在分段傳輸個別檔案時使用的區塊大小。預設值為 8 MB,下限為 5 MB。
當檔案傳輸超過
multipart_threshold
時,AWS CLI 會將檔案分割成此大小的區塊。指定這個數值所使用的語法與multipart_threshold
相同,包括以整數指定位元組數量,或使用大小和尾碼。 multipart_threshold
-
指定 AWS CLI 在分段傳輸個別檔案時使用的大小閾值。預設值為 8 MB。
當上傳、下載或複製檔案時,如果檔案超過該大小,Amazon S3 命令會切換到分段操作。您有兩種方式可以指定此數值:
-
以位元組為單位的檔案大小。例如
1048576
。 -
附上大小尾碼的檔案大小。您可以使用
KB
、MB
、GB
或TB
,例如10MB
和1GB
。注意
對於可用於分段操作的有效值,S3 可以施加限制。如需詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的 S3 分段上傳文件。
-