Amazon web services 如何并行运行AWS胶水作业?

Amazon web services 如何并行运行AWS胶水作业?,amazon-web-services,parallel-processing,cloud,amazon-sqs,aws-glue,Amazon Web Services,Parallel Processing,Cloud,Amazon Sqs,Aws Glue,我想并行运行我的胶水作业。 基本上,我从Step函数开始我的粘合工作,这取决于完成之前的状态,即Lambda将MSG放在SQS上。然后我的胶水工作是从SQS一个接一个地取味精。 我想通过并行运行来加快胶水作业的处理速度 在Step函数中,我可以看到两种实现并行性的方法: “地图”状态 “平行”状态 根据AWS文档:“当并行状态使用相同的输入执行多个步骤分支时,映射状态将对状态输入中数组的多个条目执行相同的步骤。” 但是,在我的例子中,Step函数中的“输入”是无用的,因为我使用的是SQS。

我想并行运行我的胶水作业。 基本上,我从Step函数开始我的粘合工作,这取决于完成之前的状态,即Lambda将MSG放在SQS上。然后我的胶水工作是从SQS一个接一个地取味精。 我想通过并行运行来加快胶水作业的处理速度

在Step函数中,我可以看到两种实现并行性的方法:

  • “地图”状态
  • “平行”状态
根据AWS文档:“当并行状态使用相同的输入执行多个步骤分支时,映射状态将对状态输入中数组的多个条目执行相同的步骤。”

但是,在我的例子中,Step函数中的“输入”是无用的,因为我使用的是SQS。 当使用“并行”状态时,我需要在状态机中复制相同的“步骤”。。(代码重复),当使用“映射”状态时,我需要创建某种人工数组来强制并行。 不确定我是否理解正确,或者是否有其他方法。
请建议和帮助

在状态机中使用映射状态时,不需要创建“人工数组”,因为SQS本身不允许将一条消息同时传递给多个客户端,并且无论从同一SQS队列轮询多少个粘合作业,您的消息一次只能由一个粘合作业处理


您必须注意的一件事是SQS可见性超时,即消息传递给一个客户机后,对客户机不可见的时间。请始终保持可见性超时大于单个消息的处理时间,以便粘合作业在传递给其他作业之前将其删除。失败时,它会安全地传递到另一个作业或同一个作业以供重试。

谢谢,但当说“人工数组”时,我的意思是“映射”状态的工作原理是:它需要一个输入数据数组,然后它会自动创建并行任务,并将输入数据拆分到其中。因此,为了以这种方式实现并行性,因为我实际上没有使用任何来自状态机定义的输入数据(因为在Map中不支持SQS作为输入),所以我需要一个人工数组来强制并行性。@Kamil,感谢您的澄清。