こんにちは、SWX3人目の熊谷(悠)です。
今回はCDKで出たエラーを直した備忘録です。
エラー
$ cdk bootstrap Error: spawnSync docker ENOENT at Object.spawnSync (node:internal/child_process:1110:20) at Object.spawnSync (node:child_process:871:24) at dockerExec (/example-app/node_modules/aws-cdk-lib/core/lib/bundling.ts:498:16) at Function.fromBuild (/example-app/node_modules/aws-cdk-lib/core/lib/bundling.ts:279:5) at new Bundling (/example-app/node_modules/@aws-cdk/aws-lambda-go-alpha/lib/bundling.ts:120:46) at Function.bundle (/example-app/node_modules/@aws-cdk/aws-lambda-go-alpha/lib/bundling.ts:71:22) at new GoFunction (/example-app/node_modules/@aws-cdk/aws-lambda-go-alpha/lib/function.ts:109:22) at new Notification (/example-app/lib/notification.ts:27:21) at new ExampleStack (/example-app/lib/example-app-stack.ts:31:26) at /example-app/bin/example-app.ts:61:3 Subprocess exited with error 1
解決策
dockerをインストールしました。
$ sudo dnf install docker
(CDK実行ユーザーがdockerを触れるように権限設定もしました。)
docker psして以下のようなエラーが出て無ければOK
## NG $ docker ps Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json": dial unix /var/run/docker.sock: connect: permission denied ## OK $ docker ps CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
$ sudo gpasswd -a $(whoami) docker $ sudo chgrp docker /var/run/docker.sock $ sudo systemctl restart docker
↑でダメだったら。ここまですれば流石に行けると思います。
$ sudo chown root:ec2-user /var/run/docker.sock $ sudo systemctl restart docker
原因
このモジュールを使用するには、Goがインストールされているか(go1.11以降)、Dockerがインストールされている必要があります。
@aws-cdk-lib.aws_lambda_nodejs module
ローカル環境情報
$ ec2-metadata --ami-id ami-id: ami-08c84d37db8aafe00 $ cat /etc/system-release Amazon Linux release 2023 (Amazon Linux) $ uname -a Linux example.ap-northeast-1.compute.internal 6.1.38-59.109.amzn2023.x86_64 #1 SMP PREEMPT_DYNAMIC Tue Jul 11 23:51:29 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux $ aws --v aws-cli/2.9.19 Python/3.9.16 Linux/6.1.38-59.109.amzn2023.x86_64 source/x86_64.amzn.2023 prompt/off $ node -v v18.17.0 $ go version bash: go: command not found $ cdk --version 2.89.0 (build 2ad6683)
参考
https://docs.aws.amazon.com/cdk/api/v1/docs/aws-lambda-nodejs-readme.html
https://docs.aws.amazon.com/cdk/api/v2/docs/aws-lambda-go-alpha-readme.html
https://tech.librastudio.co.jp/entry/index.php/2018/07/14/post-1924/