2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

AWS lambdaにzip形式でアップロードするとファイルが開けないと言われる

Posted at

やりたいこと

関数と外部ライブラリをまとめてzipしてlambdaにアップロードしたい。

遭遇したエラー

zipにして上げるだけだが、この後エラーに弾き倒されたので戦い方を記録しておく。

Could not open file:/index.js
The file could not be found on the file system.
fe0105bec7b39d5b7e542ca1aaccda3c.png

チェックしたこと

関数名

ハンドラの記述に合わせた関数名で作成する。

Pythonならlambda_function.py
Node.jsならindex.js
コンソール上で見れる。

zipの中身

単にzipコマンドを実行するとディレクトリ構造も含めて圧縮してしまうために、zipコマンドを実行する場所によってこのエラーが起こる。
解決策はそもそも末端まで降りてzipするか、-jオプションでディレクトリ構造を無視するか.

ディレクトリ構造
user
└── Hoge
    ├── hoge.py
    ├── slackweb
    └── slackweb-1.0.5-py3.6.egg-info
失敗
user$ zip -r Hoge.zip ./Hoge
成功
Hoge$ zip -r Hoge.zip .
成功
user$ zip -rj Hoge.zip ./Hoge

無関係と思われるもの

Permission

上記の問題を解決したところ、関数ファイルとzipフォルダは644、ライブラリは755の条件でアップしたケースで問題なく動作した。
逆に、全て777にしたzipをあげてもダメなことに変わりはなかった。

zipフォルダ名

lambdaに表示すらされないのでなんでもいいと思う。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?