Lambda Layer と X-Ray

公開日:2018-12-05
最終更新:2018-12-05
※この記事は外部サイト(https://qiita.com/Ricordanza/items/d68d708...)からのクロス投稿です

はじめに

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を編集する

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,py  

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

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@ricordanzaの技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする