😇

aws-lambda-powertools-pythonという存在を知った

2023/05/02に公開

背景

Amazon API Gateway + AWS Lambdaのサーバーレス構成のAPIにおけるLambdaハンドラーで、入力パラメーターをチェックする例です。
うーん、これは直感的にイケてないですね。

def lambda_handler(event, context):
    # bodyに含まれるパラメーターチェック
    json_body = json.loads(event['body'])
    if 'input_parameter1' not in json_body:
        return {'statusCode': 400, 'body': 'missing key input_parameter1'}
    input_parameter1 = json_body['input_parameter1']

    if 'input_parameter2' not in json_body:
        return {'statusCode': 400, 'body': 'missing key input_parameter2'}
    input_parameter2 = json_body['input_parameter2']

    if 'input_parameter3' not in json_body:
        return {'statusCode': 400, 'body': 'missing key input_parameter3'}
    input_parameter3 = json_body['input_parameter3']

調べてみた

https://www.ranthebuilder.cloud/post/aws-lambda-cookbook-elevate-your-handler-s-code-part-5-input-validation

You will learn how to process your event input in a safe and resilient manner so you can focus on the things that matter the most, your business logic.
(イベント入力を安全かつ回復力のある方法で処理する方法を学び、最も重要なことであるビジネス ロジックに集中できるようにします。)

aws_lambda_powertools!?

https://awslabs.github.io/aws-lambda-powertools-python/2.14.1/
https://github.com/awslabs/aws-lambda-powertools-python

強そうな名前ですが、機能も強く、バリデーションモジュールなど様々な機能を有するライブラリで、Lambda作成時に役立つようです。
機能詳細については、以下の入門記事にわかりやすく説明されています。

https://aws.amazon.com/jp/builders-flash/202203/lambda-powertools-python-1/?awsf.filter-name=*all

GitHubで編集を提案

Discussion