翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
の作成と管理 Amazon EMR Serverless Step Functions を使用する アプリケーション
Step Functions を使用してサーバーEMRレスでアプリケーションを作成、起動、停止、削除する方法について説明します。このページでは、サポートされている を一覧表示APIsし、一般的なユースケースを実行するためのTask
状態の例を示します。
との統合について学ぶには AWS Step Functions の サービスについては、 サービスとの統合「」および「」を参照してくださいStep Functions APIのサービスへのパラメータの受け渡し。
最適化の主な機能 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同期 アプリケーションを作成します。 |
CreateApplication |
のリクエストとレスポンスの間に違いはありません EMR Serverless API および EMR Serverless サービス統合 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 API および EMR Serverless サービス統合 API。ただし、startJobRun.sync はアプリケーションが |
cancelJobRun ジョブ実行をキャンセルします。 |
CancelJobRun | なし |
cancelJobRun同期 ジョブ実行をキャンセルします。 |
CancelJobRun |
のリクエストとレスポンスの間に違いはありません EMR Serverless API および EMR Serverless サービス統合 API。ただし、cancelJobRun.sync はアプリケーションが |
EMR サーバーレス統合のユースケース
最適化 の場合 EMR Serverless サービス統合では、1 つのアプリケーションを作成し、そのアプリケーションを使用して複数のジョブを実行することをお勧めします。例えば、1 台のステートマシンで複数のstartJobRunリクエストを含めることができ、そのすべてが同じアプリケーションを使用します。次のタスクワークフローの状態状態例は、統合のユースケースを示しています。EMR Serverless APIs で Step Functions。 のその他のユースケースについては、「」を参照してください。EMR Serverless、「 とは」を参照してください。Amazon EMR Serverless.
ヒント
と統合するステートマシンの例をデプロイするには EMR Serverless で複数のジョブを実行する場合 AWS アカウント「を実行する EMR Serverless ジョブ」を参照してください。
の設定について学ぶには IAM を使用するときの アクセス許可 Step Functions を他の と使用 AWS サービスについては、「」を参照してくださいStep Functions が統合サービスのIAMポリシーを生成する方法。
次のユースケースの例で、italicized
リソース固有の情報を含む テキスト。例えば、yourApplicationId
の ID を持つ 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 リージョン ステートマシンを作成する 。
次のサンプルテンプレートは、 AWS Step Functions は、ステートマシン定義のリソースに基づいてIAMポリシーを生成します。詳細については、「Step Functions が統合サービスのIAMポリシーを生成する方法」および「Step Functions でサービス統合パターンを検出する」を参照してください。
を作成するときは、次のことをお勧めします。IAM ポリシー、ポリシーにワイルドカードを含めないでください。セキュリティのベストプラクティスとして、ポリシーの範囲をできるだけ絞り込む必要があります。動的ポリシーは、ランタイム中に特定の入力パラメータが不明な場合にのみ使用してください。
さらに、管理者ユーザーが非管理者ユーザーに、ステートマシンを実行するための実行ロールを付与する場合には注意が必要です。 passRole ポリシーを独自に作成する場合は、実行ロールにポリシーを含めることをお勧めします。また、実行ロールには aws:SourceARN
および aws:SourceAccount
のコンテキストキーを追加することをお勧めします。
IAM EMRサーバーレスと Step Functions の統合に関する ポリシーの例
IAM の ポリシーの例 CreateApplication
以下は、 状態のステートマシン CreateApplication タスクワークフローの状態のIAMポリシーの例です。
注記
アカウントで初めてアプリケーションを作成するときは、IAMポリシーで CreateServiceLinkedRole アクセス許可を指定する必要があります。それ以降、この許可を追加する必要はありません。の詳細については CreateServiceLinkedRole、 https://docs.aws.amazon.com/IAM/latest// のCreateServiceLinkedRoleAPIReference「」を参照してください。
以下のポリシーは、静的リソースと動的リソースで同じです。
IAM の ポリシーの例 StartApplication
静的リソース
ステートマシンを ステートで使用する場合の静的リソースのIAMポリシー例を StartApplication タスクワークフローの状態次に示します。
動的リソース
ステートマシンを ステートで使用する場合の動的リソースのIAMポリシー例を StartApplication タスクワークフローの状態次に示します。
IAM の ポリシーの例 StopApplication
静的リソース
ステートマシンを ステートで使用する場合の静的リソースのIAMポリシー例を StopApplication タスクワークフローの状態次に示します。
動的リソース
ステートマシンを ステートで使用する場合の動的リソースのIAMポリシー例を StopApplication タスクワークフローの状態次に示します。
IAM の ポリシーの例 DeleteApplication
静的リソース
ステートマシンを ステートで使用する場合の静的リソースのIAMポリシー例を DeleteApplication タスクワークフローの状態次に示します。
動的リソース
ステートマシンを ステートで使用する場合の動的リソースのIAMポリシー例を DeleteApplication タスクワークフローの状態次に示します。
IAM の ポリシーの例 StartJobRun
静的リソース
ステートマシンを ステートで使用する場合の静的リソースのIAMポリシー例を StartJobRun タスクワークフローの状態次に示します。
動的リソース
ステートマシンを ステートで使用する場合の動的リソースのIAMポリシー例を StartJobRun タスクワークフローの状態次に示します。
IAM の ポリシーの例 CancelJobRun
静的リソース
ステートマシンを ステートで使用する場合の静的リソースのIAMポリシー例を CancelJobRun タスクワークフローの状態次に示します。
動的リソース
ステートマシンを ステートで使用する場合の動的リソースのIAMポリシー例を CancelJobRun タスクワークフローの状態次に示します。