AWS Lambdaを使用して、S3のオブジェクトが3つ作成された際にメールを送信する関数を作成する手順は以下の通りです。
- Lambda関数を作成する AWSマネジメントコンソールにログインし、Lambda関数を作成します。ランタイムはPython 3.7を選択します。
- S3バケットに対するイベントトリガーを作成する S3バケットに対するイベントトリガーを作成し、Lambda関数をトリガーとして設定します。イベントトリガーの条件として、オブジェクトの作成イベントを選択し、プレフィックスやサフィックスなどの追加フィルターを設定します。
- メール通知用のSNSトピックを作成する AWS SNS(Simple Notification Service)を使用して、メール通知用のトピックを作成します。トピックには、通知を受信するメールアドレスをサブスクライブする必要があります。
- Lambda関数に必要なライブラリを追加する Lambda関数に必要なライブラリ(boto3、aws-sdkなど)をインストールします。
- 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
- Lambda関数をテストする Lambda関数をテストして、指定されたS3バケットにオブジェクトを追加して、関数が正常に実行されることを確認します。
これらの手順を実行することで、S3のオブジェクトが3つ作成された際にメールを送信するLambda関数を作成することができます。