AWS Step Functions で EKS の Amazon EMR を呼び出します。 - AWS Step Functions

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS Step Functions で EKS の Amazon EMR を呼び出します。

Step Functions は、Amazon States Language から、AWS の特定のサービスを直接制御することができます。AWS Step Functions との協働および統合の詳細については、以下を参照してください。

EKS 統合に対する最適化された Amazon EMR と EKS AWS SDDK 統合に対する Amazon EMR との違い

AWS Step Functions を EKS 上の Amazon EMR で統合するには、EKS サービス統合 API 上の Amazon EMR を使用します。サービス統合 API は EKS API の対応する Amazon EMR と同じですが、次の表で示すとおり、すべての API があらゆる統合パターンをサポートしているわけではありません。

API リクエストレスポンス ジョブの実行 (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

EKS API 上でサポートされる Amazon EMR は次のとおりです。

注記

Step Functions のタスクには入力データまたは結果データの最大サイズにはクォータがあります。これにより、別のサービスとの間でデータを送受信するときに、UTF-8 でエンコードされた文字列として 262,144 バイトのデータに制限されます。「ステートマシンの実行に関連するクォータ」を参照してください。

以下には仮想クラスターを作成する Task 状態が含まれています。

"Create_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:createVirtualCluster", "Parameters": { "Name": "MyVirtualCluster", "ContainerProvider": { "Id": "EKSClusterName", "Type": "EKS", "Info": { "EksInfo": { "Namespace": "Namespace" } } } }, "End": true }

以下には、 ジョブを仮想クラスターに送信し、完了するまで待機する Task 状態が含まれます。

"Submit_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:startJobRun.sync", "Parameters": { "Name": "MyJobName", "VirtualClusterId.$": "$.VirtualClusterId", "ExecutionRoleArn": "arn:aws:iam::<accountId>:role/job-execution-role", "ReleaseLabel": "emr-6.2.0-latest", "JobDriver": { "SparkSubmitJobDriver": { "EntryPoint": "s3://<mybucket>/jobs/trip-count.py", "EntryPointArguments": [ "60" ], "SparkSubmitParameters": "--conf spark.driver.cores=2 --conf spark.executor.instances=10 --conf spark.kubernetes.pyspark.pythonVersion=3 --conf spark.executor.memory=10G --conf spark.driver.memory=10G --conf spark.executor.cores=1 --conf spark.dynamicAllocation.enabled=false" } }, "ConfigurationOverrides": { "ApplicationConfiguration": [ { "Classification": "spark-defaults", "Properties": { "spark.executor.instances": "2", "spark.executor.memory": "2G" } } ], "MonitoringConfiguration": { "PersistentAppUI": "ENABLED", "CloudWatchMonitoringConfiguration": { "LogGroupName": "MyLogGroupName", "LogStreamNamePrefix": "MyLogStreamNamePrefix" }, "S3MonitoringConfiguration": { "LogUri": "s3://<mylogsbucket>" } } }, "Tags": { "taskType": "jobName" } }, "End": true }

以下には、仮想クラスターを削除し、削除が完了するまで待機する Task 状態が含まれます。

"Delete_Virtual_Cluster": { "Type": "Task", "Resource": "arn:aws:states:::emr-containers:deleteVirtualCluster.sync", "Parameters": { "Id.$": "$.VirtualClusterId" }, "End": true }

他の AWS のサービスで Step Functions を使用して IAM を設定する方法については、統合サービスの IAM ポリシー を参照してください。