Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
LambdaのNodejsをアップデートしたら困った話
is_ryo
February 12, 2020
Programming
2
820
LambdaのNodejsをアップデートしたら困った話
is_ryo
February 12, 2020
Tweet
Share
More Decks by is_ryo
See All by is_ryo
頑張らないオレオレVuex規約を作った話
is_ryo
4
1.7k
AppSyncで始めるGraphQL
is_ryo
1
440
Other Decks in Programming
See All in Programming
RFC 9111: HTTP Caching
jxck
0
150
Cross Deviceチームにおけるスマートテレビアプリ開発ってどんな感じ?
cokaholic
0
120
engineer
spacemarket
0
460
Java アプリとAWS の良い関係 - AWS でJava アプリを実行する一番簡単な方法教えます / AWS for Javarista
kanamasa
2
1.1k
ANR overview at Uber + Leveraging ApplicationExitInfo API
yhartanto
0
320
One does not simply: migrating to Android 12 🤯
oleur
1
120
VisualProgramming_GoogleHome_LINE
nearmugi
1
140
How we run a Realtime Puzzle Fighting Game on AWS Serverless
falken
0
240
Treasure.map(): Functional programming in JVM-based languages
paranoidmonoid
0
130
Node.jsデザインパターンを読んで
mmmommm
0
700
Power Automateドリブンのチームマネジメント
hanaseleb
0
180
Web API連携でCSRF対策がどう実装されてるか調べた / how to implements csrf-detection on Web API
yasuakiomokawa
2
210
Featured
See All Featured
Practical Orchestrator
shlominoach
178
8.6k
Embracing the Ebb and Flow
colly
73
3.4k
Ruby is Unlike a Banana
tanoku
91
9.2k
Raft: Consensus for Rubyists
vanstee
126
5.4k
Become a Pro
speakerdeck
PRO
3
820
A better future with KSS
kneath
225
15k
Done Done
chrislema
174
14k
How GitHub Uses GitHub to Build GitHub
holman
465
280k
How to Ace a Technical Interview
jacobian
265
21k
The Brand Is Dead. Long Live the Brand.
mthomps
46
2.7k
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
29
4.3k
Thoughts on Productivity
jonyablonski
43
2.3k
Transcript
2020/02/12 関西Node学園 9時限目 Ryosuke Izumi
Ryosuke Izumi WebApplication / IoT AWS / Vue / TypeScript
/ Serverless v-kansai & kansai.ts organizer @is_ryo
今日の話題
Lambda+Node.js の小話
AWS使ってる人
AWS使えるって 言える人いますか?
Lambda使ってる人
Lambda って便利ですよね
ほんとユースケースが多い
個人的には Python とか Nodejs をLambda上で動かすことが多い
https://twitter.com/Keisuke69/status/1224630084465643520
ただEOLが近づいてくると AWSからメールが飛んでくる
AWS「Nodejs v8 はもうすぐEOL だから10か12にバージョン上げ てね。EOLになったあとも動くけ ど、Lambda自体の更新はできな くなるよ。よろしく。」
めっちゃ親切やん…
Lambda 上の Nodejs も ちゃんとメンテナンスしないと いけない…
やったこと
Nodejs8.10 → Nodejs10.x
基本的に脳死状態で アップデートしていった (真似しちゃダメ。絶対。)
あるLambdaだけアップデート したあとにエラーを吐き出した…
何が起きたか
module が見つからん! っていうエラーが出た
こんな書き方になっていた…
おわかりいただけただろうか?
None
原因
Nodejs10.x から AmazonLinux2 上に展開されるようになってい て、環境変数$NODE_PATHの内 容が変わっていた。
Lambda Workers (EC2 Instances) Host OS Hypervisor MicroVM Lambda Lambda
EC2 Bare Metal Instance Host OS Host Kernel KVM Firecraker MicroVM Lambda Firecraker MicroVM Lambda EC2 モデル Firecraker モデル
• Nodejs8.10 • Nodejs10.x
• Nodejs8.10 /opt/nodejs/node8/node_modules:/opt/nodejs /node_modules:/var/runtime/node_modules:/v ar/runtime:/var/task:/var/runtime/node_mod ules • Nodejs10.x /opt/nodejs/node10/node_modules:/opt/nodej s/node_modules:/var/runtime/node_modules
https://nodejs.org/docs/v12.13.1/api/modules.html
/var/task に path が通って なかったので参照できなかった
解決方法
ちゃんと相対パスで書こう
import文を使おう
まとめ
• require はちゃんと相対パスで書こう • import文っていう方法もあるよ • アップデートはNodejs だけの問題じゃ ないときあるので気をつけよう •
Lambdaのデプロイはフレームワーク等 で管理しないと大変…
おわり