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 (ASL) aus steuern. Weitere Informationen zur Arbeit mit AWS Step Functions und den zugehörigen Integrationen finden Sie im Folgenden:

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

Für die Integration mit Amazon EMR verfügt Step Functions über eine fest codierte Jobabfragefrequenz von 60 Sekunden für die ersten 10 Minuten und danach 300 Sekunden.

Verwenden Sie zur Integration AWS Step Functions mit Amazon EMR on EKS die Service-Integrations-APIs von Amazon EMR on EKS. Die Service-Integrations-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 Führen Sie einen Job aus (.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. Dadurch sind Sie auf 256 KB an Daten als UTF-8-kodierte Zeichenfolge beschränkt, wenn Sie Daten an einen anderen Dienst senden oder von einem anderen Dienst empfangen. Siehe Kontingente im Zusammenhang mit der Ausführung von Zustandsmaschinen.

Im Folgenden wird ein Task Status beschrieben, 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 wird ein Task Status beschrieben, der einen Auftrag an einen virtuellen Cluster weiterleitet und auf dessen Abschluss wartet.

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

Der folgende Status beinhaltet 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 Berechtigungen bei der Verwendung Step Functions mit anderen AWS Diensten finden Sie unter. IAM-Richtlinien für integrierte Services