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
サーバーレス開発の勘所
Search
sinofseven
October 26, 2019
Technology
0
1.4k
サーバーレス開発の勘所
Developers.IO 2019 Fukuoka
2019/10/26
sinofseven
October 26, 2019
Tweet
Share
More Decks by sinofseven
See All by sinofseven
コンピュートリソースと トリガーから考える サーバーレスアーキテクチャ in DevelopersIO 2023 福岡
sinofseven_
0
760
CircleCI_のJobを_並列で実行してみる
sinofseven_
1
1.3k
サーバーレスの概要と応用 - プログラミング生放送勉強会 第55回@福岡
sinofseven_
0
1.4k
Other Decks in Technology
See All in Technology
EventHub Startup CTO of the year 2024 ピッチ資料
eventhub
0
120
DynamoDB でスロットリングが発生したとき_大盛りver/when_throttling_occurs_in_dynamodb_long
emiki
1
410
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
Platform Engineering for Software Developers and Architects
syntasso
1
520
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
610
これまでの計測・開発・デプロイ方法全部見せます! / Findy ISUCON 2024-11-14
tohutohu
3
370
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
初心者向けAWS Securityの勉強会mini Security-JAWSを9ヶ月ぐらい実施してきての近況
cmusudakeisuke
0
130
オープンソースAIとは何か? --「オープンソースAIの定義 v1.0」詳細解説
shujisado
9
1k
リンクアンドモチベーション ソフトウェアエンジニア向け紹介資料 / Introduction to Link and Motivation for Software Engineers
lmi
4
300k
100 名超が参加した日経グループ横断の競技型 AWS 学習イベント「Nikkei Group AWS GameDay」の紹介/mediajaws202411
nikkei_engineer_recruiting
1
170
RubyのWebアプリケーションを50倍速くする方法 / How to Make a Ruby Web Application 50 Times Faster
hogelog
3
940
Featured
See All Featured
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
Faster Mobile Websites
deanohume
305
30k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
44
2.2k
Building Applications with DynamoDB
mza
90
6.1k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
42
9.2k
Optimizing for Happiness
mojombo
376
70k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
BBQ
matthewcrist
85
9.3k
GraphQLとの向き合い方2022年版
quramy
43
13k
Reflections from 52 weeks, 52 projects
jeffersonlam
346
20k
Adopting Sorbet at Scale
ufuk
73
9.1k
Thoughts on Productivity
jonyablonski
67
4.3k
Transcript
αʔόʔϨε։ൃͷצॴ $9ࣄۀຊ෦ Ն༞थ
εϥΠυޙͰೖख͢Δ͜ͱ͕ग़དྷ·͢ͷͰ ൃදதͷ༰ΛϝϞ͢Δඞཁ͋Γ·ͤΜɻ ࣸਅࡱӨΛ͢Δ߹ ϑϥογϡɾγϟολʔԻ͕ग़ͳ͍Α͏ʹྀ͍ͩ͘͝͞ Attention
ࣗݾհ Ն༞थ φπϝϢλ w $9ࣄۀຊ෦ w ݩαʔόʔϨε։ൃ෦ w
ԬΦϑΟε w ͖ͳαʔϏε-BNCEB 4
͢͜ͱ͞ͳ͍͜ͱ w ͢͜ͱ w αʔόʔϨεΞϓϦέʔγϣϯͷ։ൃӡ༻Λ ࣮ͬͯࡍʹಘΒΕͨݟ w "84ͷαʔϏεΛ͏։ൃͷݟ w
͞ͳ͍͜ͱ w αʔόʔϨεΞϓϦέʔγϣϯͱԿͧ
։ൃڥ
։ൃڥ 1. GitHubͱCircleCI
(JU)VCͱ$JSDMF$* w (JU)VC w ։ൃͰσϑΝΫτʹ͍ۙ w ͍͍͢ݟଟ͍ w 1VMM3FRVFTU
w (JUͷجૅࣝ͑͋͞Ε͑Δ
(JU)VCͱ$JSDMF$* w $JSDMF$* w (JU)VCΞΧϯτ͕͋Ε͑Δ w +PCͷϫʔΫϑϩʔΛΈ͍͢ w ฒྻ࣮ߦͰ͖Δ
։ൃڥ 2. ҰͭͷAWSΞΧϯτʹ ෳͷڥΛԡ͠ࠐ·ͳ͍
Ұͭͷ"84ΞΧϯτʹෳͷڥΛԡ͠ࠐ·ͳ͍ w Ұͭͷ"84ΞΧϯτʹ։ൃຊ൪ͳͲ ෳͷڥ͕͋Δͱେม w -BNCEB໊ؔͱ͔3FHJPOͰҰҙʹ͠ͳ͍ͱ͍͚ͳ͍ w ։ൃڥ৮ͬͯΔͭΓͰɺຊ൪ڥ৮ͬͪΌ͏
։ൃڥ 3. CI/CDͰ༻͢Δ ϞδϡʔϧΩϟογϡͤ͞Δ
$*$%Ͱ༻͢ΔϞδϡʔϧΩϟογϡͤ͞Δ w "84$-*ͱ͔QZUFTUͱ͔$*$%Ͱ༻͢Δ Ϟδϡʔϧ͍ͬͺ͍͋Δ w $JSDMF$*ͷΩϟογϡػೳΛ༻ͯ͠ ͍·Θ͠Ͱ͖ΔΑ͏ʹͨ͠ํ͕͍͍ w IUUQTDJSDMFDJDPNEPDTKBDPOpHVSBUJPO
SFGFSFODFTBWF@DBDIF w IUUQTDJSDMFDJDPNEPDTKBDPOpHVSBUJPO SFGFSFODFSFTUPSF@DBDIF
$*$%Ͱ༻͢ΔϞδϡʔϧΩϟογϡͤ͞Δ w ΩϟογϡΛ༻͢Δࡍͷҙ w Ωϟογϡ࠷େอଘ͞Ε·͢ w ࠷େͳͷͰͦΕΑΓૣ͘ͳ͘ͳΔ͜ͱ͋Γ·͢ w ΩϟογϡͷSFTUPSFʹࣦഊͯ͠+PCଓߦ͢Δ
w SFTUPSFͨ͠ΒͪΌΜͱޭ͔ͨ֬͠ೝͯ͠ɺ ࣦഊͯͨ͠Β࠶Πϯετʔϧ͢Δखॱ͕ඞཁʹͳΓ·͢
։ൃڥ 4. Jobͷ࣮ߦ࣌ʹ ෳͷίϯςφΛ༻͢Δ
+PCͷ࣮ߦ࣌ʹෳͷίϯςφΛ༻͢Δ w $JSDMF$*+PCͷ࣮ߦ࣌ʹ ෳͷ%PDLFSίϯςφΛ༻͢Δ͜ͱ͕Ͱ͖Δ w +PCΛ࣮ߦ͢Δίϯςφͱ -PDBM4UBDLΛ࣮ߦ͢Δίϯςφͷ̎ͭΛ༻ͯ͠ ୯ମςετͨ͠ΓͰ͖Δ
։ൃڥ 5. JobΛฒྻͰ࣮ߦ͢Δ
+PCΛฒྻͰ࣮ߦ͢Δ w $JSDMF$*Ͱ+PCఆٛͰࢦఆ͢Ε ͦͷ+PCΛฒྻ࣮ߦͰ͖Δ w 1VCMJDϦϙδτϦͰ͋Εແ՝ۚͰ࠷େฒྻ w 1SJWBUFϦϙδτϦ՝ۚ͢ΕͰ͖ΔΑ͏ʹͳΔ w
IUUQTDJSDMFDJDPNEPDTKBQBSBMMFMJTNGBTUFSKPCT
+PCΛฒྻͰ࣮ߦ͢Δ w ͨͩ͠ɺԿ͠ͳ͚Εಉ͡ॲཧΛ ฒྻͰ͍ͬͯΔ͚ͩ w ॲཧΛ͚ΔΑ͏ʹॻ͘ඞཁ͕͋Δ w ڥมl$*3$-&@/0%&@*/%&9zͰॲཧΛΘ͚Δ w
$JSDMF$*ͷ$-*ίϚϯυͰॲཧରͷϑΝΠϧͳͲΛΘ͚Δ
+PCΛฒྻͰ࣮ߦ͢Δ
+PCΛฒྻͰ࣮ߦ͢Δ w ςετͰฒྻԽͨ͘͠ͳΔ w ୯ମςετฒྻԽ҆৺ͯ͠Ͱ͖Δ w ෳίϯςφͬͯͯͦΕ͝ͱฒྻԽͯ͘͠ΕΔ͔Β ׯব͢Δ͜ͱͳ͘ฒྻ࣮ߦͰ͖Δ w
&&ςετΑ͘ߟ͑ͯฒྻԽ͠ͳ͍ͱ͍͚ͳ͍ w ฒྻԽͯ͠όοΫΤϯυͯ͢ಉ͡ͱ͜Ζ͔ͩΒ ͱ͖Ͳ͖ׯবͨ͠Γ͢Δ
Lambdaͷ։ൃ/ӡ༻
-BNCEBͷ։ൃӡ༻ 6. τϦΨʔछผʹؾΛ͚ͭΔ
τϦΨʔछผʹؾΛ͚ͭΔ w τϦΨʔͷछผͬ͘͟Γ͚Δͱͭ w ಉظ࣮ߦ w "1*(BUFXBZ $PHOJUP6TFS1PPMT w
ඇಉظ࣮ߦ w 4 4/4 $MPVE8BUDI&WFOU "84*P5 w ΠϕϯτιʔεϚοϐϯά ετϦʔϜ w %ZOBNP%#4USFBN ,JOFTJT%BUB4USFBN 424
τϦΨʔछผʹؾΛ͚ͭΔ w τϦΨʔͷछผʹΑͬͯϦτϥΠͷಈ࡞͕มΘΔ w ಉظ࣮ߦ w ϦτϥΠ͠ͳ͍ w ඇಉظ࣮ߦ
w ࠷େճϦτϥΠ w ΠϕϯτιʔεϚοϐϯά ετϦʔϜ w ετϦʔϜͷ*UFN͕ظݶΕʹͳΔ·ͰԿ࣮ߦ w Ωϡʔॲཧʹޭ͠ͳ͍ͱɺ*UFNΩϡʔʹΔ w ׂͱॏཁͳͷͰɺυΩϡϝϯτΛ֬ೝ͍ͯͩ͘͠͞ w IUUQTEPDTBXTBNB[PODPNKB@KQMBNCEBMBUFTUEHMBNCEBNPOJUPSJOHIUNM
-BNCEBͷ։ൃӡ༻ 7. LogGroupʹ FilterΛઃఆͯ͠ศརʹ͏
-PH(SPVQʹ'JMUFSΛઃఆͯ͠ศརʹ͏ w -BNCEBͷ࣮ߦϩά $MPVE8BUDI-PHTͷ-PH(SPVQʹు͔ΕΔ w -PH(SPVQʹ'JMUFSΛઃఆ͢Δͱศརʹ͑Δ w ݅Λຬͨ͢ϩά͕ు͔ΕΔͱԿ͔ͯ͘͠ΕΔ w
छྨ͋Δ w .FUSJDT'JMUFSΧελϜϝτϦΫεʹΛ͛Δ w 4VCTDSJQUJPO'JMUFS w -BNCEB ,JOFTJT%BUB4USFBN'JSFIPTFʹϩάΛ͛Δ
-BNCEBͷ։ൃӡ༻ 8. LambdaͱҰॹʹ LogGroup࡞͢Δ
-BNCEBͱҰॹʹ-PH(SPVQ࡞͢Δ w -BNCEB-PH(SPVQ͕ͳ͚Εɺ ࣮ߦ࣌ʹࣗಈతʹ࡞͢Δ w ໌ࣔతʹ࡞͠ͳ͍ͱɺ-BNCEB͕࣮ߦ͞ΕΔ·Ͱ -PH(SPVQ࡞͞Εͳ͍ͷͰ'JMUFSΛઃఆͰ͖ͳ͍ w -BNCEBͷࢹʹ͔ܽͤͳ͍ͷͰ
-PH(SPVQҰॹʹ࡞͢Δ
-BNCEBͷ։ൃӡ༻ 9. ඇಉظ࣮ߦͷLambdaͷ Τϥʔ௨DLQΛ༻͢Δ
ඇಉظ࣮ߦͷ-BNCEBͷΤϥʔ௨%-2Λ༻͢Δ w ඇಉظ࣮ߦͷ-BNCEBࣦഊ͢Δͱ ϦτϥΠΛؚΊͯճ࣮ߦ͞ΕΔ w ࠷ॳࣦഊ͚ͨ͠ͲɺϦτϥΠͰޭ͢Δ w Α͋͘Δ w
ΤϥʔϩάͰ௨͢ΔͱແବʹΤϥʔ͕དྷΔ
ඇಉظ࣮ߦͷ-BNCEBͷΤϥʔ௨%-2Λ༻͢Δ w %-2 %FBE-FUUFS2VFVF Λ༻ͯ͠ ϦτϥΠؚΊࣦͯഊͨ͠ͱ͖ͷΈ௨͢Δ w ඇಉظ࣮ߦͷ-BNCEB͕ճࣦഊ͢Δͱ %-2ʹσʔλ͕͛ΒΕΔ
w %-24/4ͱ424ͷͲͪΒ͔ΛઃఆͰ͖Δ
ඇಉظ࣮ߦͷ-BNCEBͷΤϥʔ௨%-2Λ༻͢Δ w %-2ʹ͛ΒΕΔσʔλʹɺ Ͳͷ-BNCEB͕͔͛ͨΛࣝผ͢Δใͳ͍ w ΤϥʔϝοηʔδϦΫΤετ*%͋Δ w Ͳͷ-BNCEB͔Λࣝผ͢Δใ͚ͩͳ͍ w
-BNCEB͝ͱʹ4/45PQJDΛ࡞͠ɺ Ͳͷ4/45PQJD͔Β͛ΒΕ͔ͨͰ۠ผ͍ͯ͠Δ
-BNCEBͷ։ൃӡ༻ 10. LambdaͷࣦഊΤϥʔ͚ͩ͡Όͳ͍
-BNCEBͷࣦഊΤϥʔ͚ͩ͡Όͳ͍ w ΤϥʔҎ֎Ͱ-BNCEBࣦഊ͢Δ w λΠϜΞτ w ྃ͢Δ·Ͱʹϓϩηε͕མͪΔ w ϝϞϦաͱ͔
w -PH(SPVQʹు͔ΕΔ͔Β௨Ͱ͖Δ w λΠϜΞτ w 5;CDGEBEFECBECD5BTLUJNFEPVUBGUFSTFDPOET w ϓϩηεམͪ w 3FRVFTU*ECCGDBFCEE1SPDFTTFYJUFECFGPSFDPNQMFUJOHSFRVFTU
-BNCEBͷ։ൃӡ༻ 11. ݶք·Ͱ୯ମςετΛߦ͏
ݶք·Ͱ୯ମςετΛߦ͏ w ୯ମςετ͕͍͠ "84Λ৮ΔςετՄೳͳݶΓΔ w -PDBM4UBDL w "84ͷϦιʔεΛϩʔΧϧͰΤϛϡϨʔτ͢ΔϞοΫ w
%PDLFS্Ͱಈ͘ͷͰɺͲͷݴޠͰςετʹ͑Δ w TQVMFDNPUP w 1ZUIPO༻ͷ؆୯ʹ͑ΔNPDL
ݶք·Ͱ୯ମςετΛߦ͏ IUUQTTQFBLFSEFDLDPNNBSDZUFSVJTFSWFSMFTTBSDIJUFDUJOHBOEOPTRMEBUBNPEFMJOHGPSTVDDFTTGVMNJDSPTFSWJDFT TMJEF
-BNCEBͷ։ൃӡ༻ 12. ڥมΛ͏
ڥมΛ͏ w -BNCEB࡞࣌ʹڥมΛఆٛͰ͖Δ w ,.4Λ༻ͯ͠҉߸ԽͰ͖Δ w ༻͢Δ%ZOBNP%#5BCMFͷ໊લͱ͔ɺ "84Ϧιʔεͷ*%ͱ͔Λ͢ͱศར w
ࣗಈੜ͞ΕΔ*%ͳͲɺ 4".ςϯϓϨʔτͰڥมʹͯ͠Β͏Α͏ʹ͢Δ
AWS Systems Manager Parameter Store (SSM Parameter)
"844ZTUFNT.BOBHFS1BSBNFUFS4UPSF 13. API KeyͳͲΛ҉߸Խͯ͠อଘ͢Δ
"1*,FZͳͲΛ҉߸Խͯ͠อଘ͢Δ w 44.1BSBNFUFSͰΛ,.4Ͱ҉߸Խͯ͠ อଘ͢Δ4FDVSF4USJOHͱ͍͏5ZQF͕͋Δ w Λऔಘ͢Δͱ͖ʹ෮߸Խͯ͠औಘ͢Δ͜ͱ Ͱ͖ΔͨΊɺ؆୯ʹ͏͜ͱ͕Ͱ͖Δ w ,.4Λ-BNCEBͷதͰ͏͜ͱͰ͖Δ͚Ͳɺ
CZUFTʹͨ͠Γͱ͔৭ʑखॱΛ౿Ήඞཁ͕͋Δ
CloudFormation
$MPVE'PSNBUJPO 14. Ϧιʔεߋ৽ͷڍಈʹҙ͠Α͏
Ϧιʔεߋ৽ͷڍಈʹҙ͠Α͏ w Ұ$'OͰσϓϩΠ͞ΕͨϦιʔεͷ ߋ৽࣌ͷڍಈʹ͍͔ͭ͘छྨ͕͋Δ w தஅΛΘͳ͍ߋ৽ w Ϧιʔεͷ༻Λଓ͚ͨ··ߋ৽Ͱ͖Δ w
Ұ࣌తͳதஅΛ͏ߋ৽ w ߋ৽࣌ʹҰ࣌తʹϦιʔεࢭ·ͬͯ͠·͏ w ஔ w ߋ৽͢ΔͱશͳผϦιʔεʹͳͬͯ͠·͏ w தʹσʔλ͕͋ͬͨͱͯͯ͢͠ফ͑Δ
$MPVE'PSNBUJPO 15. Ϧιʔεͷ্ݶʹؾΛ͚ͭΔ
Ϧιʔεͷ্ݶʹؾΛ͚ͭΔ w ͭͷελοΫͰ࡞Ͱ͖ΔϦιʔεݸ·Ͱ w 4".ΛͬͯͨΓ͢Δͱ উखʹ࡞͞ΕΔϦιʔε͕ଟ͍ͷͰҙ͕ඞཁ w ରࡦ w
ҰͭͷελοΫͰଟ͘ͷϦιʔεΛ࡞Βͳ͍Α͏ʹ͢Δ w Ұ෦Ϧιʔε/FTUFE4UBDLΛͬͯཧ͢ΔΑ͏ʹ͢Δ
$MPVE'PSNBUJPO 16. Λͨ͢ΊͷػߏΛ͍͜ͳ͢
Λͨ͢ΊͷػߏΛ͍͜ͳ͢ w ελοΫʹରͯ͠ ֎͔ΒΛͨ͢Ίͷػߏ͕͍͔ͭ͋͘Δ w 1BSBNFUFSTηΫγϣϯ w ΫϩεελοΫࢀর *NQPSU&YQPSU
w %ZOBNJD3FGFSFODFT
Λͨ͢ΊͷػߏΛ͍͜ͳ͢ w 1BSBNFUFSTηΫγϣϯ w ςϯϓϨʔτͷதͰύϥϝʔλΛఆٛͯ͠ɺ ελοΫͷσϓϩΠ࣌ʹඞͣ͢Α͏ʹͤ͞Δ w 44.1BSBNFUFSΛࢀর͢ΔΑ͏ʹ͢Δ͜ͱͰ͖Δ w
,.4Ͱ҉߸Խ͞Εͨ͑ͳ͍
Λͨ͢ΊͷػߏΛ͍͜ͳ͢ w ΫϩεελοΫࢀর *NQPSU&YQPSU w ผͷελοΫͰఆٛͨ͠Λ༻͢Δ͜ͱ͕Ͱ͖ΔΈ w ςϯϓϨʔτͷ0VUQVUTηΫγϣϯͰ
&YQPSU༻ͷ/BNFΛઃఆ͢Δ͜ͱͰ༻ՄೳʹͳΔ
Λͨ͢ΊͷػߏΛ͍͜ͳ͢ w %ZOBNJD3FGFSFODFT w 44.1BSBNFUFS4FDSFUT.BOBHFSʹอଘ͞ΕͨΛ ςϯϓϨʔτͰ༻͢Δ͜ͱ͕Ͱ͖ΔΈ w ͜͜Ͱ,.4Ͱ҉߸Խ͞ΕͨΛ༻͢Δ͜ͱ͕Ͱ͖Δ w
,.4Ͱ҉߸Խ͞ΕͨΛ0VUQVUTηΫγϣϯͳͲʹ هࡌ͢Δ͜ͱͰ͖ͳ͍
API Gateway
"1*(BUFXBZ
"1*(BUFXBZ 17. λΠϜΞτ29ඵ
λΠϜΞτඵ w "1*(BUFXBZͰඵΑΓ͍ॲཧͰ͖ͳ͍ w λΠϜΞτʹͳͬͯ͠·͏ w ඵΑΓ͍࣌ؒʹઃఆ͢Δ͜ͱͰ͖Δ
"1*(BUFXBZ 18. API͔Β AWSαʔϏεΛ৮Δ͜ͱ͕Ͱ͖Δ
"1*͔Β"84αʔϏεΛ৮Δ͜ͱ͕Ͱ͖Δ w "1*(BUFXBZͰ4FSWJDF1SPYZͱ͍͏ΈͰ "84ͷαʔϏεΛσʔλΛ͢͜ͱ͕Ͱ͖Δ w 1045͞Εͨ༰Λͦͷ··ɺ4/4424ʹ͢ w 4ͷσʔλΛ"1*(BUFXBZΛհͯ͢͠
"1*(BUFXBZ 19. ΧελϜυϝΠϯΛ༻ͯ͠ ෳͷAPIΛҰͭͷAPIʹ·ͱΊΔ
ΧελϜυϝΠϯΛ༻ͯ͠ෳͷ"1*ΛҰͭͷ"1*ʹ·ͱΊΔ w "1*(BUFXBZͰΧελϜυϝΠϯͰ ॴ༗͍ͯ͠ΔυϝΠϯΛ༻Ͱ͖Δ w ΧελϜυϝΠϯͰϕʔεύεϚοϐϯάͱ͍͏ํ๏Ͱ ෳͷ"1*ΛҰͭͷ"1*ͷΑ͏ʹݟͤΔ͜ͱ͕Ͱ͖Δ w Γସ͑؆୯͔ͭਝʹՄೳͳͷͰ
#MVF(SFFO%FQMPZNFOUʹ͑Δ
ΧελϜυϝΠϯΛ༻ͯ͠ෳͷ"1*ΛҰͭͷ"1*ʹ·ͱΊΔ
DynamoDB
%ZOBNP%#
%ZOBNP%# 20. ॻ͖ࠐΈখ͘͞ɺಡΈࠐΈେ͖͘
ॻ͖ࠐΈখ͘͞ɺಡΈࠐΈେ͖͘ w %ZOBNP%#ͷྉۚ ಡΈࠐΈͷํ͕ॻ͖ࠐΈΑΓഒ͍҆ w ಡΈࠐΈ୯Ґॻ͖ࠐΈ୯ҐΑΓഒ͍҆ w ಡΈࠐΈ,#ͷಡΈࠐΈͰ୯Ґ w
ॻ͖ࠐΈ,#ͷॻ͖ࠐΈͰ୯Ґ
ॻ͖ࠐΈখ͘͞ɺಡΈࠐΈେ͖͘ w ॻ͖ࠐΈͷ୯ҐΛ͑Δͱ͖ɺ มߋ༰ͷαΠζͰͳ͘*UFNͷαΠζͰ͑Δ w ,#ͷ*UFNΛ,#ॻ͖͑ͨͱͯ͠ɺ ॻ͖ࠐΈͷ୯ҐʹͳΔ w *UFNͷαΠζΛখͭͭ͘͞͠ɺ
ಡΈࠐΈ࣌ʹ·ͱΊͯऔಘ͢Δͷ͕ޮత
%ZOBNP%# 21. ΦϯσϚϯυΩϟύγςΟͷํ͕ ͍҆߹͕͋Δ
ΦϯσϚϯυΩϟύγςΟͷํ͕͍҆߹͋Δ w %ZOBNP%#ͷྉۚେ͖͚͘Δͱछྨ͋Δ w ϦβʔϒυΩϟύγςΟ w ༧ΊಡΈॻ͖͢ΔͨΊͷΩϟύγςΟΛ֬อ͢Δ w ֬อͨ͠Ҏ্ͷੑೳͰͳ͍
"VUP4DBMJOHՄೳ w ΦϯσϚϯυΩϟύγςΟ w ΩϟύγςΟͷ֬อΛͤͣɺ༻ͨ͠՝ۚ͞ΕΔ w ༻͢Ε੨ఱҪͰ՝ֹ͕ۚ૿͑Δ
ΦϯσϚϯυΩϟύγςΟͷํ͕͍҆߹͋Δ w ϦβʔϒυͱΦϯσϚϯυΛൺֱͯ͠ΈΔ w ಡΈࠐΈͰൺֱ w Ϧβʔϒυ w 3$6YIPVS
w YY3$6YNPOUI3$6YNPOUI w ΦϯσϚϯυສ୯ҐϦΫΤετ w ୯७ͳྉۚൺֱͰΦϯσϚϯυׂ͕ߴ
ΦϯσϚϯυΩϟύγςΟͷํ͕͍҆߹͋Δ
Step Functions
4UFQ'VODUJPOT
4UFQ'VODUJPOT 22. Lambdaͷىಈʹࣦഊ͢Δ͜ͱ͕͋Δ
-BNCEBͷىಈʹࣦഊ͢Δ͜ͱ͕͋Δ w 4UFQ'VODUJPOTͰ-BNCEBΛ࣮ߦ͢Δͱ͖ɺ كʹ࣮ߦͦͷͷʹࣦഊ͢Δ͜ͱ͕͋Δ w -BNCEB͕ΤϥʔͰࣦഊͨ͠ͷͰͳ͘ɺ -BNCEBͷॲཧΛΒͤΒΕͳ͔ͬͨ w -BNCEBͷΤϥʔ௨Ͱर͏͜ͱ͕Ͱ͖ͳ͍
w $MPVE8BUDI.FUSJDTΛͬͯ 4UFQ'VODUJPOTͷࣦഊΛݕ͢Δඞཁ͕͋Δ
·ͱΊ
·ͱΊ w Ҏ্αʔόʔϨεΞϓϦέʔγϣϯΛ։ൃ͢Δ্Ͱ ͕ࣗײͨ͡5JQTͰͨ͠ w ͋Δఔ૾Ͱ͖ͯͨͷ͔Βɺ Βͳ͔ͬͨ͜ͱ·Ͱ͋ͬͯɺ ࣮ࡍʹ৮Βͳ͍ͱΘ͔Βͳ͍ͳ͊ͱࢥ͍·ͨ͠ w
αʔόʔϨε։ൃͷҰॿʹͳΕ͍Ͱ͢