spring cloud AWS检测是否正在运行本地

时间:2016-04-07 19:50:30

标签: spring-cloud

我正在寻找一种快速,简便的方法来检测我的Boot代码是否在AWS上运行(而不是本地环境)。

我唯一能想到的是试图访问一些实例元数据,比如@Value(“$ {ami-id:N / A}”)String ami;然后执行if检查。我可以将它设为@Conditional,但我希望框架可以提供类似的内容(即在Cloud Foundry上运行时“云”配置文件如何自动激活)

1 个答案:

答案 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);