【发布时间】:2020-02-27 02:26:21
【问题描述】:
我正在尝试创建一个 AWS 事件(在 CloudWatch 或 EventBridge 中),以在将特定文件放入 S3 存储桶时触发 AWS Step Function 的运行。我的规则事件模式如下所示:
{
"source": [
"aws.s3"
],
"detail-type": [
"AWS API Call via CloudTrail"
],
"detail": {
"eventSource": [
"s3.amazonaws.com"
],
"eventName": [
"PutObject"
],
"requestParameters": {
"bucketName": [
"bucketname"
],
"key": [
"date={{TODAYS DATE}}/_SUCCESS"
]
}
}
}
理想情况下,我希望key 元素指向一个路径,其中TODAYS DATE 表示当前日期,_SUCCCESS 是一个空文件,一旦成功完成,我的工作就会打印到目录中(例如,如果今天是 2019 年 10 月 31 日,要检查的完整存储桶路径将是 bucketname/date=20191031/_SUCCESS)。最终目标是让 Event Rule 触发一个 Step Function,该函数控制许多其他日常作业,这些作业只有在将 _SUCCESS 文件输出到存储桶的第一个作业成功完成后才能运行。
最好我希望使用当天的当前日期对_SUCCESS 文件进行密钥检查。但是,如果没有好的方法来处理日期,如果有办法在将新目录放入存储桶时触发规则一次(例如,当目录date=XXXXXX 是创建)。每次将任何新文件放入存储桶时,我都无法激活触发器,因为初始作业将在 date=XXXXXX 目录中创建许多输出文件,这些文件用作以下作业的输入。
能够通过 AWS CloudFormation 创建此规则也将非常有帮助,因此如果 CloudFormation 有任何方法来处理这些问题,那就太好了。
提前感谢您的帮助,非常感谢。
【问题讨论】:
标签: amazon-web-services amazon-s3 amazon-cloudformation amazon-cloudwatch aws-step-functions