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.
Amazon EMR ServerlessAnwendungen mit Step Functions erstellen und verwalten
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 für allgemeine Anwendungsfälle.
Informationen zur Integration mit AWS Diensten in Step Functions finden Sie unter Integrieren von -Services undÜbergeben von Parametern an eine Service-API in Step Functions.
Hauptmerkmale der optimierten EMR Serverless Integration
-
Die optimierte EMR Serverless Serviceintegration besteht aus einem benutzerdefinierten Satz APIs, der den zugrunde liegenden Teil umschließt EMR Serverless APIs. Aufgrund dieser Anpassung unterscheidet sich die optimierte EMR Serverless Integration erheblich von der AWS SDK-Serviceintegration.
-
Darüber hinaus unterstützt die optimierte EMR Serverless Integration das Ausführen einer Aufgabe (.sync) Integrationsmuster.
-
Das Warten Sie auf einen Rückruf mit Task Token Integrationsmuster wird nicht unterstützt.
EMR ServerlessServiceintegration APIs
Für die Integration AWS Step Functions mit EMR Serverless können Sie die folgenden sechs EMR Serverless Serviceintegrationen verwenden APIs. 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 EMR Serverless Serviceintegrations-APIs und der entsprechenden EMR Serverless API beschrieben.
EMR ServerlessAPI zur Serviceintegration | Entsprechende EMR Serverless API | Unterschiede |
---|---|---|
Anwendung erstellen Erstellt eine Anwendung EMR Serverlessist mit einem eindeutigen Rollentyp verknüpft, der als dienstbezogene IAM Rolle bezeichnet wird. Damit |
CreateApplication | Keine |
CreateApplication.Sync Erstellt eine Anwendung |
CreateApplication |
Keine Unterschiede zwischen den Anfragen und Antworten der API und der EMR Serverless EMR Serverless Service-Integrations-API. CreateApplication.Sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
Anwendung starten Startet eine angegebene Anwendung und initialisiert die Anfangskapazität der Anwendung, falls sie konfiguriert ist. |
StartApplication |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort für die EMR Serverless Serviceintegration enthält die folgenden Daten.
|
Starten Sie Application.Sync Startet eine angegebene Anwendung und initialisiert die Anfangskapazität, falls sie konfiguriert ist. |
StartApplication |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort für die EMR Serverless Serviceintegration enthält die folgenden Daten.
Außerdem wartet StartApplication.Sync darauf, dass die Anwendung den Status erreicht. |
Anwendung beenden 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 |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort zur EMR Serverless Serviceintegration enthält 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 |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort zur EMR Serverless Serviceintegration enthält die folgenden Daten.
Außerdem wartet StopApplication.Sync darauf, dass die Anwendung den Status erreicht. |
Anwendung löschen Löscht eine Anwendung. Eine Anwendung muss sich im |
DeleteApplication |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort für die EMR Serverless Serviceintegration enthält die folgenden Daten.
|
DeleteApplication.Sync Löscht eine Anwendung. Eine Anwendung muss sich im |
DeleteApplication |
Die EMR Serverless API-Antwort enthält keine Daten, aber die API-Antwort für die EMR Serverless Serviceintegration enthält die folgenden Daten.
Außerdem wartet StopApplication.Sync darauf, dass die Anwendung den Status erreicht. |
startJobRun Startet eine Auftragsausführung. |
StartJobRun | Keine |
startJobRun.sync Startet einen Joblauf. |
StartJobRun |
Keine Unterschiede zwischen den Anfragen und Antworten der EMR Serverless API und der EMR Serverless Service-Integrations-API. startJobRun.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
cancelJobRun Bricht die Ausführung eines Jobs ab. |
CancelJobRun | Keine |
cancelJobRun.sync Bricht einen Joblauf ab. |
CancelJobRun |
Keine Unterschiede zwischen den Anfragen und Antworten der EMR Serverless API und der EMR Serverless Service-Integrations-API. cancelJobRun.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
Anwendungsfälle für die serverlose EMR-Integration
Für die optimierte EMR Serverless 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, in die eine EMR Serverless APIs Integration möglich istStep Functions. Informationen zu anderen Anwendungsfällen von EMR Serverless finden Sie unter Was ist Amazon EMR Serverless.
Tipp
Ein Beispiel für eine Zustandsmaschine, die EMR Serverless zur Ausführung mehrerer Jobs integriert werden kann, finden Sie unterEinen EMR Serverless Job ausführen.
Weitere Informationen zur Konfiguration von IAM Berechtigungen bei der Verwendung Step Functions mit anderen AWS Diensten finden Sie unterSo 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 durch Ihre ressourcenspezifischen Informationen. Ersetzen Sie ihn beispielsweise yourApplicationId
durch die ID Ihrer EMR Serverless Anwendung, z. B. 00yv7iv71inak893
Erstellen einer Anwendung
Im folgenden Beispiel für einen Task-Status wird eine Anwendung mithilfe der CreateApplication.Sync-Dienstintegrations-API erstellt.
"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Arguments": { "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 Dienstintegrations-API StartApplication.Sync gestartet.
"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Stoppen Sie eine Anwendung
Im folgenden Beispiel mit einem Task-Status wird eine Anwendung mithilfe der Service-Integrations-API StopApplication.Sync gestoppt.
"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Löschen einer Anwendung
Im folgenden Beispiel für einen Task-Status wird eine Anwendung mithilfe der Serviceintegrations-API DeleteApplication.Sync gelöscht.
"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Starten Sie einen Job in einer Anwendung
Im folgenden Beispiel für den Aufgabenstatus wird ein Job in einer Anwendung mithilfe der Dienstintegrations-API startJobRun.sync gestartet.
"Start_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startJobRun.sync", "Arguments": { "ApplicationId": "
yourApplicationId
", "ExecutionRoleArn": "arn:aws:iam::account-id
: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 Dienstintegrations-API für cancelJobRun.sync storniert.
"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Arguments": { "ApplicationId": "{% $states.input.ApplicationId %}", "JobRunId": "{% $states.input.JobRunId %}" }, "End": true }
IAM-Richtlinien für Anrufe Amazon EMR Serverless
Wenn Sie eine Zustandsmaschine mithilfe der Konsole erstellen, Step Functions wird automatisch eine Ausführungsrolle für Ihre Zustandsmaschine mit den geringsten erforderlichen Rechten erstellt. Diese automatisch generierten IAM Rollen gelten für den, AWS-Region in dem Sie den Zustandsmaschine erstellen.
Die folgenden Beispielvorlagen zeigen, wie IAM-Richtlinien auf der Grundlage der Ressourcen in Ihrer State-Machine-Definition AWS Step Functions generiert werden. Weitere Informationen erhalten Sie unter So generiert Step Functions IAM-Richtlinien für integrierte Dienste und Entdecken Sie Serviceintegrationsmuster in Step Functions.
Wir empfehlen, bei der Erstellung von IAM Richtlinien keine Platzhalter in die Richtlinien aufzunehmen. 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, die Kontextschlüssel aws:SourceARN
und die aws:SourceAccount
Kontextschlüssel zu den Ausführungsrollen hinzuzufügen.
Beispiele für IAM-Richtlinien für die serverlose EMR-Integration mit Step Functions
Beispiel für eine IAM-Richtlinie für CreateApplication
Im Folgenden finden Sie ein Beispiel für eine IAM-Richtlinie 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 Berechtigung 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.
Beispiel für eine IAM-Richtlinie für StartApplication
Statische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartApplication Workflow-Status der Aufgabe Status verwenden.
Beispiel für eine IAM-Richtlinie für StopApplication
Statische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StopApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StopApplication Workflow-Status der Aufgabe Status verwenden.
Beispiel für eine IAM-Richtlinie für DeleteApplication
Statische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem DeleteApplication Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem DeleteApplication Workflow-Status der Aufgabe Status verwenden.
Beispiel für eine IAM-Richtlinie für StartJobRun
Statische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartJobRun Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem StartJobRun Workflow-Status der Aufgabe Status verwenden.
Beispiel für eine IAM-Richtlinie für CancelJobRun
Statische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für statische Ressourcen, wenn Sie eine Zustandsmaschine mit einem CancelJobRun Workflow-Status der Aufgabe Status verwenden.
Dynamische Ressourcen
Im Folgenden finden Sie Beispiele für IAM-Richtlinien für dynamische Ressourcen, wenn Sie eine Zustandsmaschine mit einem CancelJobRun Workflow-Status der Aufgabe Status verwenden.