Share
Embed
Amazon Q Developer Proで効率化するAPI開発入門
JAWS-UG福岡 #19: re:Invent re:Cap!!
https://jawsug-fukuoka.connpass.com/event/341319/
shiro seike PRO
February 08, 2025
Transcript
26 slides
-
©Fusic Co., Ltd. 1 Amazon Q Developer ProͰ ޮԽ͢ΔAPI։ൃೖ 2025.02.08
@seike460 JAWS-UGԬ #19 re:Invent re:Cap!! -
©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 -
©Fusic Co., Ltd. 3 CONTENTS ࣍ 1. Amazon Q Developerͱ
2. Amazon Q Developer ProΛར༻ͨ͠API։ൃ 3. ·ͱΊ -
©Fusic Co., Ltd. 5 Amazon Q Developer Amazon Web Services͕ఏڙ͢ΔੜAIࡌͷߴͳΞγελϯτ
▪ίʔυੜͱิ ɹϦΞϧλΠϜͰͷίʔυఏҊิΛఏڙ͠ɺ։ൃΛ ɹJetBrainsɺIntelliJ IDEAɺVisual StudioɺVS CodeͳͲͰར༻Մೳ ▪ࣗܕΤʔδΣϯτ ɹෳࡶͳλεΫͷࣗಈԽΛࢧԉ͠ɺػೳ࣮ίʔυจॻԽΛαϙʔτ ▪ίʔυม ɹϨΨγʔίʔυͷϞμφΠθʔγϣϯΛਝʹߦ͍ɺ ɹ࠷৽ͷٕज़ελοΫͷҠߦΛ༰қʹ ▪ηΩϡϦςΟεΩϟϯ ɹίʔυͷ੬ऑੑΛݕग़͠ɺमਖ਼ఏҊΛఏڙͯ͠ηΩϡϦςΟΛڧԽ -
©Fusic Co., Ltd. 6 Amazon Q Developer ͷྉۚ ▪ແྉར༻ جຊػೳΛແྉͰར༻ՄೳͰ͕͢ɺߴͳػೳʹ݄ؒར༻੍ݶ༗
▪Amazon Q Developer Pro ֹ݄19 USDͰɺΤϯλʔϓϥΠζΞΫηείϯτϩʔϧΧελϚΠζ ՄೳͳίʔυఏҊͳͲɺΑΓॆ࣮ͨ͠ػೳΛར༻Մೳ ※2025/02/08ݱࡏ -
©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/ -
©Fusic Co., Ltd. 9 ࣮ࢪఔखॱ Ͱ͖ΔݶΓίʔσΟϯάΛͤͣʹҰൠతͳServerless APIΛߏங͢Δ ᶃཁ݅Λ /dev ίϚϯυఏڙ͠ίʔυੜ
ᶄੜίʔυʹରͯ͠ /reviewίϚϯυΛ࣮ߦͯ͠ηΩϡϦςΟνΣοΫ ᶅϨϏϡʔޙͷίʔυʹରͯ͠ /testίϚϯυΛ࣮ߦͯ͠୯ମςετੜ ᶆ࠷ޙʹ /docίϚϯυΛ͍ιʔείʔυશମʹର͢ΔREADMEੜ -
©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ͷαʔόʔϨεΞʔΩςΫνϟ͓ΑͼηΩϡϦςΟͷϕετϓϥΫςΟεʹ४ڌ͍ͯ͠Δ͜ͱΛ֬ೝ͍ͯͩ͘͠͞ɻ -
©Fusic Co., Ltd. 11 ᶃཁ݅Λ /dev ίϚϯυఏڙ͠ίʔυੜ ▪ཁ༁ɿValidationػߏ͕͋ΔCRUDͷAPIΛ ɹ୯ମςετ͕࣮ࢪͰ͖ΔΑ͏ͳܗͰੜͯ͠ AWS
SAMΛͬͯɺҎԼͷཁ݅Λຬͨ͢AWS Lambda + DynamoDB APIΛ࡞͍ͯͩ͘͠͞ɻ API ɹDynamoDBςʔϒϧʹର͢ΔCRUDૢ࡞Λ࣮͍ͯͩ͘͠͞ɻ ɹ֤ૢ࡞ɺͦΕͧΕͷHTTPϝιουʹରԠͨ͠ΤϯυϙΠϯτΛ࣋ͭΑ͏ʹ͍ͯͩ͘͠͞ ɹɹ৽ن࡞: POST ɹɹσʔλऔಘ: GET ɹɹߋ৽: PUT ɹɹআ: DELETE ɹAPIϦΫΤετΛॲཧ͢ΔલʹɺೖྗσʔλͷݕূΛߦ͏ඞཁ͕͋Γ·͢ɻ ɹ୯ମςετΛ؆୯ʹ࣮ࢪͰ͖ΔΑ͏ʹɺϋϯυϥʔΛϞδϡʔϧԽ͠ɺ ɹςετ͍ؔ͢͠ͱͯ͠ઃܭ͍ͯͩ͘͠͞ɻ -
©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ͷαʔόʔϨεΞʔΩςΫνϟ͓Αͼ ɹηΩϡϦςΟͷϕετϓϥΫςΟεʹ४ڌ͍ͯ͠Δ͜ͱΛ֬ೝ͍ͯͩ͘͠͞ɻ -
©Fusic Co., Ltd. 13 ӳ༁ͯ͠IDE(VSCode)ͷAmazon Q ʹ /devʹ͢ VSCodeͷAmazon Q
ϓϥάΠϯར༻ ຊޠݱࡏରԠ͍ͯ͠ͳ͍ͷͰ ӳ༁ΛߦͬͯઌఔͷจষΛ /dev ίϚϯυʹ͢ ex: /dev Please create AWS Lambda ͠Β͘͢Δͱద༻͢Δ͔ฉ͔ΕΔ Apply͢Δͱ࣮ࡍʹϑΝΠϧ͕࡞ -
©Fusic Co., Ltd. 15 ಈ࡞ͳ͍ͷͰଓ͍ͯ /reviewίϚϯυ ͋͘·ͰੜAI͕࡞ͨ͠ͷͳͷͰ ՌʹࣗͨͪͰ Λ࣋ͨͳ͍ͱ͍͚ͳ͍ ->
ϨϏϡʔඞਢ ͦ͜ͰAmazon Q Developer Proͷ /reviewίϚϯυΛ࣮ࢪͤ͞ɺ ੜͨ͠ίʔυͷϨϏϡʔΛ࣮ࢪ -
©Fusic Co., Ltd. 18 ςετίʔυͷੜ /review ͯ͠ΒͬͨιʔείʔυͰ ҆શੑ୲อগͳ͔Βͣग़དྷͨঢ়ଶʹ ଓ͍ͯͦͷίʔυͷ࣭Λ୲อ͢Δҝ /test
ίϚϯυͰ୯ମςετΛੜ ୯ମςετؔʹର࣮ͯ͠ࢪ͢Δ͕ɺ Amazon QଆͰίʔυʹରͯ͠ ςετ͖ؔ͢ચ͍ग़͠·Ͱ࣮ࢪ -
©Fusic Co., Ltd. 20 Amazon BedrockͰNovaʹ͛ͯղܾ ੜͯ͠ΒͬͨίʔυͳͷͰɺ ͯ͢ཏ͢Δͷ͍͠ ͦ͜ͰࠓճAmazon Bedrockͷ
Novaʹରͯ͠मਖ਼ґཔΛߦͬͨॴ ςετίʔυΛ៉ྷʹमਖ਼ ਖ਼͍͠ಈ࡞͕कΒΕͨঢ়ଶʹ -
©Fusic Co., Ltd. 21 ࠷ޙʹREADME ࠷ޙʹιʔείʔυͷશମ૾Λ ࠓޙؔΘΔϓϩδΣΫτͷਓʹ͚ͯ ੜ͢ΔͨΊɺ /docίϚϯυΛ࣮ࢪ ݁Ռͱͯ͠ࠨهͷΑ͏ͳ
େͳREADMEΛੜͯ͘͠Εͨ ͜ͷϓϩδΣΫτࣗମ શ͘ൿಗੑͳ͍ͷͰɺ ҎԼͷϦϙδτϦʹެ։͍ͯ͠·͢ https://github.com/seike460/amazon-q-generate-api -
©Fusic Co., Ltd. 24 ·ͱΊ Amazon Q DeveloperɺίʔυੜͱิɺηΩϡϦςΟεΩϟϯɺ༷ʑͳޮԽػೳ͕͋Δ Point 01
AWS Re:Invent 2024ʹɺΤϯδχΞͱͯ͠ڵຯਂ͍Amazon Qͷ৽ػೳ͕ͨ͘͞Μൃද͕͋ͬͨ Point 02 Amazon Q Developer ProͷػೳΛϑϧʹ͏͜ͱͰɺ΄΅ίʔσΟϯάͳ͠Ͱίʔυੜ Point 03 -
©Fusic Co., Ltd. 26 Thank You We are Hiring! https://recruit.fusic.co.jp/
͝ਗ਼ௌ͍͖ͨͩ͋Γ͕ͱ͏͍͟͝·ͨ͠