mirror of
https://github.com/spring-projects/spring-boot.git
synced 2026-09-17 12:09:16 +00:00
Merge pull request #47482 from vpavic
* pr/47482: Add AWS ECS to cloud platforms Closes gh-47482
This commit is contained in:
@@ -164,6 +164,20 @@ public enum CloudPlatform {
|
||||
return this.azureEnvVariables.stream().allMatch(environment::containsProperty);
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
/**
|
||||
* Amazon Web Services (AWS) Elastic Container Service (ECS) platform.
|
||||
* @since 4.0.0
|
||||
*/
|
||||
AWS_ECS {
|
||||
|
||||
@Override
|
||||
public boolean isDetected(Environment environment) {
|
||||
String awsExecutionEnv = environment.getProperty("AWS_EXECUTION_ENV");
|
||||
return (awsExecutionEnv != null) && awsExecutionEnv.startsWith("AWS_ECS");
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
private static final String PROPERTY_NAME = "spring.main.cloud-platform";
|
||||
|
||||
@@ -22,6 +22,8 @@ import java.util.Map;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.junit.jupiter.params.ParameterizedTest;
|
||||
import org.junit.jupiter.params.provider.ValueSource;
|
||||
|
||||
import org.springframework.boot.context.properties.bind.Binder;
|
||||
import org.springframework.boot.context.properties.source.MockConfigurationPropertySource;
|
||||
@@ -205,6 +207,24 @@ class CloudPlatformTests {
|
||||
assertThat(platform).isNull();
|
||||
}
|
||||
|
||||
@ParameterizedTest
|
||||
@ValueSource(strings = { "AWS_ECS_FARGATE", "AWS_ECS_EC2" })
|
||||
void getActiveWhenHasAwsExecutionEnvEcsShouldReturnAwsEcs(String awsExecutionEnv) {
|
||||
Map<String, Object> envVars = Map.of("AWS_EXECUTION_ENV", awsExecutionEnv);
|
||||
Environment environment = getEnvironmentWithEnvVariables(envVars);
|
||||
CloudPlatform platform = CloudPlatform.getActive(environment);
|
||||
assertThat(platform).isNotNull().isEqualTo(CloudPlatform.AWS_ECS);
|
||||
assertThat(platform.isActive(environment)).isTrue();
|
||||
}
|
||||
|
||||
@Test
|
||||
void getActiveWhenHasAwsExecutionEnvLambdaShouldNotReturnAwsEcs() {
|
||||
Map<String, Object> envVars = Map.of("AWS_EXECUTION_ENV", "AWS_Lambda_java8");
|
||||
Environment environment = getEnvironmentWithEnvVariables(envVars);
|
||||
CloudPlatform platform = CloudPlatform.getActive(environment);
|
||||
assertThat(platform).isNull();
|
||||
}
|
||||
|
||||
@Test
|
||||
void getActiveWhenHasEnforcedCloudPlatform() {
|
||||
Environment environment = getEnvironmentWithEnvVariables(
|
||||
|
||||
Reference in New Issue
Block a user