AWS CDKでクラスを使わずにスタックを定義する
AWS CDKでクラスを使わずにスタックを定義する:
使うかどうかわからないけど、見つけたのでとりあえず覚書。
これがこうなる。
注目すべきなのはSQSのリソースを定義している部分。
thisを第一引数にしているが、これは
ということは
こちらのほうがパット見はわかりやすいかもしれない。
ネストしたスタックなどを作り出すと地獄が見えるけども。
使うかどうかわからないけど、見つけたのでとりあえず覚書。
$ cdk --version 0.23.0 (build 1d705e7)
よくやる書き方
import cdk = require('@aws-cdk/cdk'); import sqs = require('@aws-cdk/aws-sqs'); export class TestStack extends cdk.Stack { constructor(scope: cdk.App, id: string, props?: cdk.StackProps) { super(scope, id, props); new sqs.Queue(this, 'ProjdynamoQueue', { visibilityTimeoutSec: 300 }); } } const app = new cdk.App(); new TestStack(app, 'TestStack'); app.run();
Resources: ProjdynamoQueueF6B39BFE: Type: AWS::SQS::Queue Properties: VisibilityTimeout: 300 Metadata: aws:cdk:path: TestStack/ProjdynamoQueue/Resource CDKMetadata: Type: AWS::CDK::Metadata Properties: Modules: aws-cdk=0.23.0,@aws-cdk/aws-iam=0.23.0,@aws-cdk/aws-kms=0.23.0,@aws-cdk/aws-s3-notifications=0.23.0,@aws-cdk/aws-sqs=0.23.0,@aws-cdk/cdk=0.23.0,@aws-cdk/cx-api=0.23.0,jsii-runtime=node.js/v10.5.0
クラスを使わずに書く
注目すべきなのはSQSのリソースを定義している部分。new sqs.Queue(this, 'ProjdynamoQueue', { visibilityTimeoutSec: 300 });
cdk.Stack
を渡している。ということは
cdk.Stack
インスタンスを渡してやれば別にこの書き方をする必要はない。import cdk = require('@aws-cdk/cdk'); import sqs = require('@aws-cdk/aws-sqs'); const app = new cdk.App(); const stack = new cdk.Stack(app, 'TestStack'); new sqs.Queue(stack, 'ProjdynamoQueue', { visibilityTimeoutSec: 300 }); app.run();
ネストしたスタックなどを作り出すと地獄が見えるけども。
コメント
コメントを投稿