我正在寻找一种快速,简便的方法来检测我的Boot代码是否在AWS上运行(而不是本地环境)。
我唯一能想到的是试图访问一些实例元数据,比如@Value(“$ {ami-id:N / A}”)String ami;然后执行if检查。我可以将它设为@Conditional,但我希望框架可以提供类似的内容(即在Cloud Foundry上运行时“云”配置文件如何自动激活)
答案 0 :(得分:0)
正如@Alain提到的,有两个注释@ConditionalOnAwsCloudEnvironment
和@ConditionalOnMissingAwsCloudEnvironment
可以用来注释一个类或方法。这些在幕后使用AwsCloudEnvironmentCheckUtils#isRunningOnCloudEnvironment
,因此您可以执行类似的操作
final SpringApplication app = new SpringApplication(Application.class);
if (AwsCloudEnvironmentCheckUtils.isRunningOnCloudEnvironment()) {
app.setAdditionalProfiles("aws");
} else {
app.setAdditionalProfiles("local");
}
app.run(args);