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
LambdaのNodejsをアップデートしたら困った話
Search
is_ryo
February 12, 2020
Programming
2
1.2k
LambdaのNodejsをアップデートしたら困った話
is_ryo
February 12, 2020
Tweet
Share
More Decks by is_ryo
See All by is_ryo
tRPC入門
is_ryo
1
140
TypeScriptでWebAssemblyに入門しよう
is_ryo
0
120
Honoが良さそう🔥
is_ryo
1
840
頑張らないオレオレVuex規約を作った話
is_ryo
4
2.5k
AppSyncで始めるGraphQL
is_ryo
1
570
Other Decks in Programming
See All in Programming
オートマトン学習しろ / Do automata learning
makenowjust
3
100
メモリ最適化を究める!iOSアプリ開発における5つの重要なポイント
yhirakawa333
0
370
令和トラベルにおけるLLM活用事例:社内ツール開発から得た学びと実践
ippo012
0
110
複雑さに立ち向かうための ソフトウェア開発入門
shiz
2
580
健康第一!MetricKitで始めるアプリの健康診断 / App Health Checkups Starting with MetricKit
nekowen
4
790
dRuby 入門者によるあなたの身近にあるdRuby 入門
makicamel
4
340
Regular Expressions, REXML, Automata Learning
makenowjust
0
180
開発を加速する共有Swift Package実践
elmetal
PRO
0
300
Modular Monolith Go Server with GraphQL Federation + gRPC
110y
1
550
長期運用プロダクトの開発速度を維持し続けるためのリファクタリング実践例
wataruss
8
2.5k
Meet BrowserEngineKit
swiftty
0
190
GoのIteratorに詳しくなってしまう
inatonix
1
170
Featured
See All Featured
Build The Right Thing And Hit Your Dates
maggiecrowley
29
2.2k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
165
48k
Agile that works and the tools we love
rasmusluckow
327
20k
[RailsConf 2023] Rails as a piece of cake
palkan
44
4.6k
StorybookのUI Testing Handbookを読んだ
zakiyama
25
5k
Adopting Sorbet at Scale
ufuk
72
8.9k
Testing 201, or: Great Expectations
jmmastey
35
6.9k
No one is an island. Learnings from fostering a developers community.
thoeni
18
2.9k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
22
580
Building an army of robots
kneath
302
42k
Building a Scalable Design System with Sketch
lauravandoore
458
32k
Keith and Marios Guide to Fast Websites
keithpitt
408
22k
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のデプロイはフレームワーク等 で管理しないと大変…
おわり