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
120
緊急地震速報を受信したら配信を制御する仕組みを作ってみた @Media-JAWS x JAWS-UG千葉
shimagaji
1
140
セキュリティ運用エージェントGuardDuty-Operatorを作って社内に配ってみた @ JAWS-UG SRE支部
shimagaji
2
270
祝日にも対応なコスト節約ツールNAT-Schedulerの紹介 @ JAWS-UG 札幌×秋田コラボ
shimagaji
1
170
AgentCore RuntimeのCDKデプロイにdeploy-time-buildを使ってみよう @ JAWS-UG Sapporo
shimagaji
2
170
AWSの2025年最新トレンドをフル活用してフルサーバーレスな司書エージェントを作ってみた @ JAWS-UG Sapporo
shimagaji
3
340
AWS Media Servicesを使ってAmazon IVSとYouTubeへの同時配信を試してみた @ JAWS-UG千葉支部 x Media-JAWS
shimagaji
1
170
AWSアップデートまとめ #しむそく をFun Done Learnで振り返る @ JAWS-UG Tokyo
shimagaji
2
340
Amazon Q DeveloperでMCP Serverを使ってKnowledge Baseを呼び出してみた @ JAWS-UG 彩の国埼玉支部#1
shimagaji
1
550
Featured
See All Featured
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
900
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
The Curse of the Amulet
leimatthew05
2
13k
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
190
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.3k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
67
56k
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
320
Balancing Empowerment & Direction
lara
6
1.2k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.2k
The MySQL Ecosystem @ GitHub 2015
samlambert
251
13k
My Coaching Mixtape
mlcsv
0
170
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ʂ