【问题标题】:TaskQueue equivalent in AWSAWS 中的等效任务队列
【发布时间】:2017-08-19 01:23:05
【问题描述】:

从 App Engine 转移到 AWS/Beanstalk,我有一个 PHP 服务器,它将异步后处理上传的文件。

在 App Engine 中,我所要做的就是:

(new PushTask('/workerRoute', $taskParams))->add();

一旦文件上传,异步工作者操作就会被执行。

我想知道在 AWS/Beanstalk 中是否有这样的 easy/simple 等价物?

我在 AWS 中的解决方案远非简单。
据我所知,我需要:

  1. 创建工作环境
    • 上传代码库
    • 拥有管理员同步权限,以便机器进行通信
  2. 创建专用 SQS 队列
  3. 创建一个 S3 存储桶规则,该规则将在文件上传时向上述 SQS 发布一条消息
  4. 让工作人员处理 SQS 消息
    • 由于我无法控制参数,我需要以某种方式将它们嵌入到 S3 文件路径中,然后将它们提取到 worker 中

我们将不胜感激对类似 TaskQueue 行为的任何简化。 10 倍。

【问题讨论】:

    标签: php amazon-web-services google-app-engine task-queue amazon-elastic-beanstalk


    【解决方案1】:

    您可以像使用 AppEngine 一样从脚本推送消息:http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-sqs.html 您的 $taskParamsmessageBody

    【讨论】:

    • 我之前发现我可以让文件上传到我的网络服务器,当文件上传时,使用 putObject() 将其转移到 S3,然后放置一条包含我需要的所有参数的 SQS 消息包装为 JSON 有效负载。尽管如此,没有办法自动完成推送处理程序 - 我仍然需要为那部分提升一台工作机器,对吧?
    • 取决于您的用例。 s3 可以向 SQS 或 Lambda 发送事件。如果您觉得 s3 事件有足够的信息让您的工作人员处理它,您可以按照问题中的描述进行操作。拥有一个单独的“上传器”服务,您可以更灵活地使用您在文件上传时获得的额外数据构建 SQS 消息。
    • 好吧,+1 + 接受的答案基于我没有看到比 web-server + worker 更短的路线以及您确实提供了改进的事实。谢谢。
    猜你喜欢
    • 2023-03-19
    • 2011-12-13
    • 1970-01-01
    • 1970-01-01
    • 2014-01-21
    • 1970-01-01
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    相关资源
    最近更新 更多