AWSのLambdaを実行する方法を解説します。
Lambdaはプログラムを実行するときだけ起動および課金されるため、常時起動が必要なEC2を構築する場合に比べてコストを抑えることができます。
IAMロールの用意
LambdaからRDSへアクセスできように、IAMロールを用意します。
基本的なIAMロールの追加方法は、こちらの「IAMポリシーの追加」「IAMロールの追加」を参考にして下さい。
IAMポリシーは以下のように設定します。
Lambdaの追加
AWSマネージメントコンソール > サービス > Lambda > 関数で、(Lambda)関数の作成します。
AWSマネージメントコンソール上で実装
AWSマネージメントコンソール上で実装・実行する方法です。
ローカル環境で実装
ローカル環境で実装し、AWSへアップロードして実行する方法です。
ローカル環境でのLambda用Python環境の構築方法はこちらを参考にして下さい。
「C:\lambda\lambda_function.py」ファイルを作成し、以下のように記載します。
import json
def lambda_handler(event, context):
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
「C:\lambda」内のファイル群を圧縮してZIPファイルをつくります。
S3へアップロード・Lambdaへ適用
AWSマネージメントコンソール > サービス > S3 > バケットで、バケットを作成します。
同バケットに前述のZIPファイルをアップロードします。
アップロードしたZIPファイルの保存場所(URL)を控えておきます。
Lambdaのコードで、アップロードしたZIPファイルを指定するようにします。
動作確認
テストでアップロードしたコードを実行することができます。
ファイル名・関数名の変更
Lambdaで実行するPythonのファイル名と関数名は以下で指定することができます。
ローカルで用意したファイルが「lambda_function.py」、関数名が「lambda_handler()」であれば、Lambdaでは上図のように「lambda_function.lambda_handler」と指定します。Lambdaではこの名前での指定がデフォルトです。
デフォルトから変えたい場合、例えば、ローカルで用意したファイルが「lambda_hoge.py」、関数名が「lambda_hoge()」であれば、Lambdaでは上「lambda_hoge.lambda_hoge」のように指定します。