在java中,如何让AmazonEC2实例看到自己的标记?
所以我有一个java程序在AmazonEC2实例中运行。有没有办法通过编程获得自己的标签?我尝试过为我们实例化一个新的AmazonEC2Client,即descripbetags()函数,但它只提供null。任何帮助都将不胜感激,谢谢
编辑:为了让事情变得更清楚,这些实例将是无人操作的工作机器,专门用来做一些计算
你可以在下面搜索框中键入要查询的问题!
所以我有一个java程序在AmazonEC2实例中运行。有没有办法通过编程获得自己的标签?我尝试过为我们实例化一个新的AmazonEC2Client,即descripbetags()函数,但它只提供null。任何帮助都将不胜感激,谢谢
编辑:为了让事情变得更清楚,这些实例将是无人操作的工作机器,专门用来做一些计算
# 1 楼答案
这应该可以帮助你开始
# 2 楼答案
虽然使用用户数据可能是最简单的解决方案,但OP专门询问了标签问题,不幸的是,亚马逊并没有尽可能简单地做到这一点。然而,这是可以做到的。您希望使用两种amazon服务的组合
首先,您需要检索实例ID。这可以通过从实例中点击URL来实现:
http://169.254.169.254/latest/meta-data/instance-id
一旦您有了资源ID,您就需要使用Amazon的EC2API来访问标记。既然您说您正在使用Java,我建议您使用AWS SDK amazon makes available。在这个SDK中,您将找到一个名为
describeTags
(documentation)的方法。您可以使用资源ID作为过滤器之一,以获取实例的特定标记。支持的过滤器包括我建议在启动时使用类似cloud init的方法进行检索,并在服务器上缓存标记,以便在必要时稍后使用
# 3 楼答案
您应该能够通过向以下地址发送请求来获取当前实例id:
http://169.254.169.254/latest/meta-data/instance-id
。这只适用于ec2。通过这个,您可以访问有关实例的大量信息。但是,似乎不包括标记您应该能够使用实例id和正确的身份验证来获取实例标记。如果要在实例上运行此操作,您可能希望为IAM用户提供有限的访问权限,而不是在实例受损的情况下提供对所有内容都有访问权限的用户