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