Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Serverless re:Capしながら LINE Chatbotをほぼノーコードで作る @...
Search
SimSta
January 13, 2024
260
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Serverless re:Capしながら LINE Chatbotをほぼノーコードで作る @ JAWS-UG Yokohama
SimSta
January 13, 2024
More Decks by SimSta
See All by SimSta
KAGにおけるClaude Enterpriseの社内導入プロセスを振り返る @ KAG AI Week Summer
shimagaji
1
230
緊急地震速報を受信したら配信を制御する仕組みを作ってみた @Media-JAWS x JAWS-UG千葉
shimagaji
1
170
セキュリティ運用エージェントGuardDuty-Operatorを作って社内に配ってみた @ JAWS-UG SRE支部
shimagaji
2
300
祝日にも対応なコスト節約ツールNAT-Schedulerの紹介 @ JAWS-UG 札幌×秋田コラボ
shimagaji
1
190
AgentCore RuntimeのCDKデプロイにdeploy-time-buildを使ってみよう @ JAWS-UG Sapporo
shimagaji
2
200
AWSの2025年最新トレンドをフル活用してフルサーバーレスな司書エージェントを作ってみた @ JAWS-UG Sapporo
shimagaji
3
340
AWS Media Servicesを使ってAmazon IVSとYouTubeへの同時配信を試してみた @ JAWS-UG千葉支部 x Media-JAWS
shimagaji
1
180
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
340
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
560
Featured
See All Featured
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
220
Building an army of robots
kneath
306
46k
Learning to Love Humans: Emotional Interface Design
aarron
275
41k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
56
3.4k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
630
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
Prompt Engineering for Job Search
mfonobong
0
430
How to Talk to Developers About Accessibility
jct
2
530
Agile that works and the tools we love
rasmusluckow
331
22k
Navigating Team Friction
lara
192
16k
Six Lessons from altMBA
skipperchong
29
4.5k
Transcript
4FSWFSMFTTSF$BQ͠ͳ͕Β -*/&$IBUCPUΛ΄΅ϊʔίʔυͰ࡞Δ 4JN4UB !TIJNBHBKJ +"846(:PLPIBNB ˡϗϫΠτγϚϦεͷΞϧλ
ࣗݾհ ΈࠐΈ։ൃӉػ੍ޚܥઃܭௐୡʢʣ ʙࡳຈʹҠॅʙ ੑೳࢼݧ($ΦϯϓϨ"84ʢʣ Ϋϥυߏஙӡ༻"84(PPHMF"1/.41ʢͱϲ݄ʣ Ϋϥυߏஙӡ༻Ҡߦ"84٬ઌৗறʢΠϚίίɺͱϲ݄ʣ BOENPSFʜʜʁ 4JN4UBʢΦϯϥΠϯͷ͕ͨ͢ʣ !TIJNBHBKJ 5XJUUFS
"84ೝఆˠ ͖ͳ"84αʔϏεɿ4UFQ'VODUJPOT ಘҙʹͳΓ͍ͨ"84αʔϏεɿ4BHF.BLFS #FESPDL "QQ3VOOFS $%, "NQMJGZ
ϗϫΠτγϚϦεͱ Β͍ͯ͠·͢🐿 ˢେνϧλϦε 5XJUUFSΞΧϯτ͋ΔΑ !BMUB@XIJUFDIJQ
աڈͷొஃࢿྉΞοϓͯ͠·͢ʢࠓͷࢿྉʂʣ IUUQTTQFBLFSEFDLDPNTIJNBHBKJ
ݸਓϒϩάΛӡ༻͍ͯ͠·͢ SF*OWFOUظؒΛؚΉ "84ΞοϓσʔτΛ ຖिߋ৽ʂ ʙ ͦͷଞ ΨδΣοτ γϚϦεͷͳͲ
"HFOEB • ͡Ίʹɿ4FSWFSMFTTϛχSF$BQબ • -*/&$IBUCPUΛ࡞ͯ͠Έͨ • "QQMJDBUJPO$PNQPTFSJO74$PEF • $MPVE'PSNBUJPOͷ(JUಉظ •
-*/&ͱ"84ؒͷଓ • 4UFQ'VODUJPOTͷઃఆ • ࣮͢Δ্Ͱͷҙ • ·ͱΊ
4FSWFSMFTTϛχSF$BQબ
ϛχSF$BQᶃ -BNCEBͳ͠Ͱ ֎෦4BB4Λ ୟ͚Δʂ ςετ͕ ָʹͳΔʂ
ϛχSF$BQᶄ -BNCEBͳ͠Ͱ #FESPDLΛ ݺΔʂ "HFOU Αݺͼ͍ͨ
ϛχSF$BQᶅ $PNQPTFSͷ ("͔࣌Β ͬͯͨػೳʂ
ϛχSF$BQᶆ ϩʔΧϧͰ ͑Δͷ ΊͬͪΌ͍͍
4UFQ'VODUJPOT8PSLGMPX4UVEJP74$PEFͰ͑·͢ʂ #FESPDLΞΫγϣϯͱ)5514ΤϯυϙΠϯτݺͼग़͠ʢޙͷΞϓσͰʣ͑ΔΑ͏ʹͳͬͨ
ϛχSF$BQᶇ 1VTI͚ͩͰ Ϧιʔε͕ ߋ৽Ͱ͖Δʂ $*$%͕ ΊͬͪΌ؆୯ʹ ͳΜͱ4". ͍͚·͢
ϛχSF$BQᶈ ("ޙʹ 4VNNJUͰ ཁग़ͨͭ͠
ϛχSF$BQᶉ $-*͕ ΊͬͪΌָʹ γΣϧ ࡞ͬͯ͘ΕΔ
-*/&$IBUCPUΛ࡞ͯ͠Έͨ
ࢀߟʹ͍ͤͯͨ͞هࣄ ͋Γ͕ͱ͏͍͟͝·͢ ͋Γ͕ͱ͏͍͟͝·͢ IUUQTRJJUBDPN5PEBUFJUFNTCDGCGBDDC IUUQTRJJUBDPNIPPQKQUJUFNTBCDBGC هࣄΑΓൈਮ
-*/&$IBUCPUͷߏXSF$BQ ϛχSF$BQͰհͨ͠ཁૉ͕ʢ΄΅ʣશ෦ΘΕ͍ͯ·͢ Push AWS Cloud Developer Pull API Gateway Step
Functions Bedrock EventBridge API Destination LINE GitHub Webhook CloudFormation Invoke Execute Call HTTPS Endpoint Secrets Manager API Key Application Composer User
-*/&$IBUCPUͷߏXSF$BQ Push AWS Cloud Developer Pull API Gateway Step Functions
Bedrock EventBridge API Destination LINE GitHub Webhook CloudFormation Invoke Execute Secrets Manager API Key Application Composer User ᶄ4'OͰ#FESPDLΛݺͿ ᶃ4'OͰ)5514ΤϯυϙΠϯτΛݺͿ ᶇ$'Oͱ(JUΛಉظ ᶅ"QQMJDBUJPO$PNQPTFSͰ4'Oߏங ᶆ74$PEFͰ"QQMJDBUJPO$PNQPTFS Call HTTPS Endpoint
࡞ͷϙΠϯτൈਮ
࡞ͷϙΠϯτ Push AWS Cloud Developer Pull API Gateway Step Functions
Bedrock EventBridge API Destination LINE GitHub Webhook CloudFormation Invoke Execute Secrets Manager API Key Application Composer User 4'OͷϫʔΫϑϩʔΛ 74$PEFͰߏங -*/&ͱ"84Λ࿈ܞ͢ΔͨΊͷઃఆ $'Oͱ(JUΛ $PEF4UBSଓͰಉظ 74$PEFͷ"QQMJDBUJPO$PNQPTFSͰ "84ϦιʔεΛߏங Call HTTPS Endpoint
"QQMJDBUJPO$PNQPTFSJO74$PEF
"845PPMLJUΛೖΕͯ UFNQMBUFZBNMΛ࡞ͬͯ ʢ্ͷZBNMޙͰʣ "QQMJDBUJPO$PNQPTFSͰ։͚ͩ͘ʂ 74$PEFͰ"QQMJDBUJPO$PNQPTFSΛ։͘ ʢᶉ$PEF8IJTQFSFS$-*ศརʣ
ͱΓ͋͑ͣͭͷϦιʔεΛஔ͘ 4UFQ'VODUJPOTదʹ1BTT͚ͩͰҰ୴࡞ ϦιʔεؒͷϩʔϧϩάτϨʔεউखʹZBNMʹهड़ͯ͘͠ΕΔ ͋Δఔϥοϐϯάͯ͘͠ΕΔͱ͍͏Ͱ$%,5FSSBGPSNͷΑ͏ͳײ֮
͍͢͝ʂԿίʔυॻ͍ͯͳ͍ͷʹZBNM͕Ͱ͖ͯΔʂ
$MPVE'PSNBUJPOͷ(JUಉظ
(JU)VCʹϦϙδτϦΛ༻ҙ ͖ͬ͞࡞ͬͨZBNMΛDPNNJU͠ɺQVTI͓ͯ͘͠
"84ͱ(JU)VCͱͷ$PEF4UBSଓΛ࡞ $PEFγϦʔζͷίϯιʔϧ͔Β࡞Ͱ͖·͢
ʮ(JU͔ΒಉظʯͰ$MPVE'PSNBUJPOελοΫΛ࡞
ςϯϓϨʔτϑΝΠϧʢࠓճUFNQMBUFZBNMʣͷଞʹ ύϥϝʔλΛهड़͢ΔσϓϩΠϑΝΠϧͷ໊લʢࠓճEFQMPZNFOUGJMFZBNMʣΛೖྗ
$MPVE'PSNBUJPO͕ࣗಈͰσϓϩΠ͢ΔͨΊͷ*".ϩʔϧ͕ผ్ඞཁ
ελοΫΛ࡞͢ΔͱϓϧϦΫ͕དྷΔ ঝೝ͢ΕσϓϩΠϑΝΠϧΛউखʹ࡞ͬͯ͘ΕΔͷͰઌʹࣗͰ࡞Βͳͯ͘0, ύϥϝʔλΛࢦఆ͍ͨ͠߹͜͜ʹهड़͢Δ
͋ͱϒϥϯν͕ߋ৽͞ΕΔͨͼʹࣗಈͰมߋηοτ࡞ˠσϓϩΠΛͬͯ͘ΕΔʂ
-*/&ͱ"84ؒͷଓ
-*/&ެࣜΞΧϯτΛ࡞
.FTTBHJOH"1*Λઃఆ 8FCIPPL63-ʹ"1*(BUFXBZͷ63-Λೖྗ -*/&ˠ"1*(BUFXBZͷ࿈ܞ͕Ͱ͖Δ
νϟωϧΞΫηετʔΫϯΛ"1*Ωʔͱͯ͠4FDSFUT.BOBHFSʹอ &WFOU#SJEHF"1*EFTUJOBUJPOΛઃఆ
4UFQ'VODUJPOTͷઃఆ
4UFQ'VODUJPOTͷϫʔΫϑϩʔΛߏஙJO74$PEF #FESPDLʹ͛Δલʹ ૹ৴ݩͷ؆қνΣοΫͱ ϝοηʔδͷଘࡏνΣοΫΛ௨͢ ʢຊ൪༻్ͷ߹ͬͱ͔ͬ͠Γ࡞Δʣ 2JJUBهࣄΛࢀߟʹ+40/Ͱ ύϥϝʔλΛఆٛͨ͠Ҏ֎ ϊʔίʔυͰ࡞ΕͪΌ͍·ͨ͠
4UFQ'VODUJPOTͷ࣮ߦϩʔϧ উखʹݖݶՃͯ͘͠Εͳ͍ͷͰ ZBNMʹॻ͖͢ඞཁ͋Γ ˡ͋·Γྑ͘ͳ͍ྫͰ͢🙅 3FTPVSDFՄೳͳݶΓߜΖ͏ʂ
͋ͱQVTIͨ͠Βʂ
ϓϩϯϓτͱτʔΫը໘ γϚϦεαϧͷؒ͡Όͳ͍Ͱ͢ ᄡೕྨ·ͰḪΕ͔͚ؒͩͲʜ
Ԡ࣌ؒʢ93BZτϨʔεʣ Ԡ·Ͱ͓Αͦඵɺ͏ͪඵ͕#FESPDLʹΑΔੜ ౦ژϦʔδϣϯͷ$MBVEFΛ༻
࣮͢Δ্Ͱͷҙ • ຊ൪༻్Ͱ"1*(BUFXBZʹηΩϡϦςΟڧԽ͕ඞਢ • -BNCEB"VUIPSJ[FSʹΑΔॺ໊ݕূ • "848"'ʹΑΔ߈ܸ͔Βͷอޢ • ࠓճZBNMݸͰ4".ςϯϓϨʔτΛσϓϩΠͰ͖͕ͨ
-BNCEBΛ͢ͳͲ͢Δ߹4".$-*ͰTBNJOJU͢Δ QVTI͢ΔલʹϩʔΧϧςετΛͰ͖ΔΑ͏ʹ͍ͨ͠ • &WFOU#SJEHFͱ4FDSFUT.BOBHFSςϯϓϨʔτʹೖΕΒΕΔ͕ "1*Ωʔͷѻ͍͕໘ͩͬͨͷͰࠓճলུ • ձཤྺΛ౿·͑ͨνϟοτ !IPPQKQO͞Μ͕ࢼͯ͠ΔͬΆ͍Ͱ͢
·ͱΊ • SF*OWFOUͷΞοϓσʔτΛϑϧ׆༻ͯ͠΄΅ϊʔίʔυͰ ੜܥ"*Λͬͨ-*/&$IBUCPUΛ࡞ • ZBNMϑΝΠϧݸ͔Β74$PEFΛͬͯ(6*Ͱߏங͠ɺ Ͱ͖ͨͷΛQVTI͢Δ͚ͩͰ"84ʹϦιʔε͕Ͱ͖Δ •
ηΩϡϦςΟΛߟྀ͢ΔͳΒ-BNCEBʢͱ4".$-*ʣ͕ඞཁ ϓϩμΫγϣϯ༻్ͳΒ͏গ͠࡞Γࠐ͏ • "HFOU,OPXMFEHF#BTF4UFQ'VODUJPOT͚ͩͰݺͼ͍ͨ
ͪΐͬͱ͚ͩએ
"84ೝఆશףʹؔ͢Δʢ෩ͨΓ͕ڧͦ͏ͳʣͰ-5͠·͢
"*ฤ-5͠·͢ʂʢωλߟ͑தʣ
5IBOLZPVʂ