AWS::ECS::TaskDefinition PortMapping - AWS CloudFormation
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

AWS::ECS::TaskDefinition PortMapping

PortMapping 属性指定端口映射。端口映射可让容器访问主机容器实例上的端口以发送或接收流量。端口映射作为容器定义的一部分指定。

如果您在具有 awsvpchost 网络模式的任务中使用容器,公开的端口应使用 containerPort 指定。hostPort 可以留空或值必须与 containerPort 相同。

在任务达到 RUNNING 状态之后,手动和自动主机及容器端口分配显示在 DescribeTasks API 响应的 networkBindings 部分中。

语法

要在 AWS CloudFormation 模板中声明此实体,请使用以下语法:

JSON

{ "ContainerPort" : Integer, "HostPort" : Integer, "Protocol" : String }

YAML

ContainerPort: Integer HostPort: Integer Protocol: String

属性

ContainerPort

绑定到用户指定的或自动分配的主机端口的容器上的端口号。

如果您在具有 awsvpchost 网络模式的任务中使用容器,公开的端口应使用 containerPort 指定。

如果您在具有 bridge 网络模式的任务中使用容器,且指定了容器端口而不是主机端口,则您的容器将自动接收临时端口范围中的主机端口。有关更多信息,请参阅hostPort。通过此方式自动分配的端口映射不计入容器实例的 100 个预留端口限制。

必需:否

类型:整数

Update requires: Replacement

HostPort

要为您的容器预留的容器实例上的端口号。

如果您在具有 awsvpchost 网络模式的任务中使用容器,则 hostPort 可以留空或设置为与 containerPort 相同的值。

如果您在具有 bridge 网络模式的任务中使用容器,则可以为容器端口映射指定非预留主机端口,也可以在指定 containerPort 时省略 hostPort(或将它设置为 0),您的容器将自动接收容器实例操作系统和 Docker 版本的临时端口范围中的端口。

Docker 版本 1.6.0 及更高版本的默认临时端口范围在 /proc/sys/net/ipv4/ip_local_port_range 下列出。如果此内核参数不可用,则将使用从 49153 到 65535 的默认临时端口范围。不要尝试指定位于临时端口范围中的主机端口,因为这些端口保留供自动分配。通常,低于 32768 的端口位于临时端口范围之外。

注意

对于 Docker 1.6.0 之前的版本,始终使用默认临时端口范围 49153 到 65535。

默认预留端口为适用于 SSH 的端口 22、Docker 端口 2375 和 2376 以及 Amazon ECS 容器代理端口 51678-51680。正在运行的任务中之前指定的任何主机端口在任务运行时也将预留(在任务停止后,将发布主机端口)。当前预留端口将显示在 DescribeContainerInstances 输出的 remainingResources 中。一个容器实例一次最多可拥有 100 个预留端口,包括默认预留端口。自动分配的端口不计入 100 个预留端口限制。

必需:否

类型:整数

Update requires: Replacement

Protocol

用于端口映射的协议。有效值为 tcpudp。默认为 tcp

必需:否

类型:字符串

允许的值tcp | udp

Update requires: Replacement