Help us understand the problem. What is going on with this article?

Lambda Layer と X-Ray

はじめに

AWS re:Invent 2018 でLambdaのLayer機能が発表されたのでどういう使い方をするかなーと考えてみました。
使い方についてはもういろんなサイトで公開されているので割愛。

今回は、分析時に便利なX-Rayの導入を簡素化させるためのLayerを用意してみました。

Lambdaのコードや設定はここを参考にしています。

tl;dr

  • Layerはパッケージを作るときに言語毎のルールがあるのでそれに従わないといけない
  • Layerは/optに展開される
  • あとは通常のライブラリの使い方と同じかんじ
  • X-Rayやrequestsのライブラリを個別に入れる手間が少しだけはぶける。(既存のLambdaに手を加える必要はある。)

やったこと

前提

  • ALB、Lambdaは東京リージョンに作成
  • Layerの言語はPython 3.6
  • Layerを追加したいLambdaはすでに作成ずみ(Python 3.6)

Layerのパッケージの作成

今回はX-Rayとrequestsを含めたLayerを作成する

$ mkdir python
$ touch python/layer.py
$ pip install requests -t python/
$ pip install aws-xray-sdk -t python/

layer.pyを編集する

layer.py
from aws_xray_sdk.core import xray_recorder
from aws_xray_sdk.core import patch_all

patch_all()

zipにしたらパッケージの準備完了

$ zip -r python.zip python/

Layerの作成

$ aws lambda publish-layer-version --layer-name x-ray-layer --description "x-ray layer" --license-info "MIT" --content S3Bucket=xxxx,S3Key=python.zip --compatible-runtimes python3.6

LambdaにLayerを追加

$ aws lambda update-function-configuration --function-name <function_name> --layers arn:aws:lambda:ap-northeast-1:<account_id>:layer:x-ray-layer:1

LambdaのX-Rayを有効化

$ aws lambda update-function-configuration --function-name <function_name> --tracing-config '{"Mode": "Active"}'

これで、準備は完了。
あとはLayerを追加したLambdaに以下の一文を追加するとX-Rayでトレースが見られるようになる。

import layer

Layerを適用したLambdaのデプロイ用のパッケージは容量減るのですっきりした感じがする。
(実行時のモジュールサイズはへらない。)

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
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  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
ユーザーは見つかりませんでした