らんだむな記憶

blogというものを体験してみようか!的なー

CDK (10)

cdklocal deploy

VPC 機能に関係するスタックのデプロイがうまく通らないので、何がどうなっているのか CloudTrail で確認したかったが、Features - LocalStack を見ると、CloudTrails は Pro 版でないとサポートされていないようなので詰んでしまった・・・。

https://github.com/cm-tanaka-keisuke/developersio-cdk/tree/31.ec2-stack をベースに改造してみているが、AS IS で cdklocal deploy しても

 ❌  VpcStack (devio-stg-stack-vpc) failed: Error: The stack named devio-stg-stack-vpc failed to deploy: CREATE_FAILED (Deployment failed)

となるので、StackLocal の制限にひっかかっているのかもしれない・・・。

$ docker-compose logs
...
localstack_main | 2022-03-21T12:33:17.044:WARNING:localstack.utils.cloudformation.template_deployer: Unexpected resource type CDK::Metadata when resolving references of resource CDKMetadata: {"Type": "AWS::CDK::Metadata", "Metadata": {"aws:cdk:path": "IamStack/CDKMetadata/Default"}, "Condition": "CDKMetadataAvailable", "LogicalResourceId": "CDKMetadata", "Properties": {"Analytics": "v2:deflate64:H4sIAAAAAAAA/yWMQQqDMBAA3+I92VYL/YCn3kr6AInJCqtxF7KxPYh/N21PAzMwHbR3uDb+ozbExSYaYX8VHxZT1UB+hb2f2ElCU/lgLZ4DPrNMlPD4OocqWw6/3gtHKiR8GJaIMOvlXf/tDbpmViKbNy60Irg/T/iq20J+AAAA"}}. To find out if CDK::Metadata is supported in LocalStack Pro, please check out our docs at https://docs.localstack.cloud/aws/cloudformation
...
localstack_main | 2022-03-21T12:34:30.339:WARNING:localstack.utils.cloudformation.template_deployer: Unexpected resource type EC2::NetworkAcl when resolving references of resource NetworkAclPublic: {"Type": "AWS::EC2::NetworkAcl", "Metadata": {"aws:cdk:path": "VpcStack/NetworkAclPublic"}, "LogicalResourceId": "NetworkAclPublic", "Properties": {"VpcId": "vpc-1a5a0b76", "Tags": [{"Key": "Name", "Value": "cdkstudy-dev-nacl-public"}]}}. To find out if EC2::NetworkAcl is supported in LocalStack Pro, please check out our docs at https://docs.localstack.cloud/aws/cloudformation

この辺かな・・・。どうやら NetworkAclインスタンスをスタックに含めなければデプロイできる様子。但し 1 回でも含めてデプロイを試行するとキャッシュが残る?のか次回に消しても通らなくなる。この場合、LocalStack を再起動すれば良さそう。

しかし、destroy 時にも

localstack_main | 2022-03-21T14:06:26.710:WARNING:localstack.utils.cloudformation.template_deployer: Action delete for resource type CDK::Metadata not available. To find out if CDK::Metadata is supported in LocalStack Pro, please check out our docs at https://docs.localstack.cloud/aws/cloudformation

というログが docker-compose logs で見えるので根が深そう・・・。実践!AWS CDK #6 Metadata | DevelopersIO の方法でもダメそう・・・。と思ったが、そうではなくて新たに

localstack_main | 2022-03-21T14:16:43.314:WARNING:localstack.utils.cloudformation.template_deployer: Action delete for resource type EC2::VPCGatewayAttachment not available. To find out if EC2::VPCGatewayAttachment is supported in LocalStack Pro, please check out our docs at https://docs.localstack.cloud/aws/cloudformation

が出ていた・・・。何なんだろう・・・。生成された CFn のテンプレートを見た感じでは、以下のようにインターネットゲートウェイっぽいのだが・・・。

    "VpcGatewayAttachment": {
      "Type": "AWS::EC2::VPCGatewayAttachment",
      "Properties": {
        "VpcId": {
          "Ref": "Vpc"
        },
        "InternetGatewayId": {
          "Ref": "InternetGateway"
        }
      }
    },

面倒臭いので destroy はせずに以下のようにサブシェルで LocalStack の再起動と再ブートストラップをさせよう・・・。

$ (cd .. && docker-compose down && docker-compose up -d) && cdklocal bootstrap aws://000000000000/us-east-1 --profile localstack