diff --git a/packages/deploy-aws/src/seagull_stack.ts b/packages/deploy-aws/src/seagull_stack.ts index b2dc036a..c597c7bb 100644 --- a/packages/deploy-aws/src/seagull_stack.ts +++ b/packages/deploy-aws/src/seagull_stack.ts @@ -1,4 +1,4 @@ -import { App, Secret, SecretParameter, Stack, StackProps } from '@aws-cdk/cdk' +import { App, RemovalPolicy, SecretParameter, Stack, StackProps } from '@aws-cdk/cdk' import { LambdaIntegration, RestApi } from '@aws-cdk/aws-apigateway' import * as CM from '@aws-cdk/aws-certificatemanager' @@ -39,8 +39,8 @@ export class SeagullStack extends Stack { return new LogGroup(this, `${this.id}-${logGroupName}`, props) } - addS3(bucketName: string, role?: IAM.IPrincipal) { - const s3Props = { bucketName } + addS3(bucketName: string, role?: IAM.IPrincipal, removalPolicy?: RemovalPolicy) { + const s3Props = { bucketName, removalPolicy } const bucket = new S3.Bucket(this, `${this.id}-${bucketName}`, s3Props) // tslint:disable-next-line:no-unused-expression role && bucket.grantReadWrite(role) diff --git a/packages/deploy-aws/src/templates/seagull_pipeline.ts b/packages/deploy-aws/src/templates/seagull_pipeline.ts index 2a78b8ca..6e4a0d65 100644 --- a/packages/deploy-aws/src/templates/seagull_pipeline.ts +++ b/packages/deploy-aws/src/templates/seagull_pipeline.ts @@ -57,7 +57,7 @@ export class SeagullPipeline { ] } - async createPipeline() { + async createPipeline(): Promise { setCredsByProfile(this.profile) // preparations for deployment const isTest = this.stage === 'test' diff --git a/packages/deploy-aws/src/templates/seagull_project.ts b/packages/deploy-aws/src/templates/seagull_project.ts index eb1ecbe0..06ed510b 100644 --- a/packages/deploy-aws/src/templates/seagull_project.ts +++ b/packages/deploy-aws/src/templates/seagull_project.ts @@ -1,3 +1,4 @@ +import { RemovalPolicy } from '@aws-cdk/cdk' import { FS } from '@seagull/commands-fs' import { SDK } from 'aws-cdk' import * as dotenv from 'dotenv' @@ -87,7 +88,7 @@ export class SeagullProject { const role = app.stack.addIAMRole('role', 'lambda.amazonaws.com', actions) app.role = role const env = await getEnv(name, this.appPath, this.stage, logBucketName) - const logBucket = app.stack.addS3(logBucketName, role) + const logBucket = app.stack.addS3(logBucketName, role, RemovalPolicy.Destroy) const lambda = app.stack.addLambda('lambda', this.appPath, role, env) const apiGW = app.stack.addUniversalApiGateway('apiGW', lambda, this.stage) const cloudfrontConfig = { aliasConfig, apiGateway: apiGW, logBucket }