1. EC2 元数据访问
AWS 提供的 EC2MetadataUtils
工具类能获取实例元数据(如 AMI ID 和实例类型)。Spring Cloud AWS 更进一步,允许直接通过 @Value
注解注入这些元数据。
只需在配置类上添加 @EnableContextInstanceData
注解即可启用:
@Configuration
@EnableContextInstanceData
public class EC2EnableMetadata {
//
}
⚠️ 在 Spring Boot 环境中,此功能默认启用,无需额外配置。
然后就能直接注入元数据值:
@Value("${ami-id}")
private String amiId;
@Value("${hostname}")
private String hostname;
@Value("${instance-type}")
private String instanceType;
@Value("${services/domain}")
private String serviceDomain;
1.1 自定义标签
Spring 还支持注入用户定义的标签(tags)。通过 XML 配置启用此功能:
<beans...>
<aws-context:context-instance-data user-tags-map="instanceData"/>
</beans>
接着使用 Spring 表达式语法注入自定义标签:
@Value("#{instanceData.myTagKey}")
private String myTagValue;
2. EC2 客户端
当实例配置了用户标签时,Spring 会自动创建 AmazonEC2
客户端,可直接通过 @Autowired
注入使用:
@Autowired
private AmazonEC2 amazonEc2;
✅ 这些功能仅在 EC2 实例内运行时生效。
3. 总结
本文简要介绍了如何通过 Spring Cloud AWS 访问 EC2 实例数据。后续文章将探讨 RDS 集成方案。
完整示例代码可在 GitHub 获取。