使用Boto3调用MTurk SendBonus偶发授权错误及限额问题求助
MTurk SendBonus 不定期触发 RequestError 的排查与解决
问题现象
我在用Boto3调用MTurk的SendBonus接口给工人发奖励时,会时不时碰到RequestError错误,具体报错内容如下:
Exception Type: RequestError,Exception Value: 调用SendBonus操作时出错(RequestError):该用户无权执行请求的操作。错误位置:/Users/chapkovski/mynewotree/lib/python3.5/site-packages/botocore/client.py的_make_api_call方法,第615行。
对应的调用代码片段:
response = client.send_bonus( WorkerId=self.WorkerId, BonusAmount=str(form.cleaned_data['bonus_amount']), AssignmentId=self.AssignmentId, Reason=form.cleaned_data['reason'], )
排查思路
因为这个操作并非每次都失败,而且我是在沙箱环境中测试,所以首先排除了账户资金不足的可能。结合“不定期触发”这个特性,我猜测大概率是MTurk存在某种每日奖励发放的限制规则。
问题根源(更新)
经过反复验证,终于找到错误的核心原因:MTurk限制单个工人每日可获得的奖励总额不得超过$100。当单日给同一工人发放的奖金达到这个上限后,再调用SendBonus就会触发这个带有误导性的“无权操作”错误提示。
内容的提问来源于stack exchange,提问作者Philipp Chapkovski
相关产品推荐
相关产品推荐

