1
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 LayersでpythonやNodejsのzipを作る便利なやり方

Last updated at Posted at 2018-12-29

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を
作れるようになります

1
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
1
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?