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

Amazon Q Developer Proで効率化するAPI開発入門

Amazon Q Developer Proで効率化するAPI開発入門

JAWS-UG福岡 #19: re:Invent re:Cap!!
https://jawsug-fukuoka.connpass.com/event/341319/

Avatar for shiro seike

shiro seike

February 08, 2025
Tweet

More Decks by shiro seike

Other Decks in Programming

Transcript

  1. ©Fusic Co., Ltd. 2 ࣗݾ঺հ ͸͡Ίʹ ਗ਼Ո ࢙࿠ (@seike460) S

    H I R O S E I K E גࣜձࣾFusicɹϓϦϯγύϧΤϯδχΞ/ΤόϯδΣϦετ AWS Community Builder Serverless - ίϛϡχςΟ - JAWS-UG Fukuoka - Fukuoka.php - Fukuoka.go - Serverless Meetup Fukuoka - Cloudflare Meetup Fukuoka - JP_Stripes Fukuoka - JBUG Fukuoka
  2. ©Fusic Co., Ltd. 3 CONTENTS ໨࣍ 1. Amazon Q Developerͱ͸

    2. Amazon Q Developer ProΛར༻ͨ͠API։ൃ 3. ·ͱΊ
  3. ©Fusic Co., Ltd. 5 Amazon Q Developer Amazon Web Services͕ఏڙ͢Δੜ੒AI౥ࡌͷߴ౓ͳΞγελϯτ

    ▪ίʔυੜ੒ͱิ׬ ɹϦΞϧλΠϜͰͷίʔυఏҊ΍ิ׬Λఏڙ͠ɺ։ൃ଎౓Λ޲ ɹJetBrainsɺIntelliJ IDEAɺVisual StudioɺVS CodeͳͲͰར༻Մೳ ▪ࣗ཯ܕΤʔδΣϯτ ɹෳࡶͳλεΫͷࣗಈԽΛࢧԉ͠ɺػೳ࣮૷΍ίʔυจॻԽΛαϙʔτ ▪ίʔυม׵ ɹϨΨγʔίʔυͷϞμφΠθʔγϣϯΛਝ଎ʹߦ͍ɺ ɹ࠷৽ͷٕज़ελοΫ΁ͷҠߦΛ༰қʹ ▪ηΩϡϦςΟεΩϟϯ ɹίʔυͷ੬ऑੑΛݕग़͠ɺमਖ਼ఏҊΛఏڙͯ͠ηΩϡϦςΟΛڧԽ
  4. ©Fusic Co., Ltd. 6 Amazon Q Developer ͷྉۚ ▪ແྉར༻࿮ جຊػೳΛແྉͰར༻ՄೳͰ͕͢ɺߴ౓ͳػೳʹ͸݄ؒར༻੍ݶ༗

    ▪Amazon Q Developer Pro ֹ݄19 USDͰɺΤϯλʔϓϥΠζΞΫηείϯτϩʔϧ΍ΧελϚΠζ ՄೳͳίʔυఏҊͳͲɺΑΓॆ࣮ͨ͠ػೳΛར༻Մೳ ※2025/02/08ݱࡏ
  5. ©Fusic Co., Ltd. 7 ։ൃऀࢧԉػೳͷڧԽΛ࣮ફ ▪ίʔυੜ੒ (/dev) -> PythonͰAPIͷCRUDػೳΛ࣮૷ ▪ίʔυϨϏϡʔͱमਖ਼

    (/review)ɹ˞Proͷػೳ -> ίʔυͷ඼࣭ΛνΣοΫ͠ɺඞཁͳमਖ਼ ▪୯ମςετͷ࡞੒ (/test)ɹ˞Proͷػೳ -> ϢχοτςετΛࣗಈੜ੒͠ɺίʔυͷ৴པੑΛ֬อ ▪υΩϡϝϯτͷ࡞੒ (/doc)ɹ˞Proͷػೳ -> README.mdΛੜ੒͠ɺϓϩδΣΫτͷ֓ཁ΍࢖༻ํ๏ΛจॻԽ ࢀরURL https://aws.amazon.com/jp/blogs/news/weekly-genai-20241202/
  6. ©Fusic Co., Ltd. 9 ࣮ࢪ޻ఔखॱ Ͱ͖ΔݶΓίʔσΟϯάΛͤͣʹҰൠతͳServerless APIΛߏங͢Δ ᶃཁ݅Λ /dev ίϚϯυ΁ఏڙ͠ίʔυੜ੒

    ᶄੜ੒ίʔυʹରͯ͠ /reviewίϚϯυΛ࣮ߦͯ͠ηΩϡϦςΟνΣοΫ ᶅϨϏϡʔޙͷίʔυʹରͯ͠ /testίϚϯυΛ࣮ߦͯ͠୯ମςετੜ੒ ᶆ࠷ޙʹ /docίϚϯυΛ࢖͍ιʔείʔυશମʹର͢ΔREADMEੜ੒
  7. ©Fusic Co., Ltd. 10 ᶃཁ݅Λ /dev ίϚϯυ΁ఏڙ͠ίʔυੜ੒ AWS SAMΛ࢖ͬͯɺҎԼͷཁ݅Λຬͨ͢AWS Lambda

    + DynamoDB APIΛ࡞੒͍ͯͩ͘͠͞ɻ API ɹDynamoDBςʔϒϧʹର͢ΔCRUDૢ࡞Λ࣮૷͍ͯͩ͘͠͞ɻ ɹ֤ૢ࡞͸ɺͦΕͧΕͷHTTPϝιουʹରԠͨ͠ΤϯυϙΠϯτΛ࣋ͭΑ͏ʹ͍ͯͩ͘͠͞ ɹɹ৽ن࡞੒: POST ɹɹσʔλऔಘ: GET ɹɹߋ৽: PUT ɹɹ࡟আ: DELETE ɹAPI͸ϦΫΤετΛॲཧ͢ΔલʹɺೖྗσʔλͷݕূΛߦ͏ඞཁ͕͋Γ·͢ɻ ɹ୯ମςετΛ؆୯ʹ࣮ࢪͰ͖ΔΑ͏ʹɺϋϯυϥʔΛϞδϡʔϧԽ͠ɺςετ͠΍͍ؔ͢਺ͱͯ͠ઃܭ͍ͯͩ͘͠͞ɻ ΠϯϑϥετϥΫνϟ ɹAWS SAMΛ࢖ͬͯɺLambdaؔ਺ͱDynamoDBςʔϒϧΛtemplate.yaml಺ʹఆ͍ٛͯͩ͘͠͞ɻ ɹLambdaؔ਺ͷ࣮ߦ؀ڥͱͯ͠Python 3.12Λ࢖༻͍ͯͩ͘͠͞ɻ ɹLambdaؔ਺ʹ͸DynamoDB΁ͷΞΫηεݖݶΛ࣋ͭIAMϩʔϧΛׂΓ౰͍ͯͯͩ͘͞ɻ ɹɹCI/CDύΠϓϥΠϯʢGitHub Actionsར༻ʣ ɹɹɹCI ɹɹɹɹLambdaؔ਺ͷ͢΂ͯͷϋϯυϥʔʹରͯ͠ɺPytestΛ࢖ͬͨ୯ମςετΛؚΊ͍ͯͩ͘͞ɻ ɹɹɹɹϦϙδτϦʹίʔυΛϓογϡͨ͠ΓɺϓϧϦΫΤετΛ࡞੒ͨ͠ࡍʹɺࣗಈతʹςετ͕࣮ߦ͞ΕΔ࢓૊Έʹ͍ͯͩ͘͠͞ɻ ɹɹɹɹGitHub ActionsͷϫʔΫϑϩʔͰPython 3.12Λ࣮ߦ؀ڥͱͯ͠ઃఆ͍ͯͩ͘͠͞ɻ ɹɹɹCD ɹɹɹɹ͢΂ͯͷςετʹ߹֨ͨ͠ޙʹɺAWS SAMίϚϯυͰAPIΛσϓϩΠ͍ͯͩ͘͠͞ɻ ཹҙࣄ߲ ɹߏ੒Λ؆͔ܿͭ໌֬ʹ͍ͯͩ͘͠͞ɻ ɹ͢΂ͯͷઃఆͱίʔυ͕AWSͷαʔόʔϨεΞʔΩςΫνϟ͓ΑͼηΩϡϦςΟͷϕετϓϥΫςΟεʹ४ڌ͍ͯ͠Δ͜ͱΛ֬ೝ͍ͯͩ͘͠͞ɻ
  8. ©Fusic Co., Ltd. 11 ᶃཁ݅Λ /dev ίϚϯυ΁ఏڙ͠ίʔυੜ੒ ▪ཁ༁ɿValidationػߏ͕͋ΔCRUDͷAPIΛ ɹ୯ମςετ͕࣮ࢪͰ͖ΔΑ͏ͳܗͰੜ੒ͯ͠ AWS

    SAMΛ࢖ͬͯɺҎԼͷཁ݅Λຬͨ͢AWS Lambda + DynamoDB APIΛ࡞੒͍ͯͩ͘͠͞ɻ API ɹDynamoDBςʔϒϧʹର͢ΔCRUDૢ࡞Λ࣮૷͍ͯͩ͘͠͞ɻ ɹ֤ૢ࡞͸ɺͦΕͧΕͷHTTPϝιουʹରԠͨ͠ΤϯυϙΠϯτΛ࣋ͭΑ͏ʹ͍ͯͩ͘͠͞ ɹɹ৽ن࡞੒: POST ɹɹσʔλऔಘ: GET ɹɹߋ৽: PUT ɹɹ࡟আ: DELETE ɹAPI͸ϦΫΤετΛॲཧ͢ΔલʹɺೖྗσʔλͷݕূΛߦ͏ඞཁ͕͋Γ·͢ɻ ɹ୯ମςετΛ؆୯ʹ࣮ࢪͰ͖ΔΑ͏ʹɺϋϯυϥʔΛϞδϡʔϧԽ͠ɺ ɹςετ͠΍͍ؔ͢਺ͱͯ͠ઃܭ͍ͯͩ͘͠͞ɻ
  9. ©Fusic Co., Ltd. 12 ᶃཁ݅Λ /dev ίϚϯυ΁ఏڙ͠ίʔυੜ੒ ▪ཁ༁ɿCIͰPytestͯ͠੒ޭͨ͠ΒPython3.12Λ࣮ߦ؀ڥͱ͠ɺ ɹAWS SAMͰσϓϩΠ͢ΔΑ͏ͳCI/CDύΠϓϥΠϯؚΊੜ੒ͯ͠

    ΠϯϑϥετϥΫνϟ ɹAWS SAMΛ࢖ͬͯɺLambdaؔ਺ͱDynamoDBςʔϒϧΛtemplate.yaml಺ʹఆ͍ٛͯͩ͘͠͞ɻ ɹLambdaؔ਺ͷ࣮ߦ؀ڥͱͯ͠Python 3.12Λ࢖༻͍ͯͩ͘͠͞ɻ ɹLambdaؔ਺ʹ͸DynamoDB΁ͷΞΫηεݖݶΛ࣋ͭIAMϩʔϧΛׂΓ౰͍ͯͯͩ͘͞ɻ ɹɹCI/CDύΠϓϥΠϯʢGitHub Actionsར༻ʣ ɹɹɹCI ɹɹɹɹLambdaؔ਺ͷ͢΂ͯͷϋϯυϥʔʹରͯ͠ɺPytestΛ࢖ͬͨ୯ମςετΛؚΊ͍ͯͩ͘͞ɻ ɹɹɹɹϦϙδτϦʹίʔυΛϓογϡͨ͠ΓɺϓϧϦΫΤετΛ࡞੒ͨ͠ࡍʹɺࣗಈతʹςετ͕࣮ߦ͞ΕΔ࢓૊Έʹ͍ͯͩ͘͠͞ɻ ɹɹɹɹGitHub ActionsͷϫʔΫϑϩʔͰPython 3.12Λ࣮ߦ؀ڥͱͯ͠ઃఆ͍ͯͩ͘͠͞ɻ ɹɹɹCD ɹɹɹɹ͢΂ͯͷςετʹ߹֨ͨ͠ޙʹɺAWS SAMίϚϯυͰAPIΛσϓϩΠ͍ͯͩ͘͠͞ɻ ཹҙࣄ߲ ɹߏ੒Λ؆͔ܿͭ໌֬ʹ͍ͯͩ͘͠͞ɻ ɹ͢΂ͯͷઃఆͱίʔυ͕AWSͷαʔόʔϨεΞʔΩςΫνϟ͓Αͼ ɹηΩϡϦςΟͷϕετϓϥΫςΟεʹ४ڌ͍ͯ͠Δ͜ͱΛ֬ೝ͍ͯͩ͘͠͞ɻ
  10. ©Fusic Co., Ltd. 13 ӳ༁ͯ͠IDE(VSCode)ͷAmazon Q ʹ /devʹ౉͢ VSCodeͷAmazon Q

    ϓϥάΠϯར༻ ೔ຊޠ͸ݱࡏରԠ͍ͯ͠ͳ͍ͷͰ ӳ༁ΛߦͬͯઌఔͷจষΛ /dev ίϚϯυʹ౉͢ ex: /dev Please create AWS Lambda ͠͹Β͘͢Δͱద༻͢Δ͔ฉ͔ΕΔ Apply͢Δͱ࣮ࡍʹϑΝΠϧ͕࡞੒
  11. ©Fusic Co., Ltd. 15 ಈ࡞΋໰୊ͳ͍ͷͰଓ͍ͯ /reviewίϚϯυ ͋͘·Ͱੜ੒AI͕࡞੒ͨ͠΋ͷͳͷͰ ੒Ռ෺ʹ͸ࣗ෼ͨͪͰ ੹೚Λ࣋ͨͳ͍ͱ͍͚ͳ͍ ->

    ϨϏϡʔඞਢ ͦ͜ͰAmazon Q Developer Proͷ /reviewίϚϯυΛ࣮ࢪͤ͞ɺ ੜ੒ͨ͠ίʔυͷϨϏϡʔΛ࣮ࢪ
  12. ©Fusic Co., Ltd. 18 ςετίʔυͷੜ੒΋ /review ͯ͠΋ΒͬͨιʔείʔυͰ ҆શੑ୲อ͸গͳ͔Βͣग़དྷͨঢ়ଶʹ ଓ͍ͯͦͷίʔυͷ඼࣭Λ୲อ͢Δҝ /test

    ίϚϯυͰ୯ମςετΛੜ੒ ୯ମςετ͸ؔ਺ʹର࣮ͯ͠ࢪ͢Δ͕ɺ Amazon QଆͰίʔυʹରͯ͠ ςετ͢΂͖ؔ਺ચ͍ग़͠·Ͱ࣮ࢪ
  13. ©Fusic Co., Ltd. 20 Amazon BedrockͰNovaʹ౤͛ͯղܾ ੜ੒ͯ͠΋ΒͬͨίʔυͳͷͰɺ ͢΂ͯ໢ཏ͢Δͷ͸೉͍͠ ͦ͜Ͱࠓճ͸Amazon Bedrockͷ

    Novaʹରͯ͠मਖ਼ґཔΛߦͬͨॴ ςετίʔυΛ៉ྷʹमਖ਼ ਖ਼͍͠ಈ࡞͕कΒΕͨঢ়ଶʹ
  14. ©Fusic Co., Ltd. 21 ࠷ޙʹREADME ࠷ޙʹιʔείʔυͷશମ૾Λ ࠓޙؔΘΔϓϩδΣΫτͷਓʹ޲͚ͯ ੜ੒͢ΔͨΊɺ /docίϚϯυΛ࣮ࢪ ݁Ռͱͯ͠ࠨهͷΑ͏ͳ

    ௕େͳREADMEΛੜ੒ͯ͘͠Εͨ ͜ͷϓϩδΣΫτࣗମ͸ શ͘ൿಗੑ͸ͳ͍ͷͰɺ ҎԼͷϦϙδτϦʹެ։͍ͯ͠·͢ https://github.com/seike460/amazon-q-generate-api
  15. ©Fusic Co., Ltd. 24 ·ͱΊ Amazon Q Developer͸ɺίʔυੜ੒ͱิ׬ɺηΩϡϦςΟεΩϟϯ౳ɺ༷ʑͳޮ཰Խػೳ͕͋Δ Point 01

    AWS Re:Invent 2024ʹ͸ɺΤϯδχΞͱͯ͠ڵຯਂ͍Amazon Qͷ৽ػೳ͕ͨ͘͞Μൃද͕͋ͬͨ Point 02 Amazon Q Developer ProͷػೳΛϑϧʹ࢖͏͜ͱͰɺ΄΅ίʔσΟϯάͳ͠Ͱίʔυੜ੒ Point 03