在 AWS CLI 中使用端点
要通过编程方式连接到某个 AWS 服务,您需要使用端点。端点是作为 AWS Web 服务的入口点的 URL。AWS Command Line Interface (AWS CLI) 会自动为 AWS 区域中的每项服务使用默认端点,但您可以应 API 请求指定备用端点。
端点主题
为单个命令设置端点
要覆盖单个命令的任何端点设置或环境变量,请使用 --endpoint-url
命令行选项。以下命令示例使用自定义 Amazon S3 端点 URL。
$
aws s3 ls --endpoint-url
http://localhost:4567
为所有 AWS 服务设置全局端点
要将所有服务的请求路由到自定义端点 URL,请使用以下设置之一:
-
环境变量:
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
– 忽略已配置的端点 URL。 -
AWS_ENDPOINT_URL
– 设置全局端点 URL。
-
-
config
文件:-
ignore_configure_endpoint_urls
– 忽略已配置的端点 URL。ignore_configure_endpoint_urls = true
-
endpoint_url
– 设置全局端点 URL。endpoint_url =
http://localhost:4567
-
特定于服务的端点和 --endpoint-url
命令行选项会覆盖所有全局端点。
设置成为所有 AWS 服务使用 FIPS 端点
要路由所有服务的请求以使用 FIPS 端点,请使用以下设置之一:
-
AWS_USE_FIPS_ENDPOINT
环境变量。 -
use_fips_endpoint
文件设置。use_fips_endpoint = true
在某些 AWS 区域,部分 AWS 服务提供支持美国联邦信息处理标准 (FIPS) 140-2
如果启用此设置,但不存在适用于您所在 AWS 区域中的服务的 FIPS 端点,则 AWS 命令可能会失败。在这种情况下,请使用 --endpoint-url
选项手动指定要在命令中使用的端点,或者使用特定于服务的端点。
有关按 AWS 区域指定 FIPS 端点的更多信息,请参阅按服务列出的 FIPS 端点
设置成为所有 AWS 服务使用双堆栈端点
要路由所有服务的请求以在可用时使用双堆栈端点,请使用以下设置之一:
-
AWS_USE_DUALSTACK_ENDPOINT
环境变量。 -
use_dualstack_endpoint
文件设置。use_dualstack_endpoint = true
允许使用双堆栈端点发送 AWS 请求。要详细了解支持 IPv4 和 IPv6 流量的双堆栈端点,请参阅 Amazon Simple Storage Service 用户指南中的使用 Amazon S3 双堆栈端点。双堆栈端点适用于某些区域。如果不存在适用于服务和/或 AWS 区域的双堆栈端点,则请求将失败。默认情况下,将禁用该功能。
设置特定于服务的端点
特定于服务的端点配置提供了一个选项,可使用您应 AWS CLI 请求选择的永久端点。这些设置可以灵活地支持本地端点、VPC 端点和第三方本地 AWS 开发环境。不同的端点可分别用于测试环境和生产环境。您可以为个别 AWS 服务指定端点 URL。
可通过以下方式指定特定于服务的端点:
-
单个命令的命令行选项
--endpoint-url
。 -
环境变量:
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
– 忽略所有已配置的端点 URL,除非在命令行中指定。 -
AWS_ENDPOINT_URL_<SERVICE>
– 指定用于特定服务的自定义端点,在该服务中<SERVICE>
替换为 AWS 服务标识符。有关所有特定于服务的变量,请参阅特定于服务的端点:特定于服务的标识符列表。
-
-
config
文件:-
ignore_configure_endpoint_urls
– 忽略所有已配置的端点 URL,除非使用环境变量或在命令行中指定。 -
config
文件的 services 节与endpoint_url
文件设置相结合。
-
特定于服务的端点主题:
特定于服务的端点:环境变量
环境变量会覆盖配置文件中的设置,但不会覆盖命令行上指定的选项。如果您希望所有配置文件在设备上使用相同的端点,请使用环境变量。
以下是特定于服务的环境变量:
-
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
– 忽略所有已配置的端点 URL,除非在命令行中指定。 -
AWS_ENDPOINT_URL_<SERVICE>
– 指定用于特定服务的自定义端点,在该服务中<SERVICE>
替换为 AWS 服务标识符。有关所有特定于服务的变量,请参阅特定于服务的端点:特定于服务的标识符列表。以下环境变量示例设置 AWS Elastic Beanstalk 的端点。
有关设置环境变量的更多信息,请参阅为 AWS CLI 配置环境变量。
特定于服务的端点:共享 config
文件
在共享 config
文件中,endpoint_url
用在多个节中。要设置特定于服务的端点,请使用嵌套在 services
节内服务标识符密钥下的 endpoint_url
设置。有关在共享 config
文件中定义 services
节的详细信息,请参阅 节类型:services。
以下示例使用 services
节为 Amazon S3 配置服务特定的端点 URL 和用于其他所有服务的自定义全局端点:
[profile
dev1
] endpoint_url =http://localhost:1234
services =s3-specific
[servicestesting-s3
] s3 = endpoint_url =http://localhost:4567
单个配置文件可以为多个服务配置端点。以下示例在同一配置文件中为 Amazon S3 和 AWS Elastic Beanstalk 设置服务特定的端点 URL。
有关 services
节中要使用的所有服务标识符密钥的列表,请参阅特定于服务的标识符列表。
[profile
dev1
] services =testing-s3-and-eb
[servicestesting-s3-and-eb
] s3 = endpoint_url =http://localhost:4567
elastic_beanstalk = endpoint_url =http://localhost:8000
“服务配置”节可以在多个配置文件中使用。以下示例有两个配置文件使用相同的 services
定义:
[profile
dev1
] output = json services =testing-s3
[profiledev2
] output = text services =testing-s3
[servicestesting-s3
] s3 = endpoint_url =https://localhost:4567
特定于服务的端点:特定于服务的标识符列表
AWS 服务标识符基于 API 模型的 serviceId
,不过需要将所有空格替换为下划线,并将所有字母小写。
以下服务标识符示例使用AWS Elastic Beanstalk。AWS Elastic Beanstalk 具有 Elastic Beanstalk
的 serviceId
,因此服务标识符密钥为 elastic_beanstalk
。
下表列出了所有特定于服务的标识符、config
文件密钥和环境变量。
端点配置和设置优先级
端点配置设置位于多个位置(例如,系统变量或用户环境变量、本地 AWS 配置文件),或者在命令行上显式声明为参数。AWS CLI 端点配置设置的优先顺序如下:
-
--endpoint-url
命令行选项。 -
如果启用,则
AWS_IGNORE_CONFIGURED_ENDPOINT_URLS
全局端点环境变量或配置文件设置ignore_configure_endpoint_urls
将忽略自定义端点。 -
由特定于服务的环境变量
AWS_ENDPOINT_URL_<SERVICE>
提供的值,例如AWS_ENDPOINT_URL_DYNAMODB
。 -
AWS_USE_DUALSTACK_ENDPOINT
、AWS_USE_FIPS_ENDPOINT
和AWS_ENDPOINT_URL
环境变量提供的值。 -
共享
config
文件services
节中的endpoint_url
设置提供的特定于服务的端点值。 -
共享
config
文件的profile
中的endpoint_url
设置提供的值。 -
最后使用相应的 AWS 服务的任何默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 AWS 区域和端点。