Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
マルチクラウドでいろいろ「がおって」みた / serverless-200125
Search
gaomar
January 25, 2020
Technology
670
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
マルチクラウドでいろいろ「がおって」みた / serverless-200125
Serverless Meetup Kobe #1登壇資料です。
https://serverless.connpass.com/event/157159/
gaomar
January 25, 2020
More Decks by gaomar
See All by gaomar
PAD・enebular・Lexで 交通費を確認してみた / enebular-200902
gaomar
0
250
よくあるご質問をノーコードで試してみた / enebular-210210
gaomar
0
270
enebularで湯婆婆をノーコードで実装してみた / enebular-201201
gaomar
0
1.2k
CLOVA OCRをenebularで連携してみた / yurufuwaml-201104
gaomar
0
440
会社の受付システムをenebularでやってみる / 0yenRPA-201006
gaomar
0
280
ゆるふわマシンラーニング vol.4 / yurufuwaml-200702
gaomar
0
320
Makecode Arcadeハンズオン資料 / makecodearcade-0625
gaomar
2
580
M5StickCをLINE Beacon化してみた / m5stack-200207
gaomar
0
820
スマートスピーカーミーティング 20200130 / ssmtg-200130
gaomar
0
560
Other Decks in Technology
See All in Technology
生成AIのテナント制御とシャドーMCP対策 | AIを"止めずに"、情報を守る
yukun
0
150
2026_devsumi_ozono.pdf
o3
2
370
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
170
Redmine 7.0で私が開発した新機能の狙いと背景
vividtone
1
160
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
220
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
530
AI時代だからこそ、スケールしないことをやろう
yutashigemura
1
140
The Agent Builder Loop from Daily Work to OSS
minorun365
PRO
3
130
Snowflakeで実現する全社横断の顧客の声(VOC)分析・活用基盤@Snowflake World Tour Tokyo 2026
yuto16
0
170
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
GuardDuty 検知対応を DevOps Agent で効率化しようとしている話 / GuardDuty Investigations with DevOps Agent
masahirokawahara
1
360
20260912_スクフェス三河
kgnkhkr
0
290
Featured
See All Featured
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
520
Facilitating Awesome Meetings
lara
57
7.1k
A Soul's Torment
seathinner
7
3.6k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Jamie Indigo - Trashchat’s Guide to Black Boxes: Technical SEO Tactics for LLMs
techseoconnect
PRO
0
660
The Anti-SEO Checklist Checklist. Pubcon Cyber Week
ryanjones
0
230
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
16
2.2k
Beyond borders and beyond the search box: How to win the global "messy middle" with AI-driven SEO
davidcarrasco
3
240
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
500
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.4k
Art, The Web, and Tiny UX
lynnandtonic
304
22k
Transcript
TFSWFSMFTTLPCF ϚϧνΫϥυͰ͍Ζ͍Ζ ʮ͕͓ͬͯʯΈͨ M5
TFSWFSMFTTLPCF ࣗݾհʢ͕͓·Δʣ ॴଐɿגࣜձࣾΞΠΤϯλʔɹେࡕࢧళ ɹɹɹ3%ɹೖࣾ ɹɹɹεϚʔτεϐʔΧʔΤόϯδΣϦετ ɹɹɹ-*/&"1*&YQFSUʢʙʣ ɹɹɹ"MFYB$IBNQJPOʢʙʣ ۀɿ"5-BCPɾ͕͓·Δक़ओ࠵ ɹɹɹεϚʔτεϐʔΧʔݚڀ։ൃ ɹɹɹ31"ݚڀ։ൃ
ߴഅɹయ !HBPNBS ͖ͳݴ༿ɿͶ͐$MPWB ͔ͨ͏·ɹͻΖͷΓ
TFSWFSMFTTLPCF εϚʔτεϐʔΧʔΞϓϦ։ൃೖ େධൃചதʂ
TFSWFSMFTTLPCF ຊ
TFSWFSMFTTLPCF ʮ͕͓ͬͯΔʯͱ ͋Γͱ͋ΒΏΔΫϥυαʔϏεΛͱʹ͔ͪ͘͝Ό·ͥʹͯ͠ Կ͔ͩྑ͔͘Βͳ͍͚Ͳɺ ࠷ऴతʹಈ͍ͯΈΜͳϋοϐʔʹͳΕΔ͜ͱ ཁ͢Δʹນͷหతͳҙຯ߹͍
TFSWFSMFTTLPCF "MFYB$IBNQJPOͷϖʔδʹ("͞Εͨʂ
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ
TFSWFSMFTTLPCF ౙٳΈͰՋͩͬͨͷͰ 1PXFS"VUPNBUFͬͯ -*/&#PUΛ̏ͭ࡞ͬͯΈͨ
TFSWFSMFTTLPCF 1PXFS"VUPNBUFͱ
TFSWFSMFTTLPCF 0$3#PU $PNQVUFS7JTJPOΛར༻ͯ͠-*/&ʹ্͛ͨը૾ͷ தʹ͋ΔจࣈྻΛೝࣝͯͦ͠ͷ݁ՌΛฦ͢ɻ ೝࣝߴΊ͕ͩɺखॻ͖จࣈͷೝ͕͔ࣝͳΓ Լͨ͠
TFSWFSMFTTLPCF ༁#PU 5FYU5SBOTMBUPSΛར༻ͯ͠#PUʹ͛ͨຊޠΛ ӳޠʹ༁ͯ͠ฦͯ͘͠ΕΔɻ Ұ࣌ظʹͳͬͨࡖϚοεϧΛࢼͨ͠Βͬͱ ΧΦεͳ͜ͱʹͳ͍ͬͯͨ͆
TFSWFSMFTTLPCF $VTUPN7JTJPOΛར༻ͯ͠#PUʹ͛ͨը૾͔Β ࢦఆͨ͠λά໊Λฦ͢ɻ ίʔϯϑϨʔΫͷը૾Λ͛ΔͱίʔϯϑϨʔΫ ͔Ͳ͏͔ఆͯ͘͠ΕΔ ྨث#PU
TFSWFSMFTTLPCF (PPHMFͷ5FBDIBCMF.BDIJOF͕Ϡό͍ʂ
TFSWFSMFTTLPCF
TFSWFSMFTTLPCF ͜ΕΛͬͨϋϯζΦϯΛདྷ݄ߦ͍·͆͢ ຬһޚྱʂ
TFSWFSMFTTLPCF 0$3#PU ༁#PU ྨث#PU
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ M5
TFSWFSMFTTLPCF #MVFUPPUIൃ৴ػͰ-*/&ΞϓϦΛܦ༝ͯ͠ ࢦఆͨ͠8FCIPPLઌʹ͍ۙͮͨਓͷใΛ ඈ͢͜ͱ͕Ͱ͖Δ
TFSWFSMFTTLPCF M5 .4UJDL$ ɾ&41ଂ ɾY5'5Χϥʔӷথ ɾN"I-J1PόοςϦʔ ɾ(SPWFϙʔτ ɾ.#ϑϥογϡϝϞϦ ɾ࣠ηϯα ɾ=
TFSWFSMFTTLPCF -*/&4JNQMF#FBDPOͱ -*/&4JNQMF#FBDPOͱɺ-*/&#PU։ൃऀ͚ͷϏʔίϯ σόΠε༷Ͱ͢ɻ-*/&4JNQMF#FBDPO#MVFUPPUI -PX&OFSHZ ҎԼɺʮ#-&ʯͱ͍͏ ͷ༷ʹͱ͍͓ͮͯ Γɺ൚༻ͷσόΠεͰ-*/&#FBDPOͷαʔϏεΛར༻͢Δ͜ ͱΛՄೳͱ͠·͢ɻ IUUQTHJUIVCDPNMJOFMJOFTJNQMFCFBDPOCMPCNBTUFS3&"%.&KBNE
TFSWFSMFTTLPCF ͔͜͜Β-*/&#PUͱඥ͚ͯ*%Λൃߦ͢Δ͚ͩ IUUQTNBOBHFSMJOFCJ[CFBDPOSFHJTUFS
TFSWFSMFTTLPCF -*/&#FBDPOΛ༗ޮԽ
TFSWFSMFTTLPCF Ͱ͖ͨͷͪ͜Β
None
TFSWFSMFTTLPCF ΞʔΩςΫνϟ M5 ʗडͨ͠Αʘ ʘ͕͓·Δ͕དྷͨΑʗ 66*% FOUFS 66*%
TFSWFSMFTTLPCF ͕͓ͬͯΔͦͷ
TFSWFSMFTTLPCF ͱ 23ίʔυܾࡁΦϯϥΠϯγϣοϐϯά ʹͬͨΓͰ͖ΔεϚϗܾࡁαʔϏε །Ұ։ൃ༻4%,͕ެ։͞Ε͓ͯΓɺ ୭Ͱ։ൃΛ࢝ΊΔ͜ͱ͕Ͱ͖Δ
TFSWFSMFTTLPCF 31"πʔϧͷҰछ ࡞ۀۀΛࣗಈԽ͢ΔϩϘοτΛ։ൃ͢Δπʔϧ
TFSWFSMFTTLPCF ΦʔέετϨʔλʔ͕͋Δ
TFSWFSMFTTLPCF 6J1BUI0SDIFTUSBUPSͱ ɾδϣϒͷεέδϡʔϧཧ ɾ౷߹ӡ༻ཧ ɾ෦౷੍ ɾηΩϡϦςΟରࡦ ɾॊೈͳ֦ுੑ
TFSWFSMFTTLPCF ॊೈͳ֦ுੑ ɾ31"ͷཧػೳΛ3&45"1*ͱͯ͠ެ։ ɾϩϘͷىಈࢦ͕ࣔ؆୯ʹͰ͖Δ ɾ֎෦ͷ༷ʑͳαʔϏεͱ࿈ܞ͢Δ͜ͱ͕Մೳʂ
TFSWFSMFTTLPCF Ͱ͖ͨͷͪ͜Β
TFSWFSMFTTLPCF IUUQTZPVUVCF:#7TSMH
TFSWFSMFTTLPCF ΞʔΩςΫνϟ ΦʔέετϨʔλʔ ʘܾࡁใೖྗʂʗ -*/&1BZ ܾࡁ (JU)VC
TFSWFSMFTTLPCF -*''ʢ-*/&'POUFOE'SBNFXPSLʣ -*/&ΞϓϦͰಈ࡞͢ΔΣϒΞϓϦͷϓϥοτϑΥʔϜ ϢʔβʔใΛ׆༻ͨ͠ػೳΛఏڙͨ͠Γɺ ϢʔβʔͷΘΓʹϝοηʔδΛૹ৴ͨ͠ΓͰ͖·͢ ˞-*''ܦ༝Ͱ-*/&ͷϓϩϑΟʔϧ͕औಘՄೳ ˞-*''W͔Β8FCܦ༝Ͱར༻Մೳʹ
TFSWFSMFTTLPCF 6J1BUIϑϩʔਤ ύϒϦογϡͯ͠ ΦʔέετϨʔλʔʹΞοϓ͢Δ
TFSWFSMFTTLPCF ΦʔέετϨʔλʔʹϩϘ͕Ξοϓ͞ΕΔ όʔδϣϯཧ͕Մೳʂ
TFSWFSMFTTLPCF ͔͜͜Β։ൃΑΓͳ
TFSWFSMFTTLPCF -*/&1BZܾࡁॲཧ7VFKT // ܾࡁ༧ let options = { productName: "ϩοΫղআ",
amount: 1, // ֹۚʢ͜ͷ߹1ԁʣ currency: "JPY", // ຊԁ orderId: uuid(), confirmUrl: process.env.VUE_APP_LINE_PAY_CONFIRM_URL } pay.reserve(options).then((response) => { let reservation = options reservation.transactionId = response.info.transactionId reservation.paymentUrl = response.info.paymentUrl.web callback(null, { statusCode: 200, body: JSON.stringify(reservation), headers: headers }) }) ɾBNPVOUɿֹۚ ɾPSEFS*Eɿܾࡁཧ൪߸ ɾDPOpSN6SMɿܾࡁޙભҠ63- ɾSFTFSWFɿॲཧ࣮ߦ IUUQTQBZMJOFNFKQEFWFMPQFSTBQJTPOMJOF"QJT MPDBMFKB@+1 ܾࡁ༧
TFSWFSMFTTLPCF -*/&1BZܾࡁॲཧ7VFKT // ܾࡁॲཧ const transactionId = params.get('transactionId') const reservations
= JSON.parse(params.get('reservations')) let confirmation = { transactionId: transactionId, amount: reservations.amount, currency: reservations.currency } pay.confirm(confirmation).then((response) => { callback(null, { statusCode: 200, body: 'ܾࡁྃ͠·ͨ͠ʂ', headers: headers }) }) ɾUSBOTBDUJPO*Eɿܾࡁ൪߸ ɾBNPVOUɿܾࡁ࣌ͷֹۚ ɾDVSSFODZɿܾࡁ࣌ͷຊԁ ɾDPOpSNɿॲཧ࣮ߦ IUUQTQBZMJOFNFKQEFWFMPQFSTBQJTPOMJOF"QJT MPDBMFKB@+1 ܾࡁ֬ೝ
TFSWFSMFTTLPCF ࣮ݱ͢ΔͨΊͷεςοϓ͕໘͍X ɾΞΫηετʔΫϯΛൃߦ͢Δ ɾαʔϏεΠϯελϯεࣝผࢠऔಘ ɾ3FMFBTF,FZΛऔಘ͢Δ ɾδϣϒʢϩϘʣΛ࣮ߦ͢Δ
TFSWFSMFTTLPCF ֎෦αʔϏεͱ࿈ܞ͢ΔͨΊʹඞཁͳ τʔΫϯ3FMFBTF,FZΛऔಘ͢Δ
TFSWFSMFTTLPCF ΞΫηετʔΫϯΛൃߦ͢Δ IUUQTEPDTVJQBUIDPNPSDIFTUSBUPSWSFGFSFODFTFDUJPOHFUUJOHSFGSFTIUPLFO ֤छτʔΫϯΛϝϞ
TFSWFSMFTTLPCF τʔΫϯͷ༗ޮ࣌ؒ ࣌ؒͰΕ·͢
TFSWFSMFTTLPCF ͦΕҎ֎ʹෳͷ"1*Λୟ͔ͳ͍ͱ͍͚ͳ͍PS[
TFSWFSMFTTLPCF ·ͱΊ
TFSWFSMFTTLPCF ɾ1PXFS"VUPNBUFϊϯίʔςΟϯάͰ৭ʑͰ͖Δ ɾ͓ख࣋ͪͷσόΠεΛ-*/&#FBDPOԽՄೳ ɾ-*/&1BZ།Ұ։ൃ4%,͕ެ։͞Ε͍ͯΔ ɾ4UBSU+PCTؔͰϩϘΛ࣮ߦͰ͖Δ ɾൃߦͨ͠τʔΫϯͷ༗ޮ࣌ؒ࣌ؒ ɾ͍ΖΜͳ࿈ܞָ͍͠ʘ ?P? ʗ
TFSWFSMFTTLPCF ࠂ
TFSWFSMFTTLPCF ɹ-*/&ͷνϟοτϘοτΛ࡞Ζ͏!͋ͷϋϧΧε'
TFSWFSMFTTLPCF ɹ31"ษڧˍ-5ձʂ31"-5ϋϯζΦϯࢧ෦WPM!େࡕ
TFSWFSMFTTLPCF εϚʔτεϐʔΧʔΛ༡ͼ͓ͨ͢ձ େࡕ ໊ݹ ౦ژ ̏ڌಉ࣌தܧ
TFSWFSMFTTLPCF 7PJDF$PO+BQBO ຊ࠷େڃͷ76*ɾεϚʔτεϐʔΧʔΠϕϯτ IUUQTWPJDFDPOKBQBOBBKVHKQ
TFSWFSMFTTLPCF =ׂҾΫʔϙϯίʔυ vcj2020kobe
TFSWFSMFTTLPCF ϦΞϧλΠϜΞϯέʔτ
TFSWFSMFTTLPCF ͝ਗ਼ௌ͋Γ͕ͱ͏͍͟͝·ͨ͠ M5