【问题标题】:In java, how can I get an Amazon EC2 Instance to see its own tags?在 java 中,如何让 Amazon EC2 实例看到它自己的标签?
【发布时间】:2013-07-22 15:06:07
【问题描述】:

所以我有一个在 Amazon EC2 实例中运行的 java 程序。有没有办法以编程方式获取自己的标签?我尝试向我们实例化一个新的 AmazonEC2Client describeTags() 函数,但它只给我 null。任何帮助将不胜感激。

编辑:为了让事情更清楚,这些实例将是无人驾驶的工作机器,它旋转起来只做一些计算

【问题讨论】:

    标签: java amazon-ec2 amazon


    【解决方案1】:

    这应该可以帮助您入门...

    String instanceId = EC2MetadataUtils.getInstanceId();
    AmazonEC2 client = AmazonEC2ClientBuilder.standard()
        .withCredentials(new DefaultAWSCredentialsProviderChain())
        .build();
    DescribeTagsRequest req = new DescribeTagsRequest()
        .withFilters(new Filter("resource-id", Collections.singletonList(instanceId)));
    DescribeTagsResult describeTagsResult = client.describeTags(req);
    List<TagDescription> tags = describeTagsResult.getTags()
    

    【讨论】:

      【解决方案2】:

      您应该能够通过向http://169.254.169.254/latest/meta-data/instance-id 发送请求来获取当前实例 ID。这仅适用于 ec2。有了这个,您可以访问有关该实例的大量信息。但是,似乎没有包含标签。

      您应该能够使用实例 ID 以及正确的身份验证来获取实例标签。如果您要在实例上运行此操作,您可能希望为 IAM 用户提供有限访问权限,而不是为在实例受到威胁时有权访问所有内容的用户提供。

      【讨论】:

      • 对不起,我应该更清楚一点,实例将是工作机器,标签是它们完成任务所需的信息。我需要这样做,以便他们可以通过我的 java 程序中的代码自动查看他们的标签
      • 您可以通过 userdata 发送数据。该信息可通过此请求的元数据获得http://169.254.169.254/latest/user-data
      【解决方案3】:

      虽然使用用户数据可能是最简单的解决方案,但 OP 专门询问了标记,不幸的是,亚马逊并没有让这变得尽可能简单。但是,它可以做到。您想使用 2 种亚马逊服务的组合。

      1. 首先您需要检索实例 ID。这可以通过在您的实例中点击 URL 来实现:

        http://169.254.169.254/latest/meta-data/instance-id

      2. 获得资源 ID 后,您需要使用 Amazon 的 EC2 API 来访问标签。既然您说您使用的是 Java,我建议您使用 AWS SDK amazon makes available。在此 SDK 中,您将找到一个名为 describeTags (documentation) 的方法。您可以将资源 ID 用作过滤器之一,以获取实例的特定标签。支持的过滤器是

        tag key
        resource-id
        resource-type
        

      我建议在启动时使用 cloud-init 之类的东西进行此检索,并在您的服务器上缓存标签以供以后使用。

      【讨论】:

        猜你喜欢
        • 2011-08-22
        • 2011-10-07
        • 2019-04-03
        • 2016-11-24
        • 2013-12-08
        • 2013-03-28
        • 1970-01-01
        • 2016-08-17
        • 2011-03-06
        相关资源
        最近更新 更多