【AWS】LambdaにrequestsライブラリをLayerで追加する
Contents
LambdaにrequestsライブラリをLayerで追加
zipファイルの作成
Layerに入れるrequestsライブラリをローカルディレクトリにpipでインストールします。Layer化対象のライブラリをインストールするディレクトリ名を「python」にすることでLambdaでimportする際にパス指定が不要となります。
ライブラリインストール後にディレクトリをzipファイルに圧縮します。
$ mkdir python
$ pip install -t python requests
$ zip -r9 layer.zip python
Layerの作成
作成したzipファイルをAWSコンソールからアップロードします。
「レイヤーの作成」をクリックします。
レイヤー名を入力し、先ほど作成したzipファイルをアップロードします。
レイヤーを追加したいLambda関数に移動しレイヤーの「レイヤーの追加」をクリックします。
レイヤーを選択する画面が表示されるので「ARNを指定」を選択し、先ほど作成したレイヤーのARNを入力します。
レイヤーのARNはレイヤー一覧画面で確認できます。
動作確認
requestsを使ってQiita APIにGETリクエストを投げてみます。
import json
import requests
def lambda_handler(event, context):
r = requests.get('https://qiita.com/api/v2/items')
return {
'statusCode': r.status_code,
'body': r.json()
}
テストから実行するとGETリクエストに成功していることが確認できます。
この記事ではPythonで作成したLambdaにrequestsライブラリをLayerとして追加する方法を紹介しました。
AWS ソリューションアーキテクト資格に関する記事
ソリューションアーキテクトを取得した際の勉強方法については以下の記事にまとめています。