기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
생성 및 관리 Amazon EMR Serverless Step Functions를 사용하는 애플리케이션
Step Functions를 사용하여 EMR Serverless에서 애플리케이션을 생성, 시작, 중지 및 삭제하는 방법을 알아봅니다. 이 페이지에는 지원되는가 나열되어 APIs 있으며 일반적인 사용 사례를 수행하기 위한 예제 Task
상태가 나와 있습니다.
Step Functions의 AWS 서비스와 통합하는 방법에 대한 자세한 내용은 서비스 통합 및 단원을 참조하십시오Step FunctionsAPI의 서비스에 파라미터 전달.
Optimized의 주요 기능 EMR Serverless 통합
-
최적화 EMR Serverless 서비스 통합에는 기본를 래핑APIs하는 사용자 지정 집합이 있습니다.EMR Serverless APIs. 이러한 사용자 지정으로 인해는 최적화되었습니다.EMR Serverless 통합은 서비스 통합과 AWS SDK 크게 다릅니다.
-
또한 최적화된 EMR Serverless 통합은 작업 실행(.sync) 통합 패턴을 지원합니다.
-
작업 토큰을 사용하여 콜백 대기 통합 패턴은 지원되지 않습니다.
EMR Serverless 서비스 통합 APIs
통합하려면 AWS Step Functions with EMR Serverless, 다음 6개를 사용할 수 있습니다.EMR Serverless 서비스 통합 APIs. 이러한 서비스 통합APIs은 해당와 유사합니다.EMR Serverless APIs, 전달된 필드와 반환된 응답에서 약간의 차이점이 있습니다.
다음 표에서는 각의 차이점을 설명합니다.EMR Serverless 서비스 통합 API 및 해당 EMR Serverless API.
EMR Serverless 서비스 통합 API | 해당 EMR Serverless API | 차이 |
---|---|---|
createApplication 애플리케이션을 생성합니다. EMR Serverless 는 고유한 유형의에 연결됩니다.IAM 서비스 연결 역할이라고 하는 역할입니다. |
CreateApplication | 없음 |
createApplication.sync 애플리케이션을 생성합니다. |
CreateApplication |
의 요청과 응답 간에 차이가 없음 EMR Serverless API 및 EMR Serverless 서비스 통합 API. 그러나 createApplication.sync는 애플리케이션이 |
startApplication 지정된 애플리케이션을 시작하고 구성된 경우 애플리케이션의 초기 용량을 초기화합니다. |
StartApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
|
startApplication.sync 지정된 애플리케이션을 시작하고 구성된 경우 초기 용량을 초기화합니다. |
StartApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
또한 startApplication.sync는 애플리케이션이 |
stopApplication 지정된 애플리케이션을 중지하고 구성된 경우 초기 용량을 해제합니다. 애플리케이션을 중지하기 전에 예약되고 실행 중인 모든 작업을 완료하거나 취소해야 합니다. |
StopApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
|
stopApplication.sync 지정된 애플리케이션을 중지하고 구성된 경우 초기 용량을 해제합니다. 애플리케이션을 중지하기 전에 예약되고 실행 중인 모든 작업을 완료하거나 취소해야 합니다. |
StopApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
또한 stopApplication.sync는 애플리케이션이 |
deleteApplication 애플리케이션을 삭제합니다. 애플리케이션을 삭제하려면 애플리케이션이 |
DeleteApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
|
deleteApplication.sync 애플리케이션을 삭제합니다. 애플리케이션을 삭제하려면 애플리케이션이 |
DeleteApplication |
.EMR Serverless API 응답에는 데이터가 포함되지 않지만 EMR Serverless 서비스 통합 API 응답에는 다음 데이터가 포함됩니다.
또한 stopApplication.sync는 애플리케이션이 |
startJobRun 작업 실행을 시작합니다. |
StartJobRun | 없음 |
startJobRun.sync 작업 실행을 시작합니다. |
StartJobRun |
의 요청과 응답 간에 차이가 없음 EMR Serverless API 및 EMR Serverless 서비스 통합 API. 그러나 startJobRun.sync는 애플리케이션이 |
cancelJobRun 작업 실행을 취소합니다. |
CancelJobRun | 없음 |
cancelJobRun.sync 작업 실행을 취소합니다. |
CancelJobRun |
의 요청과 응답 간에 차이가 없음 EMR Serverless API 및 EMR Serverless 서비스 통합 API. 그러나 cancelJobRun.sync는 애플리케이션이 |
EMR 서버리스 통합 사용 사례
최적화 EMR Serverless 서비스 통합에서는 단일 애플리케이션을 생성한 다음 해당 애플리케이션을 사용하여 여러 작업을 실행하는 것이 좋습니다. 예를 들어 단일 상태 시스템에서는 여러 startJobRun 요청을 포함할 수 있으며, 모두 동일한 애플리케이션을 사용합니다. 다음 Task 워크플로 상태 상태 예제에서는 통합 사용 사례를 보여줍니다.EMR Serverless APIs와 함께 Step Functions. 의 기타 사용 사례에 대한 자세한 내용은 EMR Serverless, 정의 참조 Amazon EMR Serverless.
작은 정보
와 통합되는 상태 시스템의 예를 배포하려면 EMR Serverless 에서 여러 작업을 실행하려면 섹션을 AWS 계정참조하세요실행 EMR Serverless job.
구성에 대해 알아보려면 IAM 사용 시 권한 Step Functions 다른 AWS 서비스와 함께를 참조하세요Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법.
다음 사용 사례에 표시된 예제에서 italicized
텍스트를 리소스별 정보로 바꿉니다. 예를 들어를의 IDyourApplicationId
로 바꿉니다.EMR Serverless 와 같은 애플리케이션00yv7iv71inak893
.
애플리케이션 만들기
다음 태스크 상태 예제는 createApplication.sync 서비스 통합을 사용하여 애플리케이션을 생성합니다API.
"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Parameters": { "Name": "
MyApplication
", "ReleaseLabel": "emr-6.9.0", "Type": "SPARK" }, "End": true }
애플리케이션 시작
다음 태스크 상태 예제는 startApplication.sync 서비스 통합을 사용하여 애플리케이션을 시작합니다API.
"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
애플리케이션 중지
다음 태스크 상태 예제는 stopApplication.sync 서비스 통합을 사용하여 애플리케이션을 중지합니다API.
"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
애플리케이션 삭제
다음 태스크 상태 예제에서는 deleteApplication.sync 서비스 통합을 사용하여 애플리케이션을 삭제합니다API.
"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
애플리케이션에서 작업 시작
다음 태스크 상태 예제는 startJobRun.sync 서비스 통합을 사용하여 애플리케이션에서 작업을 시작합니다API.
"Start_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync", "Parameters": { "ApplicationId": "
yourApplicationId
", "ExecutionRoleArn": "arn:aws:iam::123456789012:role/myEMRServerless-execution-role
", "JobDriver": { "SparkSubmit": { "EntryPoint": "s3://<amzn-s3-demo-bucket>
/sample.py
", "EntryPointArguments": ["1"], "SparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=4g --conf spark.driver.cores=2 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } } }, "End": true }
애플리케이션에서 작업 취소
다음 태스크 상태 예제는 cancelJobRun.sync 서비스 통합을 사용하여 애플리케이션의 작업을 취소합니다API.
"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Parameters": { "ApplicationId.$": "$.ApplicationId", "JobRunId.$": "$.JobRunId" }, "End": true }
IAM 호출 정책 Amazon EMR Serverless
콘솔을 사용하여 상태 시스템을 생성할 때 Step Functions 는 필요한 최소 권한을 가진 상태 시스템에 대한 실행 역할을 자동으로 생성합니다. 자동으로 생성된 IAM 역할은 상태 시스템을 생성하는 AWS 리전 에 유효합니다.
다음 예제 템플릿은가 상태 시스템 정의의 리소스를 기반으로 IAM 정책을 AWS Step Functions 생성하는 방법을 보여줍니다. 자세한 내용은 Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법 및 Step Functions에서 서비스 통합 패턴 검색 단원을 참조하세요.
를 생성할 때 IAM 정책에 와일드카드를 포함하지 마십시오. 보안 모범 사례로 정책 범위를 최대한 좁혀야 합니다. 런타임 중에 특정 입력 파라미터를 알 수 없는 경우에만 동적 정책을 사용해야 합니다.
또한 관리자는 관리자가 아닌 사용자에게 상태 시스템을 실행할 수 있는 실행 역할을 부여할 때 주의해야 합니다. passRole 정책을 직접 생성하는 경우 실행 역할에 정책을 포함하는 것이 좋습니다. 또한 실행 역할에 aws:SourceARN
및 aws:SourceAccount
컨텍스트 키를 추가하는 것이 좋습니다.
IAM Step Functions와의 EMR 서버리스 통합에 대한 정책 예제
IAM에 대한 정책 예제 CreateApplication
다음은 상태가 있는 상태 시스템에 대한 IAM 정책 예제입니다 CreateApplication Task 워크플로 상태.
참고
계정에 처음 애플리케이션을 생성하는 동안 IAM 정책에 CreateServiceLinkedRole 권한을 지정해야 합니다. 이후에는 이 권한을 추가할 필요가 없습니다. 에 대한 자세한 내용은 https://docs.aws.amazon.com/IAM/최신/APIReference/CreateServiceLinkedRole의 섹션을 CreateServiceLinkedRole참조하세요.
다음 정책의 정적 리소스와 동적 리소스는 동일합니다.
IAM에 대한 정책 예제 StartApplication
정적 리소스
다음은 상태에서 상태 머신을 사용할 때 정적 리소스에 대한 IAM 정책 예제입니다 StartApplication Task 워크플로 상태.
동적 리소스
다음은 상태와 함께 상태 머신을 사용할 때 동적 리소스에 대한 IAM 정책 예제입니다 StartApplication Task 워크플로 상태.
IAM에 대한 정책 예제 StopApplication
정적 리소스
다음은 상태에서 상태 머신을 사용할 때 정적 리소스에 대한 IAM 정책 예제입니다 StopApplication Task 워크플로 상태.
동적 리소스
다음은 상태와 함께 상태 머신을 사용할 때 동적 리소스에 대한 IAM 정책 예제입니다 StopApplication Task 워크플로 상태.
IAM에 대한 정책 예제 DeleteApplication
정적 리소스
다음은 상태에서 상태 머신을 사용할 때 정적 리소스에 대한 IAM 정책 예제입니다 DeleteApplication Task 워크플로 상태.
동적 리소스
다음은 상태와 함께 상태 머신을 사용할 때 동적 리소스에 대한 IAM 정책 예제입니다 DeleteApplication Task 워크플로 상태.
IAM에 대한 정책 예제 StartJobRun
정적 리소스
다음은 상태에서 상태 머신을 사용할 때 정적 리소스에 대한 IAM 정책 예제입니다 StartJobRun Task 워크플로 상태.
동적 리소스
다음은 상태와 함께 상태 머신을 사용할 때 동적 리소스에 대한 IAM 정책 예제입니다 StartJobRun Task 워크플로 상태.
IAM에 대한 정책 예제 CancelJobRun
정적 리소스
다음은 상태에서 상태 머신을 사용할 때 정적 리소스에 대한 IAM 정책 예제입니다 CancelJobRun Task 워크플로 상태.
동적 리소스
다음은 상태와 함께 상태 머신을 사용할 때 동적 리소스에 대한 IAM 정책 예제입니다 CancelJobRun Task 워크플로 상태.