기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
분산 맵을 사용하여 Amazon S3의 CSV 파일 처리
이 샘플 프로젝트는 분산 맵 상태를 사용하여 생성된 CSV 파일의 10,000개 이상의 행을 반복하는 방법을 보여줍니다.Lambda 함수. 이 CSV 파일은 고객 주문의 배송 정보를 포함하며 Amazon S3 버킷에 저장됩니다. 분산 맵은 데이터 분석을 위해 CSV 파일에서 10개 행으로 구성된 배치를 반복합니다.
분산 맵에는 다음이 포함됩니다.Lambda 지연된 주문을 감지하는 함수입니다. 또한 Distributed Map에는 지연된 주문을 일괄 처리하고 이러한 지연된 주문을 배열로 반환하는 Inline Map도 포함되어 있습니다. 지연된 각 주문에 대해 인라인 맵은 다음 주소로 메시지를 보냅니다.Amazon SQS 대기열. 마지막으로, 이 샘플 프로젝트는 Map Run 결과를 사용자의 다른 Amazon S3 버킷에 저장합니다. AWS 계정.
Distributed Map을 사용하면 하위 워크플로 실행을 한 번에 최대 10,000개까지 동시에 실행할 수 있습니다. 이 샘플 프로젝트에서 Distributed Map의 최대 동시성은 1,000개로 설정되어 있으며 이 경우 하위 워크플로 동시 실행은 1,000개로 제한됩니다.
이 샘플 프로젝트는 상태 머신을 생성하고 지원하는 AWS 리소스 및 관련 IAM 권한 구성 이 샘플 프로젝트를 살펴보고 Distributed Map을 사용하여 대규모 병렬 워크로드를 오케스트레이션하는 방법을 알아보거나 자체 프로젝트의 시작점으로 사용합니다.
AWS CloudFormation 템플릿 및 추가 리소스
CloudFormation 템플릿을 사용하여 이 샘플 프로젝트를 배포합니다. 이 템플릿은 사이트에 다음과 같은 리소스를 생성합니다. AWS 계정:
-
Step Functions 상태 시스템
-
상태 시스템에 대한 실행 역할. 이 역할은 상태 머신이 다른 시스템에 액세스하는 데 필요한 권한을 부여합니다. AWS 서비스 및 Lambda 함수의 호출 작업과 같은 리소스
-
고객 주문 세부 정보가 포함된 파일을 생성하는
CSVGeneratorFunction
CSV 이름이 지정된 Lambda 함수 -
CSV생성기 Lambda 함수의 실행 역할. 이 역할은 함수에 다른 함수에 액세스할 수 있는 권한을 부여합니다. AWS 서비스.
-
생성된 CSV 파일을 저장하는 Amazon S3 입력 버킷입니다.
-
지연된 주문 감지 Lambda 함수는 파일 데이터를 분석하고 CSV 지연된 주문을 감지합니다.
-
지연된 주문 Lambda 함수에 대한 실행 역할. 이 역할은 함수에 다른 함수에 액세스할 수 있는 권한을 부여합니다. AWS 서비스.
-
고객 주문의 분석 결과를 저장하는 Amazon S3 출력 버킷
-
지연된 모든 주문에 대해 Step Functions가 메시지를 보내는 Amazon SQS 대기열입니다. 이 메시지에는 IDs 고객 및 주문 정보가 포함됩니다.
-
상태 머신의 실행 기록과 관련된 정보를 저장하는 CloudWatch 로그 그룹입니다.
중요
각 서비스마다 표준 요금이 적용됩니다.
1단계: 상태 시스템 만들기 및 리소스 프로비저닝
Step Functions 콘솔
을 열고 상태 시스템 생성을 선택합니다. 검색 상자에 입력한 다음 Distributed Map을 선택하여 반환된 검색 결과에서 S3로 CSV 파일을 처리합니다.
Distributed Map to process a CSV file in S3
-
다음을 선택하여 계속 진행합니다.
-
데모 실행을 선택하여 읽기 전용 및 ready-to-deploy 워크플로를 생성하거나, 빌드 온을 선택하여 빌드하고 나중에 배포할 수 있는 편집 가능한 상태 시스템 정의를 생성합니다.
이 샘플 프로젝트에 생성될 리소스에 대한 자세한 내용은 AWS CloudFormation 템플릿 및 추가 리소스 섹션을 참조하세요.
다음 이미지는 S3 샘플 프로젝트에서 CSV 파일을 처리하기 위한 분산 맵의 워크플로 그래프를 보여줍니다.
-
템플릿 사용을 선택하여 계속 선택합니다.
다음 단계는 이전 선택에 따라 달라집니다.
-
데모 실행 — 에서 배포한 리소스로 읽기 전용 프로젝트를 만들기 전에 상태 머신을 검토할 수 있습니다. AWS CloudFormation 다음 연락처로 AWS 계정.
상태 머신 정의를 볼 수 있으며 준비가 되면 Deploy and run을 선택하여 프로젝트를 배포하고 리소스를 생성할 수 있습니다.
배포하는 데 리소스 및 권한을 생성하는 데 최대 10분이 걸릴 수 있습니다. Stack ID 링크를 사용하여 진행 상황을 모니터링할 수 있습니다. AWS CloudFormation.
배포가 완료되면 콘솔에서 새 상태 머신을 확인할 수 있습니다.
-
기반 구축 — 워크플로 정의를 검토하고 편집할 수 있습니다. 사용자 지정 워크플로를 실행하기 전에 샘플 프로젝트에서 자리 표시자의 값을 설정해야 할 수도 있습니다.
참고
계정에 배포된 서비스에는 표준 요금이 적용될 수 있습니다.
2단계: 상태 시스템 실행
모든 리소스가 프로비저닝되고 배포된 후에 상태 시스템을 실행할 수 있습니다.
-
상태 시스템 페이지에서 샘플 프로젝트를 선택합니다.
-
샘플 프로젝트 페이지에서 실행 시작을 선택합니다.
-
실행 시작 대화 상자에서 다음을 수행합니다.
-
(선택 사항) 샘플 프로젝트를 실행하려면 입력 값을 JSON 형식으로 입력합니다.
데모 실행을 선택한 경우에는 실행 입력을 제공할 필요가 없습니다.
참고
배포한 데모 프로젝트에 미리 채워진 실행 입력 데이터가 포함되어 있는 경우 해당 입력을 사용하여 상태 시스템을 실행하세요.
-
실행 시작을 선택합니다.
-
(선택 사항) Step Functions 콘솔은 실행 ID가 제목인 페이지로 이동합니다. 이 페이지를 실행 세부 정보 페이지라고 합니다. 실행이 진행되는 동안 또는 완료된 후에 이 페이지에서 실행 결과를 검토할 수 있습니다.
실행이 완료되면 그래프 보기에서 개별 상태를 선택한 다음 단계 세부 정보 창에서 개별 탭을 선택하여 입력, 출력 및 정의 등 각 상태의 세부 정보를 각각 봅니다.
-
실행 세부 정보 페이지에서 볼 수 있는 실행 정보에 대한 자세한 내용은 실행 세부 정보 개요 섹션을 참조하세요.
-
콘솔에서 Distributed Map 상태 실행을 보는 방법에 대한 자세한 내용은 맵 런 보기 섹션을 참조하세요.
-
-
(선택 사항) Amazon S3 버킷으로 내보낸 실행 결과를 검토합니다. 이러한 결과에는 실행 입력 및 출력ARN, 실행 상태 등의 데이터가 포함됩니다. 자세한 내용은 ResultWriter (지도) 단원을 참조하십시오.
-