翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Step Functions でAmazon EMR Serverlessアプリケーションを作成および管理
Step Functions を使用してサーバーEMRレスでアプリケーションを作成、起動、停止、削除する方法について説明します。このページでは、サポートされている を一覧表示APIsし、一般的なユースケースを実行するためのTask
状態の例を示します。
Step Functions は、 Amazon ステートメント言語 () から直接特定の AWS サービスを制御できますASL。詳細については、「他のサービスの統合」および「Step Functions APIのサービスへのパラメータの受け渡し」を参照してください。
最適化EMR Serverless統合とEMR Serverless AWS SDK統合の違い
-
最適化EMR Serverlessサービス統合には、基盤となる をラップAPIsするカスタマイズされた EMR Serverless のセットがありますAPIs。このカスタマイズにより、最適化されたEMR Serverless統合はEMR Serverless AWS SDKサービス統合とは大きく異なります。さらに、最適化された EMR Serverless 統合は ジョブの実行 (.sync) 統合パターンをサポートします。
-
タスクトークンのコールバックまで待機する 統合パターンはサポートされていません。
このトピックの内容
EMR Serverless サービス統合 APIs
AWS Step Functions と統合するには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同期 アプリケーションを作成します。 |
CreateApplication |
およびEMR Serverlessサービス統合 のリクエストEMR ServerlessAPIとレスポンスの間に違いはありませんAPI。ただし、createApplication.sync はアプリケーションが |
startApplication 指定されたアプリケーションを起動し、設定されている場合はアプリケーションの初期容量を初期化します。 |
StartApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
|
startApplication同期 指定されたアプリケーションを起動し、設定されている場合は初期容量を初期化します。 |
StartApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
また、startApplication.sync はアプリケーションが |
stopApplication 指定されたアプリケーションを停止し、設定されている場合は初期容量を解放します。アプリケーションを停止する前に、スケジュールされたジョブと実行中のジョブをすべて完了またはキャンセルする必要があります。 |
StopApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
|
stopApplication同期 指定されたアプリケーションを停止し、設定されている場合は初期容量を解放します。アプリケーションを停止する前に、スケジュールされたジョブと実行中のジョブをすべて完了またはキャンセルする必要があります。 |
StopApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
また、stopApplication.sync はアプリケーションが |
deleteApplication アプリケーションを削除します アプリケーションを削除するには、そのアプリケーションが |
DeleteApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
|
deleteApplication同期 アプリケーションを削除します アプリケーションを削除するには、そのアプリケーションが |
DeleteApplication |
EMR Serverless API レスポンスにはデータは含まれませんが、EMR Serverlessサービス統合APIレスポンスには次のデータが含まれます。
また、stopApplication.sync はアプリケーションが |
startJobRun ジョブ実行を開始します。 |
StartJobRun | なし |
startJobRun同期 ジョブ実行を開始します。 |
StartJobRun |
およびEMR Serverlessサービス統合 のリクエストEMR ServerlessAPIとレスポンスの間に違いはありませんAPI。ただし、startJobRun.sync はアプリケーションが |
cancelJobRun ジョブ実行をキャンセルします。 |
CancelJobRun | なし |
cancelJobRun同期 ジョブ実行をキャンセルします。 |
CancelJobRun |
およびEMR Serverlessサービス統合 のリクエストEMR ServerlessAPIとレスポンスの間に違いはありませんAPI。ただし、cancelJobRun.sync はアプリケーションが |
EMR サーバーレス統合のユースケース
最適化された EMR Serverless サービス統合では、アプリケーションを 1 つ作成して、そのアプリケーションを使用して複数のジョブを実行することをお勧めします。例えば、1 台のステートマシンで複数のstartJobRunリクエストを含めることができ、そのすべてが同じアプリケーションを使用します。次のタスクワークフローの状態状態例は、 EMR ServerlessAPIsと統合するユースケースを示していますStep Functions。EMR Serverless のその他のユースケースの情報については、「Amazon EMR Serverless とは」を参照してください。
ヒント
複数のジョブを実行するEMR Serverlessために と統合するステートマシンの例を にデプロイするには AWS アカウント、「」を参照してくださいEMR Serverless ジョブを実行する。
を他の AWS サービスStep Functionsで使用するときにIAMアクセス許可を設定する方法については、「」を参照してくださいStep Functions が統合サービスのIAMポリシーを生成する方法。
次のユースケースの例で、italicized
リソース固有の情報を含む テキスト。例えば、yourApplicationId
など、EMR Serverlessアプリケーションの ID を持つ 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://<mybucket>
/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 }