cdk synth

アプリからテンプレートを総合的に扱う (synthesize)

AWS CDKアプリは、事実上、コードを使用したインフラストラクチャの 定義 にすぎません。CDKアプリが実行されると、アプリケーションで定義された各スタックのAWS CloudFormationテンプレートが作成されます(CDKの用語では “synthesize” )。

CDKアプリを総合的に扱うには、 cdk synth コマンドを実行してください。サンプルアプリから合成されたCloudFormationテンプレートを確認してみましょう。

cdk synth

上記コマンドを実行すると、次のCloudFormationテンプレートを出力します。

Resources:
    CdkWorkshopQueue50D9D426:
        Type: 'AWS::SQS::Queue'
        Properties:
            VisibilityTimeout: 300
    CdkWorkshopQueuePolicyAF2494A5:
        Type: 'AWS::SQS::QueuePolicy'
        Properties:
            PolicyDocument:
                Statement:
                    -
                        Action: 'sqs:SendMessage'
                        Condition:
                            ArnEquals:
                                'aws:SourceArn':
                                    Ref: CdkWorkshopTopicD368A42F
                        Effect: Allow
                        Principal:
                            Service: sns.amazonaws.com
                        Resource:
                            'Fn::GetAtt':
                                - CdkWorkshopQueue50D9D426
                                - Arn
                Version: '2012-10-17'
            Queues:
                -
                    Ref: CdkWorkshopQueue50D9D426
    CdkWorkshopTopicD368A42F:
        Type: 'AWS::SNS::Topic'
    CdkWorkshopTopicCdkWorkshopQueueSubscription88D211C7:
        Type: 'AWS::SNS::Subscription'
        Properties:
            Endpoint:
                'Fn::GetAtt':
                    - CdkWorkshopQueue50D9D426
                    - Arn
            Protocol: sqs
            TopicArn:
                Ref: CdkWorkshopTopicD368A42F
    CDKMetadata:
        Type: 'AWS::CDK::Metadata'
        Properties:
            Modules: >-
                aws-cdk=0.39.0,jsii-runtime=node.js/v12.2.0

ご覧のとおり、このテンプレートには4つのリソースが含まれています。

  • AWS::SQS::Queue - キュー
  • AWS::SNS::Topic - トピック
  • AWS::SNS::Subscription - キューとトピックの間のサブスクリプション
  • AWS::SQS::QueuePolicy - このトピックがメッセージをキューに送信できるようにするIAMポリシー

AWS::CDK::Metadata リソースは、自動的にすべてのスタックへのツールキットによって追加されます。AWS CDKチームが分析のために使用し、セキュリティ上の問題があるバージョンを特定できるようにします。詳細については、AW​​S CDKユーザーガイドのバージョンレポートを参照してください。このワークショップの残りの説明では、メタデータリソースに関する詳細は省略しております。