【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コンソールからアップロードします。
![AWS Lambdaへのレイヤーの追加](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer1-1024x526.jpg)
「レイヤーの作成」をクリックします。
![AWS Lambdaでレイヤーを作成する](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer2-1024x235.jpg)
レイヤー名を入力し、先ほど作成したzipファイルをアップロードします。
![AWS Lambdaレイヤー情報の入力](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer3.jpg)
レイヤーを追加したいLambda関数に移動しレイヤーの「レイヤーの追加」をクリックします。
![AWS Lambda関数へレイヤーを追加](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer4-1024x275.jpg)
レイヤーを選択する画面が表示されるので「ARNを指定」を選択し、先ほど作成したレイヤーのARNを入力します。
![](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer5.jpg)
レイヤーのARNはレイヤー一覧画面で確認できます。
![](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer6-1024x213.jpg)
動作確認
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リクエストに成功していることが確認できます。
![AWS Lambdaからrequestsを使ってGETリクエストを投げる](https://sebenkyo.com/wp/wp-content/uploads/2021/05/layer7-1024x222.png)
この記事ではPythonで作成したLambdaにrequestsライブラリをLayerとして追加する方法を紹介しました。
AWS ソリューションアーキテクト資格に関する記事
ソリューションアーキテクトを取得した際の勉強方法については以下の記事にまとめています。