【发布时间】:2019-11-25 16:10:44
【问题描述】:
我有一个 AWS FARGATE 任务,它正在运行一个相对简单的 python 应用程序(使用从 python:3.6-stretch 构建的 Docker 映像。)它使用 Amazon EC2 任务运行良好(EC2 主机提供 docker 容器);但我正在尝试将这些移至 FARGATE。
当我在 Fargate 中部署我的图像并且他们尝试使用 URL 获取本地 IPv4 数据时:
'http://169.254.169.254/latest/meta-data/local-ipv4'
我得到错误:
HTTPConnectionPool(host='169.254.169.254', port=80): Max retries exceeded with url: /latest/meta-data/local-ipv4 (Caused by NewConnectionError('<urllib3.connection.HTTPConnection object at 0x7f086aa8d438>: Failed to establish a new connection: [Errno 22] Invalid argument',))
作为旁注,我的 FARGATE 容器位于一个私有子网上(配置了一个 nat 网关,并且实例可以连接到互联网)。 IP 空间为 10.160.16.0/20 。
图像基于 python:3.6-stretch docker 图像。
我需要做些什么来让 FARGATE 任务能够访问链接本地地址吗?
TIA!
【问题讨论】:
-
请注意 - 当 AWS FARGATE 启动容器时,它会设置 AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 变量。确保将该变量传播到您调用的任何进程(例如,如果您启动 cron),否则它们将无法获取 var 并且无法获取凭据。
标签: python amazon-web-services aws-fargate