在java中,如何让AmazonEC2实例看到自己的标记?
所以我有一个java程序在AmazonEC2实例中运行。有没有办法通过编程获得自己的标签?我尝试过为我们实例化一个新的AmazonEC2Client,即descripbetags()函数,但它只提供null。任何帮助都将不胜感激,谢谢在java中,如何让AmazonEC2实例看到自己的标记?,java,amazon-ec2,amazon,Java,Amazon Ec2,Amazon,所以我有一个java程序在AmazonEC2实例中运行。有没有办法通过编程获得自己的标签?我尝试过为我们实例化一个新的AmazonEC2Client,即descripbetags()函数,但它只提供null。任何帮助都将不胜感激,谢谢 编辑:为了让事情更清楚,这些实例将是无人操作的工作机器,单独进行一些计算您应该能够通过发送请求到:http://169.254.169.254/latest/meta-data/instance-id。这只适用于ec2。通过这个,您可以访问有关实例的大量信息。但是
编辑:为了让事情更清楚,这些实例将是无人操作的工作机器,单独进行一些计算您应该能够通过发送请求到:
http://169.254.169.254/latest/meta-data/instance-id
。这只适用于ec2。通过这个,您可以访问有关实例的大量信息。但是,似乎不包括标记
您应该能够使用实例id和正确的身份验证来获取实例标记。如果要在实例上运行此操作,您可能希望为IAM用户提供有限的访问权限,而不是在实例受损的情况下提供对所有内容都有访问权限的用户。您应该能够通过向以下地址发送请求来获取当前实例id:
http://169.254.169.254/latest/meta-data/instance-id
。这只适用于ec2。通过这个,您可以访问有关实例的大量信息。但是,似乎不包括标记
您应该能够使用实例id和正确的身份验证来获取实例标记。如果要在实例上运行此功能,您可能希望为IAM用户提供有限的访问权限,而不是在实例受损的情况下提供可以访问所有内容的用户。虽然使用用户数据可能是最简单的解决方案,但OP特别询问了标记,不幸的是,亚马逊并没有尽可能地简化这一过程。然而,这是可以做到的。您希望使用两种amazon服务的组合
http://169.254.169.254/latest/meta-data/instance-id
descripbetags
()的方法。您可以使用资源ID作为过滤器之一,以获取实例的特定标记。支持的过滤器包括
tag key
resource-id
resource-type
我建议在启动时使用cloud init之类的工具进行此检索,并在服务器上缓存标记以备日后需要时使用。虽然使用用户数据可能是最简单的解决方案,但OP专门询问了标记问题,不幸的是,amazon并没有尽可能地简化此操作。然而,这是可以做到的。您希望使用两种amazon服务的组合
http://169.254.169.254/latest/meta-data/instance-id
descripbetags
()的方法。您可以使用资源ID作为过滤器之一,以获取实例的特定标记。支持的过滤器包括
tag key
resource-id
resource-type
我建议在启动时使用cloud init之类的工具进行此检索,并在服务器上缓存标记,以便以后在必要时使用。这将帮助您开始
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()
String instanceId=ec2metadatutils.getInstanceId();
AmazonEC2客户端=AmazonEC2ClientBuilder.standard()
.withCredentials(新的默认AWSCredentialsProviderChain())
.build();
descripbetagsrequest req=新的descripbetagsrequest()
.withFilters(新过滤器(“资源id”,Collections.singletonList(instanceId));
descripbetagsresult descripbetagsresult=client.descripbetags(请求);
List tags=descripbetagsresult.getTags()
这将帮助您开始
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()
String instanceId=ec2metadatutils.getInstanceId();
AmazonEC2客户端=AmazonEC2ClientBuilder.standard()
.withCredentials(新的默认AWSCredentialsProviderChain())
.build();
descripbetagsrequest req=新的descripbetagsrequest()
.withFilters(新过滤器(“资源id”,Collections.singletonList(instanceId));
descripbetagsresult descripbetagsresult=client.descripbetags(请求);
List tags=descripbetagsresult.getTags()
很抱歉,我应该说得更清楚一点,实例将是工作机器,标签是他们完成任务所需的信息。我需要这样做,这样他们就可以通过java程序中的代码自动看到自己的标记。您可以通过userdata发送数据。该信息可通过此请求的元数据http://169.254.169.254/latest/user-data
很抱歉,我应该说得更清楚一点,实例将是工作机器,标签是他们完成任务所需的信息。我需要这样做,这样他们就可以通过java程序中的代码自动看到自己的标记。您可以通过userdata发送数据。该信息可通过此请求的元数据http://169.254.169.254/latest/user-data