S3 バケット内のファイルを取得し、ファイルの内容に基づいて多くの処理とさらなるリクエストを行うワークフローがあります。現在、クライアントはファイルをアップロードした後、ワークフローを手動でトリガーする必要があります。これは私にとってかなり一般的な使用例のようですが、ファイルがアップロードされるとすぐにワークフローをトリガーする方法はありますか?
間に SNS 通知が必要だと思いますが、サービスがそれらを消費してワークフローを開始することなく、通知を SWF に直接送信する方法はありますか?
S3 バケット内のファイルを取得し、ファイルの内容に基づいて多くの処理とさらなるリクエストを行うワークフローがあります。現在、クライアントはファイルをアップロードした後、ワークフローを手動でトリガーする必要があります。これは私にとってかなり一般的な使用例のようですが、ファイルがアップロードされるとすぐにワークフローをトリガーする方法はありますか?
間に SNS 通知が必要だと思いますが、サービスがそれらを消費してワークフローを開始することなく、通知を SWF に直接送信する方法はありますか?
AWS はついに本日、 Amazon S3 の新しいイベント通知を開始しました。これは、実際には、PUT、POST、および COPY などの S3 API を介してオブジェクトを作成するための追加のイベント タイプを使用して、長く利用可能なPUT バケット通知API を単純に拡張するものです。
s3:ObjectCreated:*
s3:ObjectCreated:Put
s3:ObjectCreated:Post
s3:ObjectCreated:Copy
s3:ObjectCreated:CompleteMultipartUpload
[...] サービスがそれらを消費してワークフローを開始することなく、通知を SWF に直接送信する方法はありますか?
残念ながら、そのような方法はありません。実際には仲介サービスが必要です。PUTバケット通知は明らかに他のタイプのイベントも許可するように設計されていますが、Amazon S3はAmazon SNS通知をサポートしていません。今日の:
この PUT 操作の実装では、サブリソースを使用して
notification
、バケットの指定されたイベントの通知を有効にします。現在、このs3:ReducedRedundancyLostObject
イベントは通知でサポートされている唯一のイベントです。このs3:ReducedRedundancyLostObject
イベントは、Amazon S3 がオブジェクトのすべてのレプリカを失い、そのオブジェクトのリクエストを処理できなくなったことを検出したときにトリガーされます。[鉱山を強調]
Steffen Opel が言ったように、現時点ではこれを行う方法はありません。ただし、彼の最新の回答が提供した代替ルートは、AWS の新しいイベント処理サービスLambda (ATM はプレビュー段階) を使用することです。S3 用に構成する方法を示すドキュメントはこちらにありますが、概要は次のとおりです。