🐿️

Claude先生とAWS SAM Node.js用のテンプレート作った

に公開

みなさんは生成AI使っていますか?
私はClaudeに毎月$20払って、色々なことを尋ねては「便利だな〜」と思う毎日を過ごしています。
そんなClaudeでAWS SAMの関数生成スクリプトを作成して、ただでさえ便利なSAMを少しだけ便利にしてみました。よかったらリポジトリも覗いてみてください。また、アドバイスとかプルリクもください。

https://github.com/aki-kun-desu/sam-template-nodejs

モチベーション

SAMを初める場合、sam initでテンプレートを作成することが多いと思うのですが、あのディレクトリ構成が気に入りませんでした。以下のようにsrcディレクトリにまとめることにしました。

.
├── samconfig.toml
├── src
│   ├── layers
│   │   └── sample-layer
│   │       └── nodejs
│   │           ├── lib
│   │           │   └── index.mjs
│   │           ├── package.json
│   │           └── tests
│   │               └── unit
│   │                   └── test-handler.test.mjs
│   └── sample
│       ├── app.mjs
│       ├── package-lock.json
│       ├── package.json
│       └── tests
│           └── unit
│               └── test-handler.test.mjs
└── template.yaml

ここまではいいのですが、新しく関数を作成するたびにディレクトリ切ってソースファイルを作成して...みたいな手間を極力なくしたかったのが始まりです。

助けて!Claude先生!

さて、これを簡単にする処理はないかと聞いたところ、「script作りましたw」という言葉と共に、コードを提供してくれました。
なんと、npm run create-func <function-name> [method] [path]を実行するだけで、さっき手間だと言った作業を自動化、さらにはtemplate.yamlまで更新する始末...本当にありがとう。


(色々自分でも修正していたので、package.jsonが空なのに、コンソールに依存関係をインストール中とか出ていますが...)こんな感じで動きます。

終わり

生成AIをうまいこと使って(?)テンプレートを生成するためのスクリプトを作ってみました。こういった生成AIを使った業務効率化はどんどん導入していきたいですね。
こういった機能はSAMの標準であればいいのですが、とりあえず私はこれを使っていこうと思います。Claudeありがとう。

Discussion