AWS Lambda LayersでpythonやNodejsのzipを作る便利なやり方
AWS Lambda LayersでpythonやNodejsのzipを作る便利なやり方:
AWS Lambda Layersの発表により、Lambdaで外部ライブラリを使うのが容易になりました。
Macで外部ライブラリをアップするためには次のようにします。
GitlabのCIでzipを作ってしまえば、Amazon Linuxの環境で作ったzipを簡単に手に入れることができます
WEBコンソールから作業しちゃっていいと思います。
内容は下記のとおりです。
作れるようになります
AWS Lambda Layersの発表により、Lambdaで外部ライブラリを使うのが容易になりました。
Macで外部ライブラリをアップするためには次のようにします。
python
mkdir python pip install -t ./python numpy #(入れたいモジュール名) zip -r upload.zip ./python
node
mkdir nodejs npm install -p ./nodejs lodash #(入れたいモジュール名) zip -r upload.zip ./nodejs
この方法の問題
- Macでライブラリのzipを作ると、lambdaで動かないことがある
- Windowsの標準zipでは、lambdaにアップしてもダメ
どうする?
GitlabのCIでzipを作ってしまえば、Amazon Linuxの環境で作ったzipを簡単に手に入れることができます
Gitlab
- アカウント作成
- プロジェクト作成
実際のci用ファイル
.gitlab-ci.yml
を作成します。WEBコンソールから作業しちゃっていいと思います。
内容は下記のとおりです。
stages: - pymodule_zip - nodemodule_zip pymodule_zip: image: lambci/lambda:build-python3.7 stage: pymodule_zip artifacts: paths: - python script: - mkdir python - pip install ${PYTHON_PACKAGES} -t ./python only: variables: - $PYTHON_PACKAGES nodemodule_zip: image: lambci/lambda:build-nodejs8.10 stage: nodemodule_zip artifacts: paths: - nodejs script: - mkdir nodejs - npm i --prefix nodejs ${NODE_PACKAGES} only: variables: - $NODE_PACKAGES
CIを環境変数付きで走らせます
PYTHON_PACKAGES
でpythonのライブラリのzipをNODE_PACKAGES
でnodeのライブラリのzipを作れるようになります
コメント
コメントを投稿