Lambda レイヤーにライブラリを追加する ( jq 編)

概要

Lambda から jq コマンドを利用できるようにするため、Lambda レイヤーに jq を追加します。

Lambda レイヤーに jq を追加する手順

最終的なデプロイパッケージ( zip ファイルアーカイブ)のフォルダ構成
Copied!
.
└── bin
    └──jq

作業用ディレクトリとレイヤーパスの作成

Copied!
mkdir -p ~/jq_layer/bin

jq のダウンロード

bin ディレクトリに jq のバイナリーファイルを追加します。

Copied!
cd ~/jq_layer/bin

# 以下の wget もしくは curl いづれかのコマンドで jq のバイナリーファイルをダウンロードします。
wget https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64  -O jq
curl -Lo jq https://github.com/stedolan/jq/releases/download/jq-1.6/jq-linux64

# 実行権限を付与しておきます。
chmod 755 jq

デプロイパッケージ化( zip ファイルアーカイブ)

Copied!
cd ~/jq_layer
zip -r9 jq_layer.zip bin

Lambda レイヤーの作成

デプロイパッケージを使用した Lambda レイヤーの作成手順はこちらにまとめてあります。

動作確認

作成した Lambda レイヤーを使用する Lambda 関数を作成し、テスト実行してみます。
使用するカスタムランタイムはなんでもいいですが、本記事ではカスタムランタイムである Amazon Linux 2 を使用します。
特にエラーが発生せず、実行結果のログに jq のバージョンが表示されていれば成功です。

Copied!
function handler () {
    EVENT_DATA=$1
    jq --version
    RESPONSE="{\"statusCode\": 200, \"body\": \"Hello from Lambda!\"}"
    echo $RESPONSE
}