注册多个目标组 服务 - Amazon Elastic Container Service
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

注册多个目标组 服务

您的 Amazon ECS 服务可以服务来自多个负载平衡器的流量,并暴露 当您在服务中指定多个目标组时,有多个负载平衡端口 定义。

要创建指定多个目标组的服务,您必须创建该服务 使用 Amazon ECS API、SDK、 AWS CLI,或 AWS CloudFormation 模板。创建服务后, 您可以查看服务以及通过 AWS 管理控制台. 无法更新现有 服务。

可以使用 格式如下。有关服务定义的完整语法,请参阅 服务定义模板.

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"container_name", "containerPort":container_port }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"container_name", "containerPort":container_port } ]

多个目标人群 考虑因素

当您在 服务定义。

  • 对于使用应用程序负载平衡器或网络负载的服务 平衡器,您不能将超过五个目标组附加至 服务。

  • 在服务定义中指定多个目标组仅为 支持条件如下:

    • 服务必须使用 应用程序负载均衡器 或 网络负载均衡器.

    • 服务必须使用滚动更新(ECS) 部署控制类型。

  • 为包含以下内容的服务指定多个目标组 使用 Fargate 和 EC2 启动 类型。

  • 当创建指定多个目标组的服务时, Amazon ECS 必须创建服务链接角色。该角色由 省略 role API请求中的参数,或 Role 属性 AWS CloudFormation. 更多信息,请参阅 用于 Amazon ECS 的服务相关角色.

服务示例 定义

以下是几个在 服务定义。有关服务定义的完整语法,请参阅 服务定义模板.

示例: 有独立的 用于内部和外部流量的负载平衡器

在以下使用案例中,服务使用两个独立的负载平衡器,一个 内部流量为,面向互联网的流量为第二, 容器和端口。

"loadBalancers":[ //Internal ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"nginx", "containerPort":8080 }, //Internet-facing ELB { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"nginx", "containerPort":8080 } ]

示例: 暴露多个 来自同一容器的端口

在以下使用案例中,服务使用一个负载平衡器,但暴露 同一容器的多个端口。例如,Jenkins容器 可能暴露JenkinsWeb界面的端口8080和 API。

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"jenkins", "containerPort":8080 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"jenkins", "containerPort":50000 } ]

示例: 暴露的端口 从多个容器

在以下使用情况下,服务使用一个负载平衡器和两个目标 组,以暴露来自单独容器的端口。

"loadBalancers":[ { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_1/1234567890123456", "containerName":"webserver", "containerPort":80 }, { "targetGroupArn":"arn:aws:elasticloadbalancing:region:123456789012:targetgroup/target_group_name_2/6543210987654321", "containerName":"database", "containerPort":3306 } ]