【AWS】LambdaにrequestsライブラリをLayerで追加する

2023年5月28日

LambdaにrequestsライブラリをLayerで追加

zipファイルの作成

Layerに入れるrequestsライブラリをローカルディレクトリにpipでインストールします。Layer化対象のライブラリをインストールするディレクトリ名を「python」にすることでLambdaでimportする際にパス指定が不要となります。

ライブラリインストール後にディレクトリをzipファイルに圧縮します。

Lambda レイヤーの作成と共有

$ mkdir python
$ pip install -t python requests
$ zip -r9 layer.zip python

Layerの作成

作成したzipファイルをAWSコンソールからアップロードします。

AWS Lambdaへのレイヤーの追加

「レイヤーの作成」をクリックします。

AWS Lambdaでレイヤーを作成する

レイヤー名を入力し、先ほど作成したzipファイルをアップロードします。

AWS Lambdaレイヤー情報の入力

レイヤーを追加したいLambda関数に移動しレイヤーの「レイヤーの追加」をクリックします。

AWS 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リクエストに成功していることが確認できます。

AWS Lambdaからrequestsを使ってGETリクエストを投げる

この記事ではPythonで作成したLambdaにrequestsライブラリをLayerとして追加する方法を紹介しました。

AWS ソリューションアーキテクト資格に関する記事

ソリューションアーキテクトを取得した際の勉強方法については以下の記事にまとめています。

AWS,Python

Posted by fanfanta