AWS Lambda LayersでpythonやNodejsのzipを作る便利なやり方

AWS Lambda LayersでpythonやNodejsのzipを作る便利なやり方:

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を

作れるようになります

コメント

このブログの人気の投稿

投稿時間:2021-06-17 22:08:45 RSSフィード2021-06-17 22:00 分まとめ(2089件)

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-06-17 05:05:34 RSSフィード2021-06-17 05:00 分まとめ(1274件)