Rufen Sie Amazon EMR auf EKS an mit AWS Step Functions - AWS Step Functions

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Rufen Sie Amazon EMR auf EKS an mit AWS Step Functions

Step Functions kann bestimmte AWS Dienste direkt von der Amazon States Language aus steuern. Weitere Informationen zur Arbeit mit AWS Step Functions und den zugehörigen Integrationen finden Sie im Folgenden:

Wie sich die Integration Optimized Amazon EMR on EKS von der Amazon EMR on EKS AWS SDK-Integration unterscheidet
Anmerkung

Für die Integration mit Amazon EMR verfügt Step Functions für die ersten 10 Minuten und 300 Sekunden danach über eine fest programmierte Abfragehäufigkeit von 60 Sekunden für die Jobabfrage.

Verwenden Sie zur Integration AWS Step Functions mit Amazon EMR auf EKS die Serviceintegrations-APIs von Amazon EMR auf EKS. Die Serviceintegrations-APIs sind dieselben wie die entsprechenden Amazon EMR on EKS-APIs, aber nicht alle APIs unterstützen alle Integrationsmuster, wie in der folgenden Tabelle dargestellt.

API Antwort anfordern Einen Job ausführen (.sync)
CreateVirtualCluster
DeleteVirtualCluster
StartJobRun

Unterstützte Amazon EMR auf EKS-APIs:

Anmerkung

In Step Functions gibt es ein Kontingent für die maximale Eingabe- oder Ergebnisdatengröße für eine Aufgabe. Dies beschränkt Sie auf 262.144 Byte an Daten als UTF-8-kodierte Zeichenfolge, wenn Sie Daten an einen anderen Dienst senden oder von einem anderen Dienst empfangen. Siehe Kontingente im Zusammenhang mit State-Machine-Ausführungen.

Im Folgenden finden Sie einen Task Status, der einen virtuellen Cluster erstellt.

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

Im Folgenden finden Sie einen Task Status, der einen Job an einen virtuellen Cluster übermittelt und darauf wartet, dass er abgeschlossen ist.

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

Im Folgenden finden Sie einen Task Status, der einen virtuellen Cluster löscht und darauf wartet, dass der Löschvorgang abgeschlossen ist.

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

Informationen zur Konfiguration von IAM bei der Verwendung von Step Functions mit anderen AWS Diensten finden Sie unterIAM-Richtlinien für integrierte Dienste.