Skip to main content
lunet.org
  1. Posts/

ChatGPT に AWS CDK を書いてもらう

·1 mins

はじめに #

この記事は AWS CDK Advent Calendar 2022 の5日目の記事です。

巷では ChatGPT というものが流行っているそうなので、早速 AWS CDK を書いてもらうことにしました。お題は来年の運勢を占うためのおみくじアプリです。

ChatGPT におみくじアプリを作ってもらう #

さっそく質問していきます。ChatGPT の回答には不正確な情報が含まれている可能性もあるため、不正確な情報が拡散しないように回答は画像で掲載しています。

Q. AWS 上に、おみくじAPIを作りたいと思います。 おみくじAPI とは、”大吉”、”吉”、”中吉”、”小吉”、”末吉”、”凶”、”大凶”の中からランダムで一つを返す REST API です。 AWS CDK で、API Gateway と Lambda を使っておみくじAPIを構築するコードを書いてください。言語は TypeScript を使用してください。

(続き)

なんかよさそうだけど惜しそうな雰囲気のコードが返ってきました。App とStack をまとめて一つのファイルに書くスタイルのようです。

Q. このソースコードはどのファイルに記述すればいいですか?

cdk.jsonを見ればいいよと教えてくれました。bin/ 内のファイルにソースコードをコピペすると deploy は通りますが、curl で叩いてもうまく動きません。

Q. 上記のコードをデプロイしてcurlで動作確認すると {"message": "Internal server error"} というエラーが返ってきます。

分かってるなら最初からそうせんかい!と思わなくもないですが、試されているんでしょうか?直してみると無事動く API ができました。

$ curl https://****.execute-api.ap-northeast-1.amazonaws.com/prod/fortune
{"fortune":"大吉"}%     

ちなみに同じ質問であっても、実行するたびに違う回答、違うソースコードが返ってきます。何回かガチャをすることでよりよい回答を選ぶこともできそうです。下の画像は最初の質問をもう一度したときのものです。

ChatGPT に AWS CDK の質問をしてみる #

ここからはおみくじとは関係ないですが、AWS CDK についてのよくある質問をいくつか聞いてみました。

Q. AWS CDK はいろいろな言語で使えますが、どの言語を使うのがおすすめですか?
Q. AWS CDK に JavaScript と TypeScript がよく使われるのはなぜですか?
Q. Infrastructure as Code はなぜ必要なのですか?
Q. ぶっちゃけ IaC って大変じゃないですか?

まとめ #

間違ったコードが出力されたり、前提が省略されていたりするため、現時点では知識がゼロの状態からこれだけで CDK を使いこなすのは難しいかもしれません。ある程度手直しする前提で使ったり、方針のヒントを得るために使うのは全然ありだと思います。かがくのちからってすげー!