Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What is going on with this article?
@sakapun

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

More than 1 year has passed since last update.

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

0
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
sakapun
water-cell
地球人口100億の時代への農業革命をWebテクノロジで支える

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
0
Help us understand the problem. What is going on with this article?