我想从我的Docker容器中使用安全VPC安全地从S3中获取配置文件。但我想在应用程序内部确定哪个配置文件要根据我所在的区域来获取和使用。继续描述当前集装箱的区域是否有一个好的/最佳的做法?自我描述ECS/EC2实例的区域
我知道您可以使用AWS开发工具包/ CLI来描述ECS实例,但是这并不告诉我哪个容器是专门部署的。
我想从我的Docker容器中使用安全VPC安全地从S3中获取配置文件。但我想在应用程序内部确定哪个配置文件要根据我所在的区域来获取和使用。继续描述当前集装箱的区域是否有一个好的/最佳的做法?自我描述ECS/EC2实例的区域
我知道您可以使用AWS开发工具包/ CLI来描述ECS实例,但是这并不告诉我哪个容器是专门部署的。
在EC2中,您可以使用简单的curl命令将实例元数据检索到本地(内部)Web API。地区和亚利桑那州的一些数据点就可以得到:
http://169.254.169.254/latest/meta-data/services/domain
http://169.254.169.254/latest/meta-data/placement/availability-zone
有关实例元数据的全部细节见this page。
在ECS内部,我有兴趣看看它们是否仍然有效 - 我的预感是它们会,因为容器应该查询主机的API以获得答案,而ECS主机肯定是EC2实例。
让我们知道这是否有效?
使用metadata server
来查询availability-zone
,从中您可以得到region
。如果你正在使用Python SDK
$ curl 169.254.169.254/latest/meta-data/placement/availability-zone/
us-east-1a
一个例子是:
import os
az = os.popen("curl -s http://169.254.169.254/latest/meta-data/placement/availability-zone/").read()
print az[:-1]
>>> us-east-1
感谢您的回答,我意识到这一点很好,但不知道是否会容器内工作。将更新! – Serey