在中使用终端节点 Amazon CLI - Amazon Command Line Interface
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

在中使用终端节点 Amazon CLI

要以编程方式连接到 Amazon Web Service,请使用终端节点。端点是 Amazon Web 服务入口点的 URL。 Amazon Command Line Interface (Amazon CLI) 会自动为中的每项服务使用默认终端节点 Amazon Web Services 区域,但您可以为 API 请求指定备用终端节点。

为单个命令设置端点

要覆盖单个命令的任何端点设置或环境变量,请使用 --endpoint-url 命令行选项。以下命令示例使用自定义 Amazon S3 端点 URL。

$ aws s3 ls --endpoint-url http://localhost:4567

为所有人设置全局终端节点 Amazon Web Services

要将所有服务的请求路由到自定义端点 URL,请使用以下设置之一:

  • 环境变量:

    • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS – 忽略已配置的端点 URL。

      Linux or macOS
      $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      Windows Command Prompt

      为所有会话设置

      C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

      仅为当前会话设置

      C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
      PowerShell
      PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
    • AWS_ENDPOINT_URL – 设置全局端点 URL。

      Linux or macOS
      $ export AWS_ENDPOINT_URL=http://localhost:4567
      Windows Command Prompt

      为所有会话设置

      C:\> setx AWS_ENDPOINT_URL http://localhost:4567

      仅为当前会话设置

      C:\> set AWS_ENDPOINT_URL=http://localhost:4567
      PowerShell
      PS C:\> $Env:AWS_ENDPOINT_URL="http://localhost:4567"
  • config 文件:

特定于服务的端点和 --endpoint-url 命令行选项会覆盖所有全局端点。

设置成为所有 Amazon Web Services使用 FIPS 端点

要路由所有服务的请求以使用 FIPS 端点,请使用以下设置之一:

  • AWS_USE_FIPS_ENDPOINT 环境变量。

    Linux or macOS
    $ export AWS_USE_FIPS_ENDPOINT=true
    Windows Command Prompt

    为所有会话设置

    C:\> setx AWS_USE_FIPS_ENDPOINT true

    仅为当前会话设置

    C:\> set AWS_USE_FIPS_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_FIPS_ENDPOINT="true"
  • use_fips_endpoint 文件设置。

    use_fips_endpoint = true

有些 Amazon 服务提供的端点支持联邦信息处理标准 (FIPS) 140-2。 Amazon Web Services 区域当 Amazon 服务支持 FIPS 时,此设置指定 Amazon CLI 应使用哪个 FIPS 端点。与标准 Amazon 端点不同,FIPS 端点使用符合 FIPS 140-2 的 TLS 软件库。与美国政府有业务来往的企业可能需要使用这些端点。

如果启用了此设置,但您的服务中不存在 FIPS 端点 Amazon Web Services 区域,则该 Amazon 命令可能会失败。在这种情况下,请使用 --endpoint-url 选项手动指定要在命令中使用的端点,或者使用特定于服务的端点

有关通过指定 FIPS 端点的更多信息 Amazon Web Services 区域,请参阅按服务划分的 FIPS 终端节点

设置成为所有 Amazon Web Services使用双堆栈端点

要路由所有服务的请求以在可用时使用双堆栈端点,请使用以下设置之一:

  • AWS_USE_DUALSTACK_ENDPOINT 环境变量。

    Linux or macOS
    $ export AWS_USE_DUALSTACK_ENDPOINT=true
    Windows Command Prompt

    为所有会话设置

    C:\> setx AWS_USE_DUALSTACK_ENDPOINT true

    仅为当前会话设置

    C:\> set AWS_USE_DUALSTACK_ENDPOINT=true
    PowerShell
    PS C:\> $Env:AWS_USE_DUALSTACK_ENDPOINT="true"
  • use_dualstack_endpoint 文件设置。

    use_dualstack_endpoint = true

允许使用双堆栈端点发送 Amazon 请求。要详细了解支持 IPv4 和 IPv6 流量的双堆栈端点,请参阅 Amazon Simple Storage Service 用户指南中的使用 Amazon S3 双堆栈端点。双堆栈端点适用于某些区域。如果服务不存在双栈端点或 Amazon Web Services 区域,则请求将失败。默认情况下,将禁用该功能。

设置特定于服务的端点

服务特定的终端节点配置提供了使用您选择的永久终端节点来 Amazon CLI 处理请求的选项。这些设置可以灵活地支持本地终端节点、VPC 终端节点和第三方本地 Amazon 开发环境。不同的端点可分别用于测试环境和生产环境。您可以为个别 Amazon Web Services指定端点 URL。

可通过以下方式指定特定于服务的端点:

特定于服务的端点:环境变量

环境变量会覆盖配置文件中的设置,但不会覆盖命令行上指定的选项。如果您希望所有配置文件在设备上使用相同的端点,请使用环境变量。

以下是特定于服务的环境变量:

  • AWS_IGNORE_CONFIGURED_ENDPOINT_URLS – 忽略所有已配置的端点 URL,除非在命令行中指定。

    Linux or macOS
    $ export AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    Windows Command Prompt

    为所有会话设置

    C:\> setx AWS_IGNORE_CONFIGURED_ENDPOINT_URLS true

    仅为当前会话设置

    C:\> set AWS_IGNORE_CONFIGURED_ENDPOINT_URLS=true
    PowerShell
    PS C:\> $Env:AWS_IGNORE_CONFIGURED_ENDPOINT_URLS="true"
  • AWS_ENDPOINT_URL_<SERVICE>-指定用于特定服务的自定义终端节点,其中替换<SERVICE>为标 Amazon Web Service 识符。有关所有特定于服务的变量,请参阅特定于服务的端点:特定于服务的标识符列表

    以下环境变量示例设置 Amazon Elastic Beanstalk的端点。

    Linux or macOS
    $ export AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    Windows Command Prompt

    为所有会话设置

    C:\> setx AWS_ENDPOINT_URL_ELASTIC_BEANSTALK http://localhost:4567

    仅为当前会话设置

    C:\> set AWS_ENDPOINT_URL_ELASTIC_BEANSTALK=http://localhost:4567
    PowerShell
    PS C:\> $Env:AWS_ENDPOINT_URL_ELASTIC_BEANSTALK="http://localhost:4567"

有关设置环境变量的更多信息,请参阅用于配置的环境变量 Amazon 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 [services testing-s3] s3 = endpoint_url = http://localhost:4567

单个配置文件可以为多个服务配置端点。以下示例在同一配置文件中为 Amazon S3 和 Amazon Elastic Beanstalk 设置服务特定的端点 URL。

有关 services 节中要使用的所有服务标识符密钥的列表,请参阅特定于服务的标识符列表

[profile dev1] services = testing-s3-and-eb [services testing-s3-and-eb] s3 = endpoint_url = http://localhost:4567 elastic_beanstalk = endpoint_url = http://localhost:8000

“服务配置”节可以在多个配置文件中使用。以下示例有两个配置文件使用相同的 services 定义:

[profile dev1] output = json services = testing-s3 [profile dev2] output = text services = testing-s3 [services testing-s3] s3 = endpoint_url = https://localhost:4567

特定于服务的端点:特定于服务的标识符列表

标 Amazon Web Service 识符基于 API 模型,将所有空格serviceId替换为下划线,并将所有字母小写。

以下服务标识符示例使用 Amazon Elastic Beanstalk。 Amazon Elastic Beanstalk 有 o serviceId fElastic Beanstalk,因此服务标识符密钥为elastic_beanstalk

下表列出了所有特定于服务的标识符、config 文件密钥和环境变量。

端点配置和设置优先级

端点配置设置位于多个位置,例如系统或用户环境变量、本地 Amazon 配置文件或在命令行中明确声明为参数。 Amazon CLI 端点配置设置的优先顺序如下:

  1. --endpoint-url 命令行选项。

  2. 如果启用,则 AWS_IGNORE_CONFIGURED_ENDPOINT_URLS 全局端点环境变量或配置文件设置 ignore_configure_endpoint_urls 将忽略自定义端点。

  3. 由特定于服务的环境变量 AWS_ENDPOINT_URL_<SERVICE> 提供的值,例如 AWS_ENDPOINT_URL_DYNAMODB

  4. AWS_USE_DUALSTACK_ENDPOINTAWS_USE_FIPS_ENDPOINTAWS_ENDPOINT_URL 环境变量提供的值。

  5. 共享 config 文件 services 节中的 endpoint_url 设置提供的特定于服务的端点值。

  6. 共享 config 文件的 profile 中的 endpoint_url 设置提供的值。

  7. use_dualstack_endpointuse_fips_endpointendpoint_url 设置。

  8. 最后使用相应 Amazon Web Service 端点 URL 的任何默认端点 URL。有关每个区域可用的标准服务端点的列表,请参阅《Amazon Web Services 一般参考》中的 Amazon 区域和端点