イベント通知のタイプおよび送信先 - Amazon Simple Storage Service

イベント通知のタイプおよび送信先

Amazon S3 では、通知を発行できるいくつかのイベント通知のタイプと送信先がサポートされています。イベント通知を設定するときに、イベントタイプと送信先を指定できます。

サポートされるイベントタイプ

Amazon S3 は、次のタイプのイベントを発行できます。通知設定で、これらのイベントタイプを指定します。

イベントタイプ 説明

s3:TestEvent

通知が有効な場合、Amazon S3 はテスト通知を発行して、トピックが存在し、バケット所有者が指定したトピックを発行するアクセス権限を持っていることを確認します。

通知の有効化に失敗した場合、テスト通知を受信することはありません。

s3:ObjectCreated:*

s3:ObjectCreated:Put

s3:ObjectCreated:Post

s3:ObjectCreated:Copy

s3:ObjectCreated:CompleteMultipartUpload

PUT、POST、COPY などの Amazon S3 API はオブジェクトを作成できます。これらのイベントタイプを使用すると、特定の API を使用してオブジェクトが作成されたときに通知を有効にできます。または、s3:ObjectCreated:* イベントタイプを使用して、オブジェクトの作成に使用された API に関係なく、通知をリクエストできます。

失敗したオペレーションについてはイベント通知が送信されません。

s3:ObjectCreated:CompleteMultipartUpload には、コピーオペレーションの UploadPartCopy を使用して作成されたオブジェクトが含まれます。

s3:ObjectRemoved:*

s3:ObjectRemoved:Delete

s3:ObjectRemoved:DeleteMarkerCreated

[ObjectRemoved] イベントタイプを使用することで、オブジェクトまたはオブジェクトのバッチがバケットから削除されたときに通知を有効にできます。

[s3:ObjectRemoved:Delete] イベントタイプを使用することで、オブジェクトが削除されたとき、またはバージョニングが有効なオブジェクトが完全に削除されたときに通知が送信されるようにリクエストできます。または、[s3:ObjectRemoved:DeleteMarkerCreated] を使用することで、バージョニングが有効なオブジェクトに対して削除マーカーが作成されたとき通知が送信されるようにリクエストできます。バージョニングが有効なオブジェクトの削除については、「バージョニングが有効なバケットからのオブジェクトバージョンの削除」を参照してください。ワイルドカードとして s3:ObjectRemoved:* を使用することで、オブジェクトが削除されるたびに通知が送信されるようにリクエストできます。

ライフサイクルポリシーからの自動削除や失敗したオペレーションについては、イベント通知が送信されません。

s3:ObjectRestore:Post

s3:ObjectRestore:Completed

オブジェクトイベントタイプの復元を使用して、S3 Glacier ストレージクラスからオブジェクトを復元する際の開始および完了の通知を受け取ることができます。

s3:ObjectRestore:Post を使用して、オブジェクトの復元開始の通知をリクエストできます。s3:ObjectRestore:Completed を使用して、復元完了の通知をリクエストできます。

s3:ReducedRedundancyLostObject このイベントタイプを使用して、Amazon S3 が RRS ストレージクラスのオブジェクトが失われたことを検出したときに、通知メッセージをリクエストできます。
s3:Replication:OperationFailedReplication S3 レプリケーション時間コントロールを使用したレプリケーションの対象であったオブジェクトがレプリケートに失敗すると、この通知イベントが送信されます。さらに、S3 レプリケーションメトリクスが有効になっている場合は、この通知を受け取ります。
s3:Replication:OperationMissedThreshold S3 レプリケーション時間コントロールを使用したレプリケーションの対象であったオブジェクトが、レプリケーションの 15 分のしきい値を超えると、この通知イベントが送信されます。
s3:Replication:OperationReplicatedAfterThreshold S3 レプリケーション時間コントロールを使用したレプリケーションの対象であったオブジェクトが、15 分のしきい値の後でレプリケートされると、この通知イベントが送信されます。
s3:Replication:OperationNotTracked S3 レプリケーション時間コントロールを使用したレプリケーションの対象であったオブジェクトが、レプリケーションメトリクスによって追跡されなくなると、この通知イベントが送信されます。

サポートされているイベントの送信先

Amazon S3 は、次の宛先にイベントの通知メッセージを送信できます。通知設定でこれらの送信先の Amazon リソースネーム (ARN) 値を指定します。

  • Amazon Simple Notification Service (Amazon SNS) のトピック

  • Amazon Simple Queue Service (Amazon SQS) キュー

  • AWS Lambda 関数

Amazon SNS トピックまたは Amazon SQS キューにメッセージを投稿するには、Amazon S3 のアクセス許可を付与する必要があります。また、ユーザーに代わって AWS Lambda 関数を呼び出すためにも Amazon S3 のアクセス許可を付与する必要があります。これらのアクセス許可の付与については、「宛先にイベント通知メッセージを発行するアクセス許可の付与」を参照してください。

Amazon SNS トピック

Amazon SNS は、サブスクライブしているエンドポイントやクライアントへのメッセージの配信または送信の調整と管理を行います。Amazon SNS コンソールを使用して、通知の送信先にする Amazon SNS トピックを作成できます。

トピックは、Amazon S3 バケットと同じ AWS リージョン にある必要があります。Amazon SNS トピックの作成の詳細については、Amazon Simple Notification Service デベロッパーガイドの「Amazon SNS の開始方法」および「Amazon SNS のよくある質問」を参照してください。

イベント通知の送信先として作成した Amazon SNS トピックを使用するには、以下のものが必要です。

  • Amazon SNS トピックの ARN

  • 有効な Amazon SNS トピックのサブスクリプション (トピックのサブスクライバーは、メッセージが Amazon SNS トピックに発行されると通知を受け取ります)

Amazon SQS キュー

Amazon SQS には、コンピュータ間で送受信されるメッセージを格納するための、信頼性の高いスケーラブルなホストされたキューが用意されています。Amazon SQS コンソールを使用すると、通知の送信先にする Amazon SQS キューを作成できます。

Amazon SQS キューは、Amazon S3 バケットと同じリージョンに存在する必要があります。Amazon SQS キューの作成の詳細については、Amazon Simple Queue Service デベロッパーガイドの「Amazon Simple Queue Service とは」および「Amazon SQS の開始方法」を参照してください。

イベント通知の送信先として Amazon SQS キューを使用するには、以下が必要です。

  • Amazon SQS キューの ARN

Lambda 関数

AWS Lambda コンソールを使用すると、AWS インフラストラクチャを使用してユーザーに代わってコードを実行する Lambda 関数を作成できます。Lambda 関数は S3 バケットと同じリージョンに存在する必要があります。Lambda 関数をイベント通知の送信先として設定するには、Lambda 関数の名前または ARN も必要になります。

警告

通知が通知をトリガーするのと同じバケットに書き込むと、実行ループが発生する可能性があります。たとえば、オブジェクトがアップロードされるたびにバケットで Lambda 関数をトリガーし、その関数によってオブジェクトがバケットにアップロードされると、その関数によって間接的にその関数自体がトリガーされます。これを回避するには、2 つのバケットを使用するか、受信オブジェクトで使用されるプレフィックスにのみ適用されるようにトリガーを設定します。

AWS Lambda で Amazon S3 通知を使用する方法の詳細と例については、AWS Lambda デベロッパーガイド AWS Lambda を Amazon S3 に使用するを参照してください。