Heroku 是一个支持多种编程语言的平台即服务(PaaS),它允许开发者快速部署和扩展应用程序。Amazon Mechanical Turk(MTurk)是亚马逊提供的一个众包市场,它允许请求者发布任务(HITs),工作者可以选择并完成任务以获取报酬。
将 Heroku 作为亚马逊 MTurk 的扩展是可行的,这意味着你可以在 Heroku 上部署应用程序,该应用程序可以与 MTurk API 交互,从而自动化任务分发、管理和结果收集等流程。
这种扩展通常属于以下类型:
boto3
库。以下是一个简单的 Python 示例,展示如何使用 boto3
库在 Heroku 上部署的应用程序中调用 MTurk API 来创建一个新的 HIT:
import boto3
from flask import Flask
app = Flask(__name__)
@app.route('/create_hit')
def create_hit():
mturk = boto3.client('mturk',
aws_access_key_id='YOUR_ACCESS_KEY',
aws_secret_access_key='YOUR_SECRET_KEY',
region_name='us-east-1')
new_hit = mturk.create_hit(
Title='Answer a simple question',
Description='Answer a simple question for a chance to earn money!',
Reward='0.10',
AssignmentDurationInSeconds=3600,
LifetimeInSeconds=86400,
MaxAssignments=1,
Question="""<?xml version="1.0"?>
<QuestionForm xmlns="http://mechanicalturk.amazonaws.com/AWSMechanicalTurkDataSchemas/2005-10-01/QuestionForm.xsd">
<Overview>
<Title>Answer a simple question</Title>
</Overview>
<Question>
<QuestionIdentifier>answer</QuestionIdentifier>
<DisplayName>What is 2 + 2?</DisplayName>
<IsRequired>true</IsRequired>
<QuestionContent>
<Text>What is 2 + 2?</Text>
</QuestionContent>
<AnswerSpecification>
<SelectionAnswer>
<StyleSuggestion>radiobutton</StyleSuggestion>
<Selections>
<Selection>
<SelectionIdentifier>4</SelectionIdentifier>
<Text>4</Text>
</Selection>
</Selections>
</SelectionAnswer>
</AnswerSpecification>
</Question>
</QuestionForm>"""
)
return f'HIT created: {new_hit["HIT"]["HITId"]}'
if __name__ == '__main__':
app.run()
请确保在实际部署时替换 YOUR_ACCESS_KEY
和 YOUR_SECRET_KEY
为你的 AWS 凭证,并且遵守所有相关的安全和隐私最佳实践。
领取专属 10元无门槛券
手把手带您无忧上云