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

Spring cloud spring cloud AWS检测是否在本地运行,spring-cloud,Spring Cloud,我正在寻找一种快速、简单的方法,让我的引导代码检测它是否在AWS上运行(与本地环境相反) 我唯一能想到的就是尝试访问一些实例元数据,比如@Value(${ami id:N/A}”)字符串ami;,然后做一个if检查。我可以将其设置为@Conditional,但我希望框架已经提供了类似的功能(即在cloud Foundry上运行时“cloud”配置文件是如何自动激活的)正如@Alain所述,有几个注释,您可以使用它们来注释类或方法。在引擎盖下,你可以使用这些 final SpringApplica

我正在寻找一种快速、简单的方法,让我的引导代码检测它是否在AWS上运行(与本地环境相反)


我唯一能想到的就是尝试访问一些实例元数据,比如@Value(${ami id:N/A}”)字符串ami;,然后做一个if检查。我可以将其设置为@Conditional,但我希望框架已经提供了类似的功能(即在cloud Foundry上运行时“cloud”配置文件是如何自动激活的)

正如@Alain所述,有几个注释,您可以使用它们来注释类或方法。在引擎盖下,你可以使用这些

final SpringApplication app = new SpringApplication(Application.class);
if (AwsCloudEnvironmentCheckUtils.isRunningOnCloudEnvironment()) {
    app.setAdditionalProfiles("aws");
} else {
    app.setAdditionalProfiles("local");
}
    app.run(args);

“云”配置文件是由CF buildpack自动设置的,因此您不会在AWS上获得该配置文件。不确定是否有自动设置的EC2环境变量。不确定这对您的情况是否有帮助,但有一个注释仅在AWS上运行时才有条件地定义bean:
org.springframework.cloud.AWS.context.annotation.ConditionalOnAwsCloudEnvironment
#Alain-这就是答案,谢谢Hanks Jon,当我写原始问题-k时,这些都不存在