AWS 容器代理将一个新的便利环境变量注入到 AWS ECS 中的每个容器中:${ECS_CONTAINER_METADATA_URI}
这包含元数据端点的 URL,所以现在你可以这样做
curl ${ECS_CONTAINER_METADATA_URI}
输出看起来像
{
"DockerId":"redact",
"Name":"redact",
"DockerName":"ecs-redact",
"Image":"redact",
"ImageID":"redact",
"Labels":{ },
"DesiredStatus":"RUNNING",
"KnownStatus":"RUNNING",
"Limits":{ },
"CreatedAt":"2019-04-16T22:39:57.040286277Z",
"StartedAt":"2019-04-16T22:39:57.29386087Z",
"Type":"NORMAL",
"Networks":[
{
"NetworkMode":"awsvpc",
"IPv4Addresses":[
"172.30.1.115"
]
}
]
}
在Networks 键下,您会找到IPv4Address
然后您的应用程序代码可以看起来像这样 (python)
METADATA_URI = os.environ['ECS_CONTAINER_METADATA_URI']
container_metadata = requests.get(METADATA_URI).json()
ALLOWED_HOSTS.append(container_metadata['Networks'][0]['IPv4Addresses'][0])