Step Functions 워크플로의 항목에 대한 동시 반복 - AWS Step Functions

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

Step Functions 워크플로의 항목에 대한 동시 반복

이전 병렬 작업 정의 항목에서는 Parallel 상태를 사용하여 별도의 단계 분기를 병렬로 실행하는 방법을 배웠습니다. Map 상태를 사용하면 데이터 세트의 항목마다 일련의 워크플로 단계를 실행할 수 있습니다. Map 상태 반복은 동시에 실행되므로 데이터 세트를 빠르게 처리할 수 있습니다.

워크플로에 Map 상태를 포함하면 인라인 모드와 분산 모드 등 두 Map 상태 처리 모드 중 하나를 사용하여 데이터 처리와 같은 작업을 수행할 수 있습니다. 상태를 구성하려면 Map Map 상태 처리 모드와 해당 정의를 지정하는 JSON 객체가 포함된 ItemProcessor an을 정의해야 합니다. 최대 40개의 동시 반복을 지원하는 기본 인라인 모드에서 Map 상태를 실행합니다. 분산 모드에서 Map 상태를 실행하면 병렬 하위 워크플로 실행이 최대 10,000개까지 지원됩니다.

워크플로 실행이 Map 상태로 전환되면 상태 입력에 지정된 JSON 배열을 기준으로 반복됩니다. 배열 항목마다 반복은 Map 상태가 포함된 워크플로의 컨텍스트에서 실행됩니다. 모든 반복이 완료되면 Map 상태는 ItemProcessor에서 처리한 각 항목의 출력이 포함된 배열을 반환합니다.

인라인 모드에서는 Map 주를 사용하여 신용 조사 기관 세트를 반복하여 신청자의 신용 점수를 가져올 수 있습니다. 이렇게 하려면 먼저 Amazon DynamoDB 테이블에 저장된 모든 신용 조사 기관의 이름을 가져온 다음 Map 상태를 사용하여 신용 조사 기관 목록을 반복해 각 신용 조사 기관에서 보고한 신청자의 신용 점수를 가져옵니다.

1단계: 모든 신용 조사 기관의 이름을 저장할 DynamoDB 테이블 만들기

이 단계에서는 DynamoDB 콘솔을 사용하여 GetCreditBureau 테이블을 만듭니다. 테이블은 문자열 속성 이름파티션 키로 사용합니다. 이 테이블에 신청자의 신용 점수를 가져오려는 모든 신용 조사 기관의 이름을 저장합니다.

  1. 에 AWS Management Console 로그인하고 에서 DynamoDB 콘솔을 엽니다. https://console.aws.amazon.com/dynamodb/

  2. 콘솔의 탐색 창에서 테이블을 선택한 다음 테이블 생성을 선택합니다.

  3. 다음과 같이 테이블 세부 정보를 입력합니다.

    1. 테이블 이름GetCreditBureau을 입력합니다.

    2. 파티션 키Name을 입력합니다.

    3. 모든 기본 선택 항목을 그대로 두고 테이블 생성을 선택합니다.

  4. 테이블이 생성된 후 테이블 목록에서 테이블을 선택합니다. GetCreditBureau

  5. 작업, 항목 생성을 차례대로 선택합니다.

  6. 에 신용 조사 기관 이름을 입력합니다. 예: CredTrack.

  7. 항목 생성을 선택합니다.

  8. 이 프로세스를 반복하여 다른 신용 조사 기관 이름에 대한 항목을 만듭니다. 예: KapFinnCapTrust.

2단계: 상태 시스템 업데이트 - DynamoDB 테이블에서 결과 가져오기

Step Functions 콘솔에서 Task 상태를 추가하고 AWS SDK통합을 사용하여 1단계에서 만든 DynamoDB 테이블에서 신용 조사 기관의 이름을 가져올 수 있습니다. 이 단계의 출력을 워크플로에서 나중에 추가할 Map 상태의 입력으로 사용하게 됩니다.

  1. CreditCardWorkflow상태 머신을 열어 업데이트합니다.

  2. Get list of credit bureaus 상태를 선택합니다.

  3. API파라미터의 경우 테이블 이름 값을 로 지정합니다GetCreditBureau.

3단계: 모든 신용 조사 기관의 신용 점수를 반환하는 Lambda Functions 만들기

이 단계에서는 모든 신용 조사 기관 이름을 입력으로 수신하고 각 신용 조사 기관의 신청자 신용 점수를 반환하는 Lambda 함수를 만듭니다. 이 Lambda 함수는 Map 워크플로에 추가할 상태에서 호출됩니다.

  1. Node.js 16.x Lambda 함수를 만들고 이름을 get-credit-score로 지정합니다.

  2. 제목이 붙은 get-credit-score페이지에서 다음 코드를 코드 소스 영역에 붙여넣습니다.

    function getScore(arr) { let temp; let i = Math.floor((Math.random() * arr.length)); temp = arr[i]; console.log(i); console.log(temp); return temp; } const arrScores = [700, 820, 640, 460, 726, 850, 694, 721, 556]; exports.handler = (event, context, callback) => { let creditScore = getScore(arrScores); callback(null, "Credit score pulled is: " + creditScore + "."); };
  3. Lambda 함수를 배포합니다.

4단계: 상태 시스템 업데이트 - 신용 점수를 반복적으로 가져오도록 Map 상태 추가

Step Functions 콘솔에서 get-credit-scoreLambda 함수를 호출하여 신용 조사 기관 목록 가져오기 Map 상태에서 반환된 모든 신용 조사 기관의 신용 점수를 확인하는 상태를 추가합니다.

  1. 상태 머신을 열어 업데이트하십시오. CreditCardWorkflow

  2. Get scores from all credit bureaus 상태를 선택합니다.

  3. 구성 탭에서 항목 배열에 대한 경로 제공을 선택한 다음 $.Items를 입력합니다.

  4. Map 상태 내에서 Get all scores 단계를 선택합니다.

  5. 구성 탭에서 통합 유형최적화가 선택되어 있는지 확인합니다.

  6. 함수 이름에 get-credit-scoreLambda 함수 이름을 입력하기 시작하고 나타나는 드롭다운 목록에서 해당 함수를 선택합니다.

  7. 페이로드페이로드 없음을 선택합니다.

다음 단계

다음 단계에서는 워크로드 실행 워크플로를 실행하는 방법을 배우게 됩니다.