別のAWSアカウントのS3バケット内のファイルの変更によってトリガーされるイベントルールを作成しようとしています。詳細は こちら
これまでのところ、ルールは正確なファイル名で問題なく機能しますが、ファイル名のプレフィックスで機能させる必要があります。実際の例では、ファイル名は実際の例では正確な文字列であり、ファイル名はワイルドカードです。 CloudWatchイベントルールのJSONパターンはワイルドカードをサポートしていますか?
作業構成:
{
"source": ["aws.s3"],
"account": ["1111111xxxxx"],
"detail": {
"eventSource": ["s3.amazonaws.com"],
"eventName": ["PutObject"],
"requestParameters": { "bucketName": ["mybucket"], "key": ["myfile-20180301.csv"] }
}
}
非稼働構成:
{
"source": ["aws.s3"],
"account": ["1111111xxxxx"],
"detail": {
"eventSource": ["s3.amazonaws.com"],
"eventName": ["PutObject"],
"requestParameters": { "bucketName": ["mybucket"], "key": ["myfile-*"] }
}
}
たとえば、prefixのように コンテンツベースのフィルタリング (2020年2月にリリース)を使用して、このための素晴らしいソリューションを見つけました。
したがって、あなたの場合、解決策は次のようになります:
{
"source": ["aws.s3"],
"account": ["1111111xxxxx"],
"detail": {
"eventSource": ["s3.amazonaws.com"],
"eventName": ["PutObject"],
"requestParameters": {
"bucketName": ["mybucket"],
"key": ["myfile-*"]
}
}
}
回避策は、*。csvファイルをPUT/COPYして別のバケットを作成し、「key」パラメータを削除することです。これにより、そのバケットでの* .csvファイル操作でCloud Watchがトリガーされます。別の理由として、キーがすでにクラウドトレイルに設定されているのに、なぜクラウドウォッチイベントパターンにキーが表示されるのかわかりません。
CloudTrailを介してCloudwatchに関連するイベント をログに記録すると、Cloudwatchメトリックフィルター ワイルドカードマッチングを使用 を使用し、そのフィルターでCloudwatchイベントを作成できます。