You can pass APP_ENV environment variable to commands below to be able to synth & deploy for multi-stages in your related account.
You can configure your stages and account definitions inside cdk.context.json
file located in root dir
Do not forget to change the CodeBuild Github source with your repository information. Once you need to have authorized your Github account with Codebuild before starting a build.
cdk synth --app "npx ts-node bin/common.ts" FunctionsBucketStack-dev
cdk deploy --app "npx ts-node bin/common.ts" FunctionsBucketStack-dev
cdk synth --app "npx ts-node bin/common.ts" CheckoutSuccessTopicStack-dev
cdk deploy --app "npx ts-node bin/common.ts" CheckoutSuccessTopicStack-dev
Required stacks before deploy stacks ALL
below:
CheckoutSuccessTopicStack
-
cdk synth --app "npx ts-node bin/common.ts" OrderCompletedEmailQueueStack-dev
-
cdk deploy --app "npx ts-node bin/common.ts" OrderCompletedEmailQueueStack-dev
-
cdk synth --app "npx ts-node bin/common.ts" OrderCompletedSmsQueueStack-dev
-
cdk deploy --app "npx ts-node bin/common.ts" OrderCompletedSmsQueueStack-dev
Required stacks before deploy stacks ALL
below:
FunctionsBucketStack
-
cdk synth --app "npx ts-node bin/codebuild.ts" CheckoutFunctionCodebuildStack-dev
-
cdk deploy --app "npx ts-node bin/codebuild.ts" CheckoutFunctionCodebuildStack-dev
-
cdk synth --app "npx ts-node bin/codebuild.ts" CreateDeliveryCheckoutFunctionCodebuildStack-dev
-
cdk deploy --app "npx ts-node bin/codebuild.ts" CreateDeliveryCheckoutFunctionCodebuildStack-dev
-
cdk synth --app "npx ts-node bin/codebuild.ts" DiscountCheckerFunctionCodebuildStack-dev
-
cdk deploy --app "npx ts-node bin/codebuild.ts" DiscountCheckerFunctionCodebuildStack-dev
-
cdk synth --app "npx ts-node bin/codebuild.ts" SendSmsFunctionCodebuildStack-dev
-
cdk deploy --app "npx ts-node bin/codebuild.ts" SendSmsFunctionCodebuildStack-dev
-
cdk synth --app "npx ts-node bin/codebuild.ts" SendEmailFunctionCodebuildStack-dev
-
cdk deploy --app "npx ts-node bin/codebuild.ts" SendEmailFunctionCodebuildStack-dev
Required stacks before deploy stacks below:
CheckoutSuccessTopicStack
TAG value represents lambda source code artifact key name that stored inside S3. Please replace with your value.
TAG=1.0.0 cdk synth --app "npx ts-node bin/function.ts" CheckoutFunctionStack-dev
TAG=1.0.0 cdk deploy --app "npx ts-node bin/function.ts" CheckoutFunctionStack-dev
Required stacks before deploy stacks below:
CheckoutSuccessTopicStack
TAG=1.0.0 cdk synth --app "npx ts-node bin/function.ts" CreateDeliveryFunctionStack-dev
TAG=1.0.0 cdk deploy --app "npx ts-node bin/function.ts" CreateDeliveryFunctionStack-dev
Required stacks before deploy stacks below:
CheckoutSuccessTopicStack
TAG=1.0.0 cdk synth --app "npx ts-node bin/function.ts" DiscountCheckerFunctionStack-dev
TAG=1.0.0 cdk deploy --app "npx ts-node bin/function.ts" DiscountCheckerFunctionStack-dev
Required stacks before deploy stacks below:
OrderCompletedEmailQueueStack
TAG=1.0.0 cdk synth --app "npx ts-node bin/function.ts" SendEmailFunctionStack-dev
TAG=1.0.0 cdk deploy --app "npx ts-node bin/function.ts" SendEmailFunctionStack-dev
Required stacks before deploy stacks below:
OrderCompletedSmsQueueStack
TAG=1.0.0 cdk synth --app "npx ts-node bin/function.ts" SendSmsFunctionStack-dev
TAG=1.0.0 cdk deploy --app "npx ts-node bin/function.ts" SendSmsFunctionStack-dev
Please authorize your Github repository on the CodeBuild dashboard before executing the commands below.
You can change LAMBDA_VERSION value on your CI/CD pipe that you love.
aws codebuild start-build --project-name dev-checkout-lambda --environment-variables-override "[{\"name\":\"LAMBDA_VERSION\",\"value\":\"1.0.3\"}]"
aws codebuild start-build --project-name dev-create-delivery-lambda --environment-variables-override "[{\"name\":\"LAMBDA_VERSION\",\"value\":\"1.0.0\"}]"
aws codebuild start-build --project-name dev-discount-checker-lambda --environment-variables-override "[{\"name\":\"LAMBDA_VERSION\",\"value\":\"1.0.0\"}]"
aws codebuild start-build --project-name dev-send-sms-lambda --environment-variables-override "[{\"name\":\"LAMBDA_VERSION\",\"value\":\"1.0.0\"}]"
aws codebuild start-build --project-name dev-send-email-lambda --environment-variables-override "[{\"name\":\"LAMBDA_VERSION\",\"value\":\"1.0.0\"}]"
aws lambda invoke --function-name prod-checkout-function --invocation-type Event --payload '{ "AWS": 'ome' }' response.json
npm run build
compile typescript to jsnpm run watch
watch for changes and compilenpm run dev
perform the jest unit devscdk deploy
deploy this stack to your default AWS account/regioncdk diff
compare deployed stack with current statecdk synth
emits the synthesized CloudFormation template