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
780
CircleCI_のJobを_並列で実行してみる
sinofseven_
1
1.3k
サーバーレスの概要と応用 - プログラミング生放送勉強会 第55回@福岡
sinofseven_
0
1.4k
Other Decks in Technology
See All in Technology
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
310
NilAway による静的解析で「10 億ドル」を節約する #kyotogo / Kyoto Go 56th
ytaka23
3
380
統計データで2024年の クラウド・インフラ動向を眺める
ysknsid25
2
840
オプトインカメラ:UWB測位を応用したオプトイン型のカメラ計測
matthewlujp
0
170
Snowflake女子会#3 Snowpipeの良さを5分で語るよ
lana2548
0
230
1等無人航空機操縦士一発試験 合格までの道のり ドローンミートアップ@大阪 2024/12/18
excdinc
0
160
LINEスキマニにおけるフロントエンド開発
lycorptech_jp
PRO
0
330
バクラクのドキュメント解析技術と実データにおける課題 / layerx-ccc-winter-2024
shimacos
2
1.1k
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
260
サーバレスアプリ開発者向けアップデートをキャッチアップしてきた #AWSreInvent #regrowth_fuk
drumnistnakano
0
190
成果を出しながら成長する、アウトプット駆動のキャッチアップ術 / Output-driven catch-up techniques to grow while producing results
aiandrox
0
310
どちらを使う?GitHub or Azure DevOps Ver. 24H2
kkamegawa
0
750
Featured
See All Featured
How to Ace a Technical Interview
jacobian
276
23k
Bootstrapping a Software Product
garrettdimon
PRO
305
110k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
29
2k
GraphQLの誤解/rethinking-graphql
sonatard
67
10k
A Modern Web Designer's Workflow
chriscoyier
693
190k
Making the Leap to Tech Lead
cromwellryan
133
9k
Building Applications with DynamoDB
mza
91
6.1k
A Tale of Four Properties
chriscoyier
157
23k
Product Roadmaps are Hard
iamctodd
PRO
49
11k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
132
33k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
665
120k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
6.9k
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
αʔόʔϨε։ൃͷҰॿʹͳΕ͍Ͱ͢