aws-cdkを見ている。TypeScriptもしくはJavaでAWSの構成管理ができる。CloudFormationのプログラマブルなやつと考えるとよい。
TypeScriptは癒しなので癒されました。今日は感動ポイントをご紹介。
policyの変換がすごい
CFnのなかでもS3のbucket policyを書くのは最もダルい作業のうちのひとつに数えられると思いますが、aws-cdkだとこう書ける:
const bucket = new Bucket(...); const policy = new PolicyStatement(PolicyStatementEffect.Allow); policy.addAction("s3:GetObject"); policy.addResource(this.arnForObjects("*")); policy.addPrincipal(new Anyone()); bucket.addToResourcePolicy(policy);
これが cdk synth
でこうなる:
XxxBucketPolicy81AF88BF: Type: 'AWS::S3::BucketPolicy' Properties: Bucket: Ref: XxxBucketEDCC903C PolicyDocument: Statement: - Action: 's3:GetObject' Effect: Allow Principal: '*' Resource: 'Fn::Join': - "" - - 'Fn::GetAtt': - XxxBucketEDCC903C - Arn - / - '*' Version: '2012-10-17'
すごい!
JavaScriptのtemplate literalでよいかんじに変換されていそう。
よくあるワンソースで適当に変換エンジン作りましたというかんじではなく、ちゃんとTypeScript (ECMAScript) でネイティブにいいかんじに実装していこうという気概が感じられて、今後に期待が持てますね。