如何为未知HITType的新HIT设置MTurk API通知?
解决方案
方法1:预创建HITType并使用CreateHITWithHITType
- 先调用
CreateHITType生成固定的HITTypeID,提前通过UpdateNotificationSettings给该ID配置好SNS/SQS通知。 - 后续所有新HIT都通过
CreateHITWithHITType操作创建,指定这个预生成的HITTypeID。这样所有基于该HITType创建的HIT都会触发预设的通知,无需每次手动配置。 - 这是官方支持的标准流程,很多开发者因习惯使用自动生成HITType的
CreateHIT而忽略了这个选项。
方法2:用CloudTrail + Lambda实现全局监听
- AWS CloudTrail会记录所有MTurk API调用事件,包括
CreateHIT。通过以下步骤可实现全局监听新HIT创建:- 开启CloudTrail事件记录,确保涵盖MTurk的API操作(注意MTurk属于全球区域,需在对应区域配置)。
- 创建Lambda函数,编写逻辑解析CloudTrail传来的
CreateHIT事件——事件中会包含新HIT的HITId、HITTypeId等元数据。 - 配置CloudTrail将事件发送至EventBridge,或直接关联Lambda与CloudTrail的S3存储桶(当有新日志文件生成时触发Lambda)。
- 在Lambda函数内,可根据需求将HIT信息转发至SNS/SQS,或直接执行后续业务逻辑。
- 该方案无需依赖HITTypeID,可捕获所有通过API创建的HIT,无论使用
CreateHIT还是CreateHITWithHITType。
方法3:轮询MTurk API(兜底方案)
- 若上述方案无法使用,可定期调用
ListHITsAPI,通过CreationTime参数筛选近期创建的HIT,对比本地存储的HIT列表识别新增条目。 - 此方法存在延迟,且频繁调用可能触发API限流,仅适合HIT创建频率较低的场景。
内容的提问来源于stack exchange,提问作者David M. Perlman
相关产品推荐
相关产品推荐

