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

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

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

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 転載、複製、改変等は禁止します