本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
服務特定端點
服務特定端點設定可讓您選擇使用您選擇的端點來處理API要求,並讓該選擇持續存在。這些設定提供支援本機端點、VPC端點和協力廠商本機的彈性 AWS 開發環境。不同的端點可用於測試和生產環境。您可以URL為個人指定端點 AWS 服務.
使用下列項目設定此功能:
endpoint_url
-共享 AWSconfig
檔案設定AWS_ENDPOINT_URL
-環境變量aws.endpointUrl
-JVM 系統屬性:僅限爪哇/科特林-
當直接在設定檔中指定或作為環境變數指定時,此設定會指定用於所有服務要求的端點。任何已設定的服務特定端點會覆寫此端點。
您也可以在共享的
services
部分中使用此設置 AWSconfig
用於為特定服務設定自訂端點的檔案。如需要小services
節中子區段使用的所有服務識別碼金鑰清單,請參閱服務特定端點的識別碼。預設值:
none
有效值:A URL 包括端點的配置和主機。URL可以選擇性地包含包含一或多個路徑區段的路徑元件。
AWS_ENDPOINT_URL_<SERVICE>
-環境變量aws.endpointUrl<ServiceName>
-JVM 系統屬性:僅限爪哇/科特林-
AWS_ENDPOINT_URL_<SERVICE>
,在<SERVICE>
哪裡 AWS 服務 識別碼,設定特定服務的自訂端點。如需所有服務特定環境變數的清單,請參閱 服務特定端點的識別碼。此服務特定端點會覆寫中
AWS_ENDPOINT_URL
設定的任何全域端點。預設值:
none
有效值:A URL 包括端點的配置和主機。URL可以選擇性地包含包含一或多個路徑區段的路徑元件。
ignore_configured_endpoint_urls
-共享 AWSconfig
檔案設定AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
-環境變量aws.ignoreConfiguredEndpointUrls
-JVM 系統屬性:僅限爪哇/科特林-
此設定用於忽略所有自訂端點組態。
請注意,無論此設定為何,都會使用程式碼或服務用戶端本身中設定的任何明確端點。例如,包括指
--endpoint-url
令行參數與 AWS CLI 命令或將端點傳遞URL到客戶端構造函數將始終生效。預設值:
false
有效值:
-
true
— SDK 或工具不會從共用config
檔案或環境變數讀取任何自訂組態選項以設定端點URL。 -
false
— SDK 或工具會使用共用config
檔案或環境變數中的任何可用使用者提供的端點。
-
使用環境變數設定端點
若要將所有服務的要求路由至自訂端點URL,請設定AWS_ENDPOINT_URL
全域環境變數。
export AWS_ENDPOINT_URL=
http://localhost:4567
若要路由特定的要求 AWS 服務 至自訂端點URL,請使用AWS_ENDPOINT_URL_<SERVICE>
環境變數。 Amazon DynamoDB 有一個serviceId
的DynamoDB
AWS_ENDPOINT_URL_DYNAMODB
。此端點的優先順序高於AWS_ENDPOINT_URL
針對此服務設定的全域端點。
export AWS_ENDPOINT_URL_DYNAMODB=
http://localhost:5678
作為另一個例子, AWS Elastic Beanstalk 有一個serviceId
的Elastic Beanstalk
serviceId
通過用下劃線替換所有空格並大寫所有字母。若要設定此服務的端點,對應的環境變數為AWS_ENDPOINT_URL_ELASTIC_BEANSTALK
。如需所有服務特定環境變數的清單,請參閱 服務特定端點的識別碼。
export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=
http://localhost:5567
使用共用config
檔案設定端點
在共享config
文件中,用endpoint_url
於不同的地方用於不同的功能。
-
endpoint_url
直接在一個內指定,profile
使該端點成為全局端點。 -
endpoint_url
嵌套在services
區段內的服務識別碼金鑰下,可讓該端點套用至僅對該服務發出的要求。如需在共用config
檔案中定義services
區段的詳細資訊,請參閱 組態檔案格式。
下列範例使用定services
義來設定用於 Amazon S3 的服務特URL定端點,以及設定用於所有其他服務的自訂全球端點:
[profile
dev-s3-specific-and-global
] endpoint_url =http://localhost:1234
services =s3-specific
[servicess3-specific
] s3 = endpoint_url =https://play.min.io:9000
單一設定檔可以設定多個服務的端點。此範例顯示如何URLs為 Amazon S3 和設定服務特定端點 AWS Elastic Beanstalk
在同一個配置文件中。 AWS Elastic Beanstalk 有一個serviceId
的Elastic Beanstalk
serviceId
通過用下劃線替換所有空格並降低所有字母。因此,服務標識符密鑰變為,elastic_beanstalk
並且此服務的設置在行開始elastic_beanstalk =
。如需要在 services
區段中使用的所有服務識別碼金鑰的清單,請參閱 服務特定端點的識別碼。
[services
testing-s3-and-eb
] s3 = endpoint_url =http://localhost:4567
elastic_beanstalk = endpoint_url =http://localhost:8000
[profiledev
] services =testing-s3-and-eb
服務配置部分可以從多個配置文件中使用。例如,兩個縱斷面可以在變更其他縱斷面性質時使用相同的services
定義:
[services
testing-s3
] s3 = endpoint_url =https://localhost:4567
[profiletesting-json
] output = json services =testing-s3
[profiletesting-text
] output = text services =testing-s3
使用角色型認證在設定檔中設定端點
如果您的設定檔具有透過IAM假設角色功能的source_profile
參數設定以角色為基礎的認證,則SDK只會針對指定的設定檔使用服務組態。它不會使用與其連結的角色的設定檔。例如,使用下列共用 config
檔案:
[profile
A
] credential_source =Ec2InstanceMetadata
endpoint_url =https://profile-a-endpoint.aws/
[profileB
] source_profile =A
role_arn =arn:aws:iam::123456789012:role/roleB
services =profileB
[servicesprofileB
] ec2 = endpoint_url =https://profile-b-ec2-endpoint.aws
如果您使用設定檔B
並在程式碼中呼叫 AmazonEC2,端點會解析為https://profile-b-ec2-endpoint.aws
。如果您的程式碼向任何其他服務發出要求,端點解析將不會遵循任何自訂邏輯。端點未解析為設定檔 A
中定義的全域端點。若要讓全域端點對設定檔 B
生效,您需要直接在 B
設定檔中設定 endpoint_url
。如需 source_profile
設定的詳細資訊,請參閱擔任角色登入資料提供者。
設定的優先順序
此功能的設定可以同時使用,但每個服務只會優先使用一個值。對於給定的API呼叫 AWS 服務,下面的順序用於選擇一個值:
-
在代碼或服務客戶端上設置的任何明確設置本身都優先於其他任何設置。
-
對於 AWS CLI,這是由
--endpoint-url
命令行參數提供的值。對於SDK,明確的分配可以採用您在實例化時設置的參數的形式 AWS 服務 客戶端或配置對象。
-
-
服務特定環境變數所提供的值,例如
AWS_ENDPOINT_URL_DYNAMODB
。 -
AWS_ENDPOINT_URL
全域端點環境變數所提供的值。 -
endpoint_url
設定巢狀於共用config
檔案services
區段內的服務識別碼金鑰下所提供的值。 -
由共用
config
檔案中直接指endpoint_url
定profile
的設定所提供的值。 -
相應的任何預設端點 URL AWS 服務 最後使用。
兼容性 AWS SDKs
下列項目SDKs支援本主題中描述的功能與設定。注意到任何部分例外情況。任何JVM系統屬性設定都受到 AWS SDK for Java 和 適用於 Kotlin 的 AWS SDK 只有。
SDK | 支援 | 備註或更多資訊 |
---|---|---|
AWS CLI V2 | 是 | |
SDK對於 C ++ | 否 | |
SDK對於轉到 V2(1.x) |
是 | |
SDK對於圍棋 1.x(V1) | 否 | |
SDK對於爪哇 2.x | 是 | |
SDK對於爪哇 1.x | 否 | |
SDK對於 JavaScript 3. x | 是 | |
SDK對於 JavaScript 2.x | 否 | |
SDK對於科特林 | 是 | |
SDK為. NET3.x | 是 | |
SDK對於 PHP 3. x | 是 | |
SDK對於 Python(肉毒桿菌 3) |
是 | |
SDK對於紅寶石 3.x | 是 | |
SDK對於銹 | 否 | |
SDK為斯威夫特 | 否 | |
適用的工具 PowerShell | 是 |