

# 为 Amazon ECS Windows 容器实例使用 HTTP 代理
<a name="http_proxy_config-windows"></a>

您可以将 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 进程守护程序流量。

**Example Windows HTTP 代理用户数据脚本**  
下面的示例用户数据 PowerShell 脚本会将 Amazon ECS 容器代理和 Docker 进程守护程序配置为使用您指定的 HTTP 代理。您还可以指定容器实例在其中自行进行注册的集群。  
要在启动容器实例时使用此脚本，请执行[启动 Amazon ECS Windows 容器实例](launch_window-container_instance.md)中的步骤。只需将下面的 PowerShell 脚本复制并粘贴到**用户数据**字段中（请务必将红色示例值替换为您自己的代理和集群信息）。  
启用任务的 IAM 角色需要使用 `-EnableTaskIAMRole` 选项。有关更多信息，请参阅 [Amazon EC2 Windows 实例附加配置](task-iam-roles.md#windows_task_IAM_roles)。

```
<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>
```