Skip to content

Instantly share code, notes, and snippets.

@aritranag20
Created January 8, 2023 17:43
Show Gist options
  • Save aritranag20/0aabd033bcac55c04eb37f85582d6d2c to your computer and use it in GitHub Desktop.
Save aritranag20/0aabd033bcac55c04eb37f85582d6d2c to your computer and use it in GitHub Desktop.
AWS AppConfig :- Creating Solution Constucts using AWS CDK
final CfnApplication application = CfnApplication.Builder
.create(this, "cfn-conf-application")
.description("L1 Construct for AWS AppConfig")
.name("ConfigurationTag-Cdk")
.build();
final CfnConfigurationProfile cfnConfigurationProfile = CfnConfigurationProfile.Builder
.create(this, "cfn-conf-profile")
.applicationId(application.getRef())
.locationUri("hosted")
.name("cfn-conf-profile")
.validators(List.of(ValidatorsProperty.builder()
.content("{\"$schema\":\"http://json-schema.org/draft-04/schema#\",\"type\":\"object\",\"properties\":{\"profile\":{\"type\":\"object\",\"properties\":{\"name\":{\"type\":\"string\"},\"location\":{\"type\":\"string\"}},\"required\":[\"name\",\"location\"]}},\"required\":[\"profile\"]}")
.type("JSON_SCHEMA")
.build()))
.description("Testing the Application Configuration Profile")
.build();
final CfnHostedConfigurationVersion cfnHostedConfigurationVersion =
CfnHostedConfigurationVersion.Builder.create(this, "cfn-conf-hostedconfigurtation")
.applicationId(application.getRef())
.configurationProfileId(cfnConfigurationProfile.getRef())
.contentType("application/json")
.content("{\"profile\":{\"name\":\"Joydip\",\"location\":\"Ireland\"}}")
.build();
final CfnEnvironment cfnEnvironment = CfnEnvironment.Builder
.create(this, "cfn-conf-environment")
.applicationId(application.getRef())
.name("dev")
.build();
CfnDeployment.Builder
.create(this, "cfn-conf-deployment")
.applicationId(application.getRef())
.configurationProfileId(cfnConfigurationProfile.getRef())
.configurationVersion(cfnHostedConfigurationVersion.getRef())
.environmentId(cfnEnvironment.getRef())
.deploymentStrategyId(CfnDeploymentStrategy.Builder
.create(this, "cfn-conf-deployment-strategy")
.deploymentDurationInMinutes(1)
.finalBakeTimeInMinutes(1)
.growthType("LINEAR")
.growthFactor(100)
.name("cfn-conf-deployment-strategy")
.replicateTo("SSM_DOCUMENT")
.build().getRef())
.build();
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment