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.
Erstellen und verwalten Amazon EMR Serverless Anwendungen mit Step Functions
Erfahren Sie, wie Sie mithilfe von Step Functions Anwendungen auf EMR Serverless erstellen, starten, beenden und löschen. Diese Seite listet die unterstützten Task
Zustände auf APIs und bietet Beispielstatus zur Durchführung gängiger Anwendungsfälle.
Um mehr über die Integration mit zu erfahren AWS Dienste in Step Functions, siehe Integrieren von -Services undÜbergeben von Parametern an einen Dienst API in Step Functions.
Hauptmerkmale von Optimized EMR Serverless Integration
-
Das Optimierte EMR Serverless Die Serviceintegration verfügt über ein benutzerdefiniertes Set APIs, das den zugrunde liegenden Teil umschließt EMR Serverless APIs. Aufgrund dieser Anpassung wurde das optimierte EMR Serverless Die Integration unterscheidet sich erheblich von AWS SDKServiceintegration.
-
Darüber hinaus ist das optimierte EMR Serverless Die Integration unterstützt das Ausführen einer Aufgabe (.sync) Integrationsmuster.
-
Das Warten Sie auf einen Rückruf mit Task Token Integrationsmuster wird nicht unterstützt.
EMR Serverless Serviceintegration APIs
Um zu integrieren AWS Step Functions mit EMR Serverless, Sie können die folgenden sechs verwenden EMR Serverless ServiceintegrationAPIs. Diese Serviceintegrationen APIs ähneln den entsprechenden EMR Serverless APIs, mit einigen Unterschieden in den Feldern, die übergeben werden, und in den Antworten, die zurückgegeben werden.
In der folgenden Tabelle werden die Unterschiede zwischen den einzelnen Bereichen beschrieben EMR Serverless Serviceintegration API und ihre entsprechenden EMR Serverless API.
EMR Serverless Serviceintegration API | Entspricht EMR Serverless API | Unterschiede |
---|---|---|
createApplication Erstellt eine Anwendung EMR Serverless ist mit einem einzigartigen Typ von verknüpft IAM Rolle, die als dienstbezogene Rolle bezeichnet wird. Damit |
CreateApplication | None |
createApplication.sync Erstellt eine Anwendung |
CreateApplication |
Keine Unterschiede zwischen den Anfragen und Antworten der EMR Serverless APIund EMR Serverless ServiceintegrationAPI. createApplication.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
startApplication Startet eine angegebene Anwendung und initialisiert die Anfangskapazität der Anwendung, falls sie konfiguriert ist. |
StartApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
|
startApplication.sync Startet eine angegebene Anwendung und initialisiert die Anfangskapazität, falls konfiguriert. |
StartApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
Außerdem wartet startApplication.sync darauf, dass die Anwendung den Status erreicht. |
stopApplication Stoppt eine angegebene Anwendung und gibt die Anfangskapazität frei, falls sie konfiguriert ist. Alle geplanten und laufenden Jobs müssen abgeschlossen oder abgebrochen werden, bevor eine Anwendung gestoppt werden kann. |
StopApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
|
stopApplication.sync Stoppt eine angegebene Anwendung und gibt die Anfangskapazität frei, falls sie konfiguriert ist. Alle geplanten und laufenden Jobs müssen abgeschlossen oder abgebrochen werden, bevor eine Anwendung gestoppt werden kann. |
StopApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
Außerdem wartet stopApplication.sync darauf, dass die Anwendung den Status erreicht. |
deleteApplication Löscht eine Anwendung. Eine Anwendung muss sich im |
DeleteApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
|
deleteApplication.sync Löscht eine Anwendung. Eine Anwendung muss sich im |
DeleteApplication |
Das Tool EMR Serverless APIDie Antwort enthält keine Daten, sondern EMR Serverless Die API Antwort auf die Serviceintegration umfasst die folgenden Daten.
Außerdem wartet stopApplication.sync darauf, dass die Anwendung den Status erreicht. |
startJobRun Startet eine Jobausführung. |
StartJobRun | None |
startJobRun.sync Startet einen Joblauf. |
StartJobRun |
Keine Unterschiede zwischen den Anfragen und Antworten des EMR Serverless APIund EMR Serverless ServiceintegrationAPI. startJobRun.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
cancelJobRun Bricht die Ausführung eines Jobs ab. |
CancelJobRun | None |
cancelJobRun.sync Bricht einen Joblauf ab. |
CancelJobRun |
Keine Unterschiede zwischen den Anfragen und Antworten des EMR Serverless APIund EMR Serverless ServiceintegrationAPI. cancelJobRun.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
EMRAnwendungsfälle für serverlose Integration
Für die Optimierten EMR Serverless Für die Serviceintegration empfehlen wir, dass Sie eine einzelne Anwendung erstellen und diese Anwendung dann verwenden, um mehrere Jobs auszuführen. In einer einzigen Zustandsmaschine können Sie beispielsweise mehrere startJobRunAnfragen einschließen, die alle dieselbe Anwendung verwenden. Die folgenden Workflow-Status der Aufgabe Statusbeispiele zeigen Anwendungsfälle für die Integration EMR Serverless APIsmit Step Functions. Für Informationen über andere Anwendungsfälle von EMR Serverless, siehe Was ist Amazon EMR Serverless.
Tipp
Um ein Beispiel für eine Zustandsmaschine bereitzustellen, die sich integrieren lässt EMR Serverless für die Ausführung mehrerer Jobs auf Ihrem AWS-Konto, finden Sie unter Führen Sie ein EMR Serverless Auftrag.
Um mehr über die Konfiguration zu erfahren IAM Berechtigungen bei der Verwendung Step Functions mit anderen AWS Dienstleistungen, sieheSo generiert Step Functions IAM Richtlinien für integrierte Dienste.
Ersetzen Sie in den Beispielen, die in den folgenden Anwendungsfällen gezeigt werden, den italicized
Text mit Ihren ressourcenspezifischen Informationen. Ersetzen Sie beispielsweise yourApplicationId
mit der ID Ihres EMR Serverless Anwendung, wie00yv7iv71inak893
.
Erstellen einer Anwendung
Das folgende Beispiel für einen Task-Status erstellt eine Anwendung mithilfe der createApplication.sync-ServiceintegrationAPI.
"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Parameters": { "Name": "
MyApplication
", "ReleaseLabel": "emr-6.9.0", "Type": "SPARK" }, "End": true }
Starten Sie eine Anwendung
Im folgenden Beispiel für einen Task-Status wird eine Anwendung mithilfe der startApplication.sync-Dienstintegration API gestartet.
"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Stoppen Sie eine Anwendung
Das folgende Beispiel für einen Task-Status beendet eine Anwendung, die die stopApplication.sync-Dienstintegration API verwendet.
"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Löschen einer Anwendung
Das folgende Beispiel für einen Task-Status löscht eine Anwendung, die die deleteApplication.sync-Serviceintegration verwendet. API
"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Parameters": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Starten Sie einen Job in einer Anwendung
Das folgende Beispiel für einen Task-Status startet einen Job in einer Anwendung, die die startJobRun.sync-Serviceintegration API verwendet.
"Start_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync", "Parameters": { "ApplicationId": "
yourApplicationId
", "ExecutionRoleArn": "arn:aws:iam::123456789012:role/myEMRServerless-execution-role
", "JobDriver": { "SparkSubmit": { "EntryPoint": "s3://<amzn-s3-demo-bucket>
/sample.py
", "EntryPointArguments": ["1"], "SparkSubmitParameters": "--conf spark.executor.cores=4 --conf spark.executor.memory=4g --conf spark.driver.cores=2 --conf spark.driver.memory=4g --conf spark.executor.instances=1" } } }, "End": true }
Stornieren Sie einen Job in einer Anwendung
Im folgenden Beispiel für den Aufgabenstatus wird ein Job in einer Anwendung mithilfe der cancelJobRun.sync-Serviceintegration storniert. API
"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Parameters": { "ApplicationId.$": "$.ApplicationId", "JobRunId.$": "$.JobRunId" }, "End": true }
IAMRichtlinien für das Aufrufen Amazon EMR Serverless
Wenn Sie mithilfe der Konsole eine Zustandsmaschine erstellen, Step Functions erstellt automatisch eine Ausführungsrolle für Ihren Zustandsmaschine mit den geringsten erforderlichen Rechten. Diese werden automatisch generiert IAM Rollen sind gültig für AWS-Region in dem Sie die Zustandsmaschine erstellen.
Die folgenden Beispielvorlagen zeigen, wie AWS Step Functions generiert IAM Richtlinien auf der Grundlage der Ressourcen in Ihrer State-Machine-Definition. Weitere Informationen erhalten Sie unter So generiert Step Functions IAM Richtlinien für integrierte Dienste und Entdecken Sie Serviceintegrationsmuster in Step Functions.
Wir empfehlen dies bei der Erstellung IAM Richtlinien, verwenden Sie keine Platzhalter in den Richtlinien. Aus Sicherheitsgründen sollten Sie Ihre Richtlinien so weit wie möglich einschränken. Sie sollten dynamische Richtlinien nur verwenden, wenn bestimmte Eingabeparameter während der Laufzeit nicht bekannt sind.
Darüber hinaus sollten Administratorbenutzer vorsichtig sein, wenn sie Benutzern, die keine Administratoren sind, Ausführungsrollen für die Ausführung der Zustandsmaschinen zuweisen. Wir empfehlen, dass Sie passRole Richtlinien in die Ausführungsrollen aufnehmen, wenn Sie Richtlinien selbst erstellen. Wir empfehlen außerdem, dass Sie die Kontextschlüssel aws:SourceARN
und die aws:SourceAccount
Kontextschlüssel zu den Ausführungsrollen hinzufügen.
IAMRichtlinienbeispiele für die EMR serverlose Integration mit Step Functions
IAMpolitisches Beispiel für CreateApplication
Im Folgenden finden Sie ein IAM Richtlinienbeispiel für eine Zustandsmaschine mit einem CreateApplication Workflow-Status der Aufgabe Status.
Anmerkung
Sie müssen die CreateServiceLinkedRole Berechtigungen in Ihren IAM Richtlinien bei der Erstellung der allerersten Anwendung in Ihrem Konto angeben. Danach müssen Sie diese Erlaubnis nicht mehr hinzufügen. Weitere Informationen dazu CreateServiceLinkedRole finden Sie CreateServiceLinkedRolein der https://docs.aws.amazon.com/IAM/ aktuellsten APIReference Neuheiten/ /.
Statische und dynamische Ressourcen für die folgenden Richtlinien sind identisch.
IAMRichtlinienbeispiel für StartApplication
Statische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartApplication Workflow-Status der Aufgabe Status verwenden.
IAMRichtlinienbeispiel für StopApplication
Statische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StopApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StopApplication Workflow-Status der Aufgabe Status verwenden.
IAMRichtlinienbeispiel für DeleteApplication
Statische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem DeleteApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem DeleteApplication Workflow-Status der Aufgabe Status verwenden.
IAMRichtlinienbeispiel für StartJobRun
Statische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartJobRun Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartJobRun Workflow-Status der Aufgabe Status verwenden.
IAMRichtlinienbeispiel für CancelJobRun
Statische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem CancelJobRun Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie IAM Richtlinienbeispiele für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem CancelJobRun Workflow-Status der Aufgabe Status verwenden.