概要
THE TYPESCRIPT WORKSHOPをやった時に感じた、ハマりどころ・注意どころをメモしました。
Node.jsの相互互換性問題
JavaScriptでlambdaを書く部分を以下のように修正しないとSyntaxError
がでます。
lambdaの設定で、runtime: lambda.Runtime.NODEJS_10_X
としているので、Node.jsが`ES Moduleのsyntaxを理解できないことが原因です。
Before
hitcounter.js
import{DynamoDB,Lambda}from'aws-sdk';
After
hitcounter.js
const{DynamoDB,Lambda}=require('aws-sdk');
DynamoDBはcdk destroy
で削除されない
気をつけましょう。
これはデフォルトの挙動で、RemovalPolicy
がRETAIN
になっているためです。
(確かにデフォルトの挙動で削除されたら恐いですし)
以下のようにすることでcdk destroy
でDnynamoDBも削除できるようになります。
cdk-workshop-stack.ts
consttable=newdynamodb.Table(this,'Hits',{partitionKey:{name:'path',type:dynamodb.AttributeType.STRING},removalPolicy:cdk.RemovalPolicy.DESTROY});