AWS Lambdaを使用して、S3のオブジェクトが3つ作成された際にメールを送信する関数を作成する手順は以下の通りです。

  1. Lambda関数を作成する AWSマネジメントコンソールにログインし、Lambda関数を作成します。ランタイムはPython 3.7を選択します。
  2. S3バケットに対するイベントトリガーを作成する S3バケットに対するイベントトリガーを作成し、Lambda関数をトリガーとして設定します。イベントトリガーの条件として、オブジェクトの作成イベントを選択し、プレフィックスやサフィックスなどの追加フィルターを設定します。
  3. メール通知用のSNSトピックを作成する AWS SNS(Simple Notification Service)を使用して、メール通知用のトピックを作成します。トピックには、通知を受信するメールアドレスをサブスクライブする必要があります。
  4. Lambda関数に必要なライブラリを追加する Lambda関数に必要なライブラリ(boto3、aws-sdkなど)をインストールします。
  5. Lambda関数のコードを記述する 以下のPythonコードをLambda関数にコピー&ペーストします。このコードは、S3バケットの指定されたオブジェクトの数が3に達した場合に、指定されたメールアドレスに通知を送信します。

 

import boto3

def lambda_handler(event, context):
    s3 = boto3.client('s3')
    sns = boto3.client('sns')
    bucket = event['Records'][0]['s3']['bucket']['name']
    key = event['Records'][0]['s3']['object']['key']
    objects = s3.list_objects_v2(Bucket=bucket)
    count = objects['KeyCount']
    if count == 3:
        message = "S3 bucket {} now contains 3 objects".format(bucket)
        subject = "S3 bucket object count alert"
        response = sns.publish(
            TopicArn='arn:aws:sns:us-east-1:123456789012:my-notification-topic',
            Message=message,
            Subject=subject
        )
        return response

 

  1. Lambda関数をテストする Lambda関数をテストして、指定されたS3バケットにオブジェクトを追加して、関数が正常に実行されることを確認します。

これらの手順を実行することで、S3のオブジェクトが3つ作成された際にメールを送信するLambda関数を作成することができます。

 

記事タイトル検索