无法检索 AWS Fargate 任务上的实例元数据

无法检索 AWS Fargate 任务上的实例元数据

我有一个 docker compose 配置,正在 ECS Fargate 集群中部署。任务配置为assign_public_ip: ENABLED,它们似乎正在获取公共 IP,但我正在努力弄清楚如何检索 IP。我正在运行的服务必须知道其公共 IP 或主机名才能正常工作。有一个名为的环境变量ECS_CONTAINER_METADATA_URI应该指向实例元数据,但当我对其进行 curl 时它似乎是空的。以下是 的输出env

AGENT_NAME=Certifier
APP_ROOT=
AWS_DEFAULT_REGION=us-west-2
AWS_EXECUTION_ENV=AWS_ECS_FARGATE
AWS_REGION=us-west-2
CARGO_HOME=/usr/local/cargo
DESCRIPTION=von-image provides a consistent base image for running VON python web components. Based on Ubuntu bionic, this image includes Python 3.6.9, indy-sdk, and supporting Python libraries.
ECS_CONTAINER_METADATA_URI=http://169.254.170.2/v3/1bbe943c-8fd9-40bf-8aed-477ee26eae69
HOME=/home/indy
HOSTNAME=ip-10-0-1-15.us-west-2.compute.internal
LANG=C.UTF-8
LC_ALL=C.UTF-8
LD_LIBRARY_PATH=/home/indy/.local/lib
LIBINDY_DIR=/home/indy/.local/lib
LIBSOVTOKEN=/home/indy/libsovtoken-1.0.1/libsovtoken/target/debug/libsovtoken.so
PATH=/usr/local/cargo/bin:/home/indy/.local/bin:/home/indy/bin:/home/indy/.pyenv/shims:/home/indy/.pyenv/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
PIP_NO_CACHE_DIR=off
PORT=4000
PWD=/home/indy
PYENV_ROOT=/home/indy/.pyenv
PYTHONIOENCODING=UTF-8
PYTHONUNBUFFERED=1
PYTHON_VERSION=3.6.9
RUSTUP_HOME=/usr/local/rustup
RUST_LOG=warning
RUST_VERSION=1.41.1
SHELL=/bin/bash
SHLVL=1
SUMMARY=von-image including Python 3.6.9 and indy-sdk
_=/usr/bin/env

然而,当我实际尝试下载这些元数据时,它似乎是空的。我的启动脚本中有以下几行:

curl "$ECS_CONTAINER_METADATA_URI/task" -o "$HOME/results.json"
cat "$HOME/results.json"

产生以下输出:

+ curl http://169.254.170.2/v3/6f818f2c-6a01-4975-b937-6b5658eac7e2/task -o /home/indy/results.json
Dload Upload Total Spent Left Speed
% Total % Received % Xferd Average Speed Time Time Time Current
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:--
0 100 4112 0 4112 0 0 1003k 0 --:--:-- --:--:-- --:--:-- 1003k
+ cat /home/indy/results.json

结果为空。我担心可能存在权限问题,但不确定如何验证或修复它。提前感谢您的帮助。

答案1

您似乎正在查询 V3 API,但 /task 是 V4 方法。请尝试改用此环境变量:${ECS_CONTAINER_METADATA_URI_V4}

如果未设置,您可能无法使用最新版本的 Fargate 平台启动任务。您可以修复此问题,也可以使用此处描述的 V3 兼容方法: https://docs.aws.amazon.com/AmazonECS/latest/userguide/task-metadata-endpoint-v3-fargate.html

相关内容