使用 Amazon ECS 双堆栈端点 - Amazon Elastic Container Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

使用 Amazon ECS 双堆栈端点

Amazon ECS 双堆栈端点支持通过 Internet 协议版本 4 (IPv4) 和 Internet 协议版本 6 (IPv6) 向 Amazon ECS 发出请求。有关所有 Amazon ECS 端点的列表,请参阅 Amazon Web Services 一般参考 中的 Amazon ECS endpoints and quotas

当使用 REST API 时,您通过使用端点名称 (URI) 直接访问 Amazon ECS 端点。Amazon ECS 只支持区域双堆栈端点名称,这意味着,您必须在名称中指定区域。

对双堆栈端点名称使用以下命名约定:ecs.region.api.aws

如果使用 Amazon Command Line Interface (Amazon CLI) 和 Amazon SDK,可使用参数或标志更改为双堆栈端点。您还可以在配置文件中直接将双堆栈端点指定为覆盖 Amazon ECS 端点。

下面几节介绍如何从 Amazon CLI、Amazon SDK 和 REST API 使用双堆栈端点。

从 Amazon CLI 使用双堆栈端点

本节提供用于向双堆栈端点发出请求的 Amazon CLI 命令示例。有关安装 Amazon CLI 或更新到最新版本的更多信息,请参阅《Amazon Command Line Interface 用户指南(版本 2)》中的安装或更新最新版本的 Amazon CLI

要使用双堆栈端点,您可以在 Amazon CLI 的 config 文件中将配置值 use_dualstack_endpoint 设置为 true,以将 ecs Amazon CLI 命令发出的所有 Amazon ECS 请求定向到指定区域的双堆栈端点。您可以使用 --region 选项在 config 文件或命令中指定区域。有关 Amazon CLI 配置文件的更多信息,请参阅《Amazon Command Line Interface 用户指南(版本 2)》中的 Amazon CLI 中的配置和凭证文件设置

您还可以使用命令来更新配置。下面的命令将默认配置文件中的 use_dualstack_endpoint 更新为 true

$ aws configure set default.ecs.use_dualstack_endpoint true

如果您想要对特定 Amazon CLI 命令使用双堆栈端点,则可以使用以下任一方法:

  • 您可以通过将任何 ecs 命令的 --endpoint-url 参数设置为 https://ecs.aws-region.api.awshttp://ecs.aws-region.api.aws 来对每条命令使用双堆栈端点。

    下面的示例命令列出了所有可用的集群并使用双堆栈端点处理请求。

    $ aws ecs list-clusters --endpoint-url https://ecs.aws-region.api.aws
  • 您可以在 Amazon Config 文件中设置单独的配置文件。例如,创建一个将 use_dualstack_endpoint 设置为 true 的配置文件和一个不设置 use_dualstack_endpoint 的配置文件。在运行命令时,根据是否需要使用双堆栈端点来指定要使用的配置文件。

从 Amazon SDK 使用双堆栈端点

本节提供一些示例,介绍如何使用 Amazon SDK 来访问双堆栈端点。

Amazon SDK for Java 2.x

下面的示例显示如何使用 Amazon SDK for Java 2.x 为 us-east-1 区域指定双堆栈端点。

Region region = Region.US_EAST_1 EcsClient client = EcsClient.builder().region(region).dualstackEnabled(true).build();
适用于 Go 的 Amazon SDK

下面的示例显示如何使用 适用于 Go 的 Amazon SDK 为 us-east-1 区域指定双堆栈端点。

sess := session.Must(session.NewSession()) svc := ecs.New(sess, &aws.Config{ Region: aws.String(endpoints.UsEast1RegionID), Endpoint: aws.String("https://ecs.us-east-1.api.aws") })

有关更多信息,请参阅《Amazon SDK 和工具参考指南》中的 Dual-stack and FIPS endpoints

从 REST API 使用双堆栈端点

使用 REST API 时,您可以通过在请求中指定双堆栈端点来直接访问它。下面的示例使用双堆栈端点列出 us-east-1 区域中的所有 Amazon ECS 集群。

POST / HTTP/1.1 Host: ecs.us-east-1.api.aws Accept-Encoding: identity Content-Length: 2 X-Amz-Target: AmazonEC2ContainerServiceV20141113.ListClusters X-Amz-Date: 20150429T170621Z Content-Type: application/x-amz-json-1.1 Authorization: AUTHPARAMS {}