Upgrade to Pro — share decks privately, control downloads, hide ads and more …

ChatGPTを使ったCDKコーディングの強みと弱み、そしてその乗り越え方

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 ChatGPTを使ったCDKコーディングの強みと弱み、そしてその乗り越え方

Avatar for Yusuke Shimizu

Yusuke Shimizu

April 27, 2023
Tweet

More Decks by Yusuke Shimizu

Other Decks in Technology

Transcript

  1. NRI ネットコム TECH & DESIGN STUDY #6 ChatGPTを使った CDKコーディングの 強みと弱み

    そしてその乗り越え方 志水 友輔 #nncstudy 転載、複製、改変等は禁止します
  2. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 志水 友輔 (しみず ゆうすけ) NRI ネットコム

    / CLOUD ARCHITECT 2023 Japan AWS Ambassadors 2023 Japan AWS All Certifications Engineers(2021-)  AWS CDK/Cloud9/ カメラ/ つけ麺 SysOps 試験本書きました Blog: #nncstudy 転載、複製、改変等は禁止します
  3. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 ChatGPTとは OpenAI が2022 年11 月に公開した人工知能(AI) チャットボット。自然で意味のある文章を生成する

    ことができる 人工知能チャットボット 自然言語処理(NLP )タスクに優れており、質問へ の回答や文章の要約や翻訳はもちろん、コード生成 やコードの説明など開発者の助けも可能 開発者としても有用 ChatGPT は、2021 年9 月までの最新技術をベースに しており、それ以降の最新技術については、継続的 にアップデートされることが期待される 知識の限界 #nncstudy 転載、複製、改変等は禁止します
  4. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 INPUT OUTPUT 1 Python を使用してAWS CDK

    で EventBridge を利用し、日本時間の 朝9 時に"Hello ChatGPT" を返す Lambda 関数が実行される サーバレスアーキテクチャを構築する 方法を教えて VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  5. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 INPUT OUTPUT 1 Python を使用してAWS CDK

    で EventBridge を利用し、日本時間の 朝9 時に"Hello ChatGPT" を返す Lambda 関数が実行される サーバレスアーキテクチャを構築する 方法を教えて 言語をPython に指定 日本時間の9 時(UTC0 時)に なってる Rule とFunction も 紐付けしてる VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  6. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 OUTPUT2 OUTPUT3 ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt 、アクセス日:2023/03/28

    VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  7. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 OUTPUT2 OUTPUT3 CDK コードに沿った手順 Lambda の場所やファイル名

    ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt 、アクセス日:2023/03/28 VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  8. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 OUTPUT2 OUTPUT3 body でHello ChatGPT を

    返してる handler 名もCDK と合ってる ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt 、アクセス日:2023/03/28 VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  9. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 INPUT OUTPUT 1 Python を使用してAWS CDK

    で EventBridge を利用し、日本時間の 朝9 時に"Hello ChatGPT" を返す Lambda 関数が実行される サーバレスアーキテクチャを構築する 方法を教えて core をimport してる →v2 のコードになってない VSCode 、Microsoft 、https://azure.microsoft.com/ja-jp/products/visual-studio-code #nncstudy 転載、複製、改変等は禁止します
  10. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 修正方法 cdk-sample の修正をINPUT https://github.com/aws-samples/aws-cdk- examples/commit/b6d65ac3c105b68b583a8 7da8f2e7c4def1e980a#diff-

    d4d60597adf6490245ba6583d79eea5135cf8 82b45b2dcc7cf32a78e8463b1bb core をimport したがるタイプなので、修正後の コードを出して明示的に指摘する 差分 #nncstudy 転載、複製、改変等は禁止します
  11. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト 修正 $ flake8 app.py |

    echo $0 0 修正内容(from ChatGPT) 修正結果 クラス定義の前に2 つの空白行を追加しました ( 行 9) 。 EventBridge ルールの定義において、長い行を改 行して整形しました ( 行 26) 。 変更点: 1. 2. 下記がコード内容とそれに対するflake8 の指摘内容 です。指摘を直すようにコードを修正して。 ・コードの内容 コードをコピる ・指摘内容 flake8 の指摘内容コピる #nncstudy 転載、複製、改変等は禁止します
  12. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト 修正 $ flake8 app.py |

    echo $0 0 修正内容(from ChatGPT) 修正結果 クラス定義の前に2 つの空白行を追加しました ( 行 9) 。 EventBridge ルールの定義において、長い行を改 行して整形しました ( 行 26) 。 変更点: 1. 2. flake8 は問題 なし 下記がコード内容とそれに対するflake8 の指摘内容 です。指摘を直すようにコードを修正して。 ・コードの内容 コードをコピる ・指摘内容 flake8 の指摘内容コピる #nncstudy 転載、複製、改変等は禁止します
  13. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト 修正 下記がコード内容とそれに対するcdk-nag の指摘内 容です。指摘を直すようにコードを修正して。 ・コードの内容

    コードをコピる ・指摘内容 cdk-nag の結果をコピる $ cdk diff ... hello_chatgpt_lambda.role = lambda_role AttributeError: can't set attribute Subprocess exited with error 1 修正内容(from ChatGPT) 修正結果 Lambda 関数のランタイムをPython 3.9 に更新し ました ( 行 21) 。 AWS マネージドポリシーの代わりに、カスタム ポリシーを作成し、Lambda 関数に関連付けられ たロールにアタッチしました ( 行 25-45) 。 変更点: 1. 2. #nncstudy 転載、複製、改変等は禁止します
  14. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト 修正 ` hello_chatgpt_lambda.role = lambda_role`

    の部分で ` AttributeError: can't set attribute` というエラーが出ました。修正して $ cdk deploy ... ✅ ServerlessEventBridgeExample ✨ Deployment time: 72.48s ... 修正内容(from ChatGPT) 修正結果 _lambda.Function の定義を更新して、role パラ メータに lambda_role を割り当てました ( 行 34- 40) 。 Lambda 関数の定義をロールの定義の後に移動し ました。 変更点: 1. 2. #nncstudy 転載、複製、改変等は禁止します
  15. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト 修正 $ cdk deploy ...

    ✅ ServerlessEventBridgeExample ✨ Deployment time: 72.48s ... 修正内容(from ChatGPT) 修正結果 _lambda.Function の定義を更新して、role パラ メータに lambda_role を割り当てました ( 行 34- 40) 。 Lambda 関数の定義をロールの定義の後に移動し ました。 変更点: 1. 2. cdk_nag も いけた! ` hello_chatgpt_lambda.role = lambda_role` の部分で ` AttributeError: can't set attribute` というエラーが出ました。修正して #nncstudy 転載、複製、改変等は禁止します
  16. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト OUTPUT 下記コードがなにしてるか教えて --- コードの内容(CDK コードのみ)

    (AWS Budgets からAmazon Simple Notification Service (Amazon SNS) へ通知しAWS Lambda でデー タを受け取り、LINE へ通知する構成) Budgets SNS Lambda LINE ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt #nncstudy 転載、複製、改変等は禁止します
  17. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 正解! プロンプト OUTPUT このコードはAWS のコスト管理のために、AWS Budgets

    を使って月額コストが設定した予算を超え た場合に通知を受け取る仕組みを構築しています。 コストがしきい値を超えた場合、AWS Budgets が SNS トピックに通知を送信し、Lambda 関数がそれ を処理してLINE Notify などのサービスに通知を送る ことができます。 Budgets SNS Lambda LINE 下記コードがなにしてるか教えて --- コードの内容(CDK コードのみ) #nncstudy 転載、複製、改変等は禁止します
  18. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 ALB EC2 プロンプト OUTPUT 下記コードがなにしてるか教えて ---

    コードの内容(CDK コードのみ) (Application Load Balancer でリクエストを負荷分 散し、リクエスト数によってAmazon EC2 が Amazon EC2 Auto Scaling でオートスケール) ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt #nncstudy 転載、複製、改変等は禁止します
  19. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 プロンプト OUTPUT ChatGPT 、OpenAI 、https://openai.com/blog/chatgpt 正解!

    下記コードがなにしてるか教えて --- コードの内容(CDK コードのみ) #nncstudy ALB EC2 転載、複製、改変等は禁止します
  20. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 ChatGPTとの相性 コード生成 コード変換 0->1 コード修正 1->100

    コード説明 100->100 #nncstudy 求めてる答えが大体 出てくる 転載、複製、改変等は禁止します
  21. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 ChatGPTとの相性 コード生成 コード変換 0->1 コード修正 1->100

    コード説明 100->100 #nncstudy v1->v2 のコードをどれだけ INPUT 出来るか勝負 aws-samples リポジトリの v2 化の差分を投入 転載、複製、改変等は禁止します
  22. ChatGPT を使ったCDK コーディングの強みと弱み そしてその乗り越え方 ChatGPTとの相性 コード生成 コード変換 0->1 コード修正 1->100

    コード説明 100->100 #nncstudy 一緒に作っていく感覚 転載、複製、改変等は禁止します
  23. まとめ ChatGPT でコーディング速度アップ AWS CDK とChatGPT を組み合わせることで、迅速かつ正確 なAWS インフラストラクチャの作成が可能 コードを追加/

    修正/ 説明は得意 0 からコードを作るタイプはデータ期間の関係上苦手 v2 変換コードを多くINPUT すれば乗り越えられる 教師ではなく副操縦士 ChatGPT は答えを全てくれる教師ではなく、一緒に助け合い ながらコーディングをする副操縦士 #nncstudy 転載、複製、改変等は禁止します