io.awspring.cloud v3 中 AmazonEc2InstanceDataPropertySource 类的替代品是什么?

问题描述 投票:0回答:1

我正在开发一个 Java / Spring Boot / Spring 应用程序,该应用程序使用 AWS Java SDK 版本 1 和 io.awspring.cloud 版本 2.4.4。

此应用程序使用类

io.awspring.cloud.core.env.ec2.AmazonEc2InstanceDataPropertySource
来获取 EC2 实例的 AMI ID:

var amazonEc2InstanceDataPropertySource = new AmazonEc2InstanceDataPropertySource("xxx");

String amiId = getInstanceDataProperty(amazonEc2InstanceDataPropertySource,"ami-id", "N/A");

..其他属性依此类推。

我现已将此应用程序升级到 AWS Java SDK 版本 2 和

io.awspring.cloud
版本 3.0.2。在新版本的
io.awspring.cloud
中,没有名为
AmazonEc2InstanceDataPropertySource
的类。如何重写现有代码以在该库的新版本中工作?

java spring aws-sdk spring-cloud spring-cloud-aws
1个回答
0
投票

AmazonEc2InstanceDataPropertySource
类通过 IMDS(实例元数据服务)获取当前 EC2 实例的 EC2 实例元数据属性。

它似乎已被替换为

@EnableContextInstanceData
(在Spring Boot中不需要使用正确的配置)和使用
Value
注释进行字段注入。

在您的情况下,当您希望获取 AMI ID 时,请使用 @Value 注释直接注入此元数据。

@Configuration
@EnableContextInstanceData
public static class MyConfig {}
@Value("${ami-id}")
private String amiId;
© www.soinside.com 2019 - 2024. All rights reserved.