python - 无法从 FARGATE 任务内访问实例元数据

标签 python amazon-web-services aws-fargate

我有一个 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 容器位于私有(private)子网上(配置了 nat 网关,实例可以访问互联网)。 IP空间为10.160.16.0/20。

该镜像基于 python:3.6-stretch docker 镜像。

我需要做些什么才能让 FARGATE 任务能够访问链接本地地址吗?

TIA!

最佳答案

我相信这是因为您使用了错误的 AWS Fargate 终端节点。根据下面列出的文档,您的 IP 错误。

使用 169.254.170.2$AWS_CONTAINER_CREDENTIALS_RELATIVE_URI 获取 IAM 元数据。

https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html

我希望这有帮助:)

关于python - 无法从 FARGATE 任务内访问实例元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57065458/

相关文章:

amazon-web-services - 微服务未使用 AWS fargate 在 Eureka 中注册

amazon-web-services - 是否可以在 Fargate Windows 容器上安装 FSx 存储?

python - SQLAlchemy:查询期间失去与 MySQL 服务器的连接

amazon-web-services - 须藤: stop: command not found

amazon-web-services - 模板错误: Every default member must be a string Coludformation yml

amazon-web-services - 带有 docker hub 镜像的 ECS FARGATE TASK 定义

用于提取标签和单词的 Python 正则表达式

python - 在哪里检查 django 中 ClassView 中的 session ?

python - 根据字典中的 "dependencies"对 python 列表进行排序

json - Node.js和AWS凭证错误