1

AWS 스텝 기능을 시험 중입니다. 나는 무엇을 만들려고 노력하고있다. AWS 스텝 함수 병렬

  1. 는 DynamoDB의 (https://user:[email protected], https://user2:[email protected], etc..) 각 도메인에서
  2. 에서 엔드 포인트의 목록을 가져옵니다, 나는 ID의 목록을 얻을. 결과의 각 ID에 대한
  3. /all, 나는 DynamoDB의에서
  4. 저장 결과 (병렬로 각 도메인에 한 번에 하나 개의 요청) REST 등 https://user:[email protected]/device/{id} 일련의 작업을 수행하고 결과를 중복 여부를 확인하려면 아닙니다.

나머지 호출을하고 dynamoDB 등으로 저장하는 방법을 알고 있습니다. 그러나 문제를 찾을 수 없거나 대답을 찾을 수 없습니다. dynamoDB에서 얻은 배열의 각 도메인에 대해 run/all을 병렬로 시작할 수 있습니까?

+0

https://github.com/caolan/async를 보았습니까? 특히'async.each'. – dzm

+0

의사 코드 : [시작 기능 단계] -> [람다 함수 1은 도메인 목록 가져 오기 -> SQS에 저장] -> [PARALLEL : 각 람다 함수 2는 SQS에서 하나의 도메인을 가져옵니다 -> 각 도메인에서 원하는 것을 처리합니다] > [최종 기능 단계] –

답변

2

단계 함수에 불변 상태가 있습니다. 일단 생성되면 변경할 수 없습니다. 이 사실을 감안할 때 병렬 상태에서 동적 인 지점 수를 가질 수 없습니다.

이 문제를 해결하려면 디자인에 조금 다르게 접근하고 싶을 것입니다. 단일 단계 기능으로이를 해결하는 대신 아래 그림과 같이 서로 다른 두 가지 상태 시스템으로 분리하는 것을 고려하십시오.

단계 기능 # 1 : 엔드 포인트의 목록

  1. 시작
  2. 작업 검색 : DynamoDB의
  3. 작업에서 엔드 포인트의 목록을 검색합니다 : 각 엔드 포인트 단계를 호출 기능 # 2 및 끝점 통과

선택적으로 상태 # 2와 # 3을 결합하여 상태 시스템과 작업 코드를 단순화 할 수 있습니다.

단계 기능 # 2 : REST API는

  1. 시작 호출 수행 - 가 입력 상태
  2. 작업 같은 단일 엔드 포인트를 취 REST의 시리즈 엔드 포인트에 대한 호출을 수행
  3. 작업 : 작업 상태를 통해 DynamoDB 결과가