Sla*_*off 2 python environment-variables amazon-ec2 boto amazon-web-services
非常简单的问题,但我找不到任何人解决这个问题,或者确实提到这个问题。基本上,我希望通过在启动远程 ec2 盒子时将环境变量与该盒子关联起来,向远程 ec2 盒子添加少量信息。
我已经看到一些关于 的概念的提及tags,但我正在寻找可以在实例内天真地检查和访问的东西,并且尚不清楚是否tags提供该功能。
理想情况下,在实例化实例后,任何外部方也无法访问添加这些环境变量的接口。
我意识到我可以通过设置一个安全数据库来实现类似的效果,但这似乎过于复杂,只是尝试向实例添加一些元数据。
不是在寻找讲义,但任何有关这方面的文档的链接将不胜感激。我目前正在使用boto(下面的代码),所以适合boto框架的东西将是理想的,但如果我必须下降到亚马逊的 REST api,那也不会是世界末日。
def create_instances(connection, type, number, **kwargs):
kwargs.update({
'min_count': number,
'max_count': number
})
return connection.run_instances(**kwargs).instances # maybe if kwargs had an environment variable?
Run Code Online (Sandbox Code Playgroud)
有多种方法可以将信息传递到 Amazon EC2 实例,但并非所有方法都一定能满足您的要求,因为实例在启动后无法访问。
用户数据
启动 Amazon EC2 实例时,可以指定用户数据。可通过访问 URL 从实例内访问用户数据的内容:
http://169.254.169.254/latest/user-data/
Run Code Online (Sandbox Code Playgroud)
实例上的代码可以查询此 URL(该 URL 由虚拟机管理程序拦截,并且只能从实例本身查看)以访问信息。
用户数据的另一个用途是它可以作为脚本执行。该脚本可以设置您的代码可以访问的环境变量。
但是,用户数据可以通过 EC2 管理控制台或通过呼叫查看DescribeInstanceAttribute,因此这可能无法满足您的安全要求。
标签
另一种选择是使用标签。这些是与 EC2 实例(或 AWS 中的其他对象)关联的名称-值对。可以通过调用“DescribeTags”来检索标签,但 boto 有一些访问它们的快捷方式。
标签是将信息与实例关联起来的好方法,标签还可以用于识别特定实例(例如,按环境、项目、所有者...)。
但是,存储在标签中的值可以在 EC2 管理控制台中并通过 API 调用查看。
其他选项
| 归档时间: |
|
| 查看次数: |
2288 次 |
| 最近记录: |