Llame a Amazon EMR en EKS conAWS Step Functions - AWS Step Functions

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Llame a Amazon EMR en EKS conAWS Step Functions

Step Functions puede controlar ciertosAWSservicios directamente desde el Lenguaje de estados de Amazon. Para obtener más información acerca de cómo trabajar conAWS Step Functionsy sus integraciones, consulte los temas siguientes:

Cómo la integración optimizada de Amazon EMR en EKS es diferente de Amazon EMR en EKSAWSIntegración de SDK

Para integrarAWS Step Functionscon Amazon EMR en EKS, utilice las API de integración de servicios de Amazon EMR on EKS. Las API de integración de servicios son las mismas que las de Amazon EMR correspondientes en las API de EKS de Amazon, pero no todas las API admiten todos los patrones de integración, como se muestra en la tabla siguiente.

API Respuesta de la solicitud Ejecutar un trabajo (.sync)
Crear clúster virtual
Eliminar clúster virtual
StartJobRun

Amazon EMR compatible en las API de EKS:

nota

Hay una cuota para el tamaño máximo de los datos de entrada o resultados de una tarea de una tarea en Step Functions. Esto le restringe a 262.144 bytes de datos como cadena codificada en UTF-8 cuando envía o recibe datos de otro servicio. Consulte Cuotas relacionadas con las ejecuciones de máquinas de estado.

El ejemplo siguiente incluye unTaskestado que crea un clúster virtual.

"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 }

El ejemplo siguiente incluye unTaskestado que envía un trabajo a un clúster virtual y espera a que finalice.

"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>" } } } }, "End": true }

El ejemplo siguiente incluye unTaskestado que elimina un clúster virtual y espera a que se complete la eliminación.

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

Para obtener más información acerca de cómo configurar IAM cuando se utiliza Step Functions con otrosAWSservicios, consultePolíticas de IAM para servicios integrados.