为 Amazon ECS Windows 容器实例使用 HTTP 代理 - Amazon Elastic Container Service

为 Amazon ECS Windows 容器实例使用 HTTP 代理

您可以将 Amazon ECS 容器实例配置为对 Amazon ECS 容器代理和 Docker 守护程序使用 HTTP 代理。如果您的容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络,则这非常有用。

要将 Amazon ECS Windows 容器实例配置为使用 HTTP 代理,请在启动时设置以下变量(利用 Amazon EC2 用户数据)来达到此目的。

[Environment]::SetEnvironmentVariable("HTTP_PROXY", "http://proxy.mydomain:port", "Machine")

HTTP_PROXY 设置为某个 HTTP 代理的主机名(或 IP 地址)和端口号,供 Amazon ECS 代理用来连接到互联网。例如,在容器实例无法通过 Amazon VPC互联网网关、NAT 网关或实例访问外部网络时。

[Environment]::SetEnvironmentVariable("NO_PROXY", "169.254.169.254,169.254.170.2,\\.\pipe\docker_engine", "Machine")

NO_PROXY 设置为 169.254.169.254,169.254.170.2,\\.\pipe\docker_engine 可筛选 EC2 实例元数据、任务的 IAM 角色以及来自代理的 Docker 守护程序流量。

例 Windows HTTP 代理用户数据脚本

下面的示例用户数据 PowerShell 脚本会将 Amazon ECS 容器代理和 Docker 守护程序配置为使用您指定的 HTTP 代理。您还可以指定容器实例在其中自行进行注册的集群。

要在启动容器实例时使用此脚本,请执行启动 Amazon ECS Windows 容器实例中的步骤。只需将下面的 PowerShell 脚本复制并粘贴到 User data (用户数据) 字段中(请务必将红色示例值替换为您自己的代理和集群信息)。

注意

启用任务的 IAM 角色需要使用 -EnableTaskIAMRole 选项。有关更多信息,请参阅 Amazon EC2 Windows 实例附加配置

<powershell> Import-Module ECSTools $proxy = "http://proxy.mydomain:port" [Environment]::SetEnvironmentVariable("HTTP_PROXY", $proxy, "Machine") [Environment]::SetEnvironmentVariable("NO_PROXY", "169.254.169.254,169.254.170.2,\\.\pipe\docker_engine", "Machine") Restart-Service Docker Initialize-ECSAgent -Cluster MyCluster -EnableTaskIAMRole </powershell>