🐿️
Claude先生とAWS SAM Node.js用のテンプレート作った
みなさんは生成AI使っていますか?
私はClaudeに毎月$20払って、色々なことを尋ねては「便利だな〜」と思う毎日を過ごしています。
そんなClaudeでAWS SAMの関数生成スクリプトを作成して、ただでさえ便利なSAMを少しだけ便利にしてみました。よかったらリポジトリも覗いてみてください。また、アドバイスとかプルリクもください。
モチベーション
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