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:
-
LaEjecutar un trabajo (.sync)se admite el patrón de integración.
-
No hay optimizaciones para elRespuesta de la solicitudpatrón de integración.
-
LaCómo esperar una devolución de llamada con el token de tareaNo se admite el patrón de integración.
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:
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 unTask
estado 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 unTask
estado 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 unTask
estado 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.