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.
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.
Die wichtigsten Funktionen 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 der AWS SDK-Dienstintegration.
-
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
Zu integrieren AWS Step Functions mit EMR Serverless, Sie können die folgenden sechs verwenden EMR Serverless Serviceintegration 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 Bereichen beschrieben EMR Serverless Service-Integrations-API und ihre entsprechenden EMR Serverless API.
EMR Serverless API zur Serviceintegration | Entsprechendes EMR Serverless API | Unterschiede |
---|---|---|
Anwendung erstellen Erstellt eine Anwendung EMR Serverless ist mit einem eindeutigen Typ von verknüpft IAM Rolle, die als dienstbezogene Rolle bezeichnet wird. Damit |
CreateApplication | Keine |
CreateApplication.Sync Erstellt eine Anwendung |
CreateApplication |
Keine Unterschiede zwischen den Anfragen und Antworten der EMR Serverless API und EMR Serverless API zur Serviceintegration. 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 |
Das Tool EMR Serverless Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur Serviceintegration umfasst die folgenden Daten.
|
Application.Sync starten Startet eine angegebene Anwendung und initialisiert die Anfangskapazität, falls konfiguriert. |
StartApplication |
Das Tool EMR Serverless Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur Serviceintegration umfasst 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 |
Das Tool EMR Serverless Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur 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 Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur Serviceintegration umfasst 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 |
Das Tool EMR Serverless Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur Serviceintegration umfasst die folgenden Daten.
|
DeleteApplication.Sync Löscht eine Anwendung. Eine Anwendung muss sich im |
DeleteApplication |
Das Tool EMR Serverless Die API-Antwort enthält keine Daten, sondern EMR Serverless Die API-Antwort zur Serviceintegration umfasst 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 des EMR Serverless API und EMR Serverless API zur Serviceintegration. 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 des EMR Serverless API und EMR Serverless API zur Serviceintegration. cancelJobRun.sync wartet jedoch darauf, dass die Anwendung den Status erreicht. |
Anwendungsfälle für die serverlose EMR-Integration
Für Optimierte 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 APIs mit 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 mit EMR Serverless Informationen zum Ausführen mehrerer Jobs finden Sie unterFühren Sie ein EMR Serverless Auftrag.
Um mehr über die Konfiguration zu erfahren IAM Berechtigungen bei der Verwendung von Step Functions bei anderen AWS Diensten, 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 durch Ihre ressourcenspezifischen Informationen. Ersetzen Sie ihn beispielsweise yourApplicationId
durch die ID Ihres EMR Serverless Anwendung, wie00yv7iv71inak893
.
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",
"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 Dienstintegrations-API StartApplication.Sync gestartet.
"Start_Application": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-serverless:startApplication.sync",
"Parameters": {
"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",
"Parameters": {
"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",
"Parameters": {
"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",
"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 Dienstintegrations-API für cancelJobRun.sync storniert.
"Cancel_Job": {
"Type": "Task",
"Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync",
"Parameters": {
"ApplicationId.$": "$.ApplicationId",
"JobRunId.$": "$.JobRunId"
},
"End": true
}
IAM-Richtlinien für Anrufe 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 gelten für den, AWS-Region in dem Sie die 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 dies bei der Erstellung IAM Richtlinien, enthalten 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, 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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CreateApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/*"
]
},
{
"Effect": "Allow",
"Action": [
"emr-serverless:GetApplication",
"emr-serverless:DeleteApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule"
]
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::{{accountId}}:role/aws-service-role/ops.emr-serverless.amazonaws.com/AWS ServiceRoleForAmazonEMRServerless
*",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "ops.emr-serverless.amazonaws.com"
}
}
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartApplication",
"emr-serverless:GetApplication",
"emr-serverless:StopApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartApplication",
"emr-serverless:GetApplication",
"emr-serverless:StopApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StopApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StopApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:DeleteApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:DeleteApplication",
"emr-serverless:GetApplication"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessApplicationRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]"
]
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"[[jobExecutionRoleArn]]"
],
"Condition": {
"StringEquals": {
"iam:PassedToService": "emr-serverless.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"emr-serverless:GetJobRun",
"emr-serverless:CancelJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]/jobruns/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:StartJobRun",
"emr-serverless:GetJobRun",
"emr-serverless:CancelJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": "iam:PassRole",
"Resource": [
"[[jobExecutionRoleArn]]"
],
"Condition": {
"StringEquals": {
"iam:PassedToService": "emr-serverless.amazonaws.com"
}
}
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CancelJobRun",
"emr-serverless:GetJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]/jobruns/[[jobRunId]]"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}
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.
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"emr-serverless:CancelJobRun",
"emr-serverless:GetJobRun"
],
"Resource": [
"arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*"
]
},
{
"Effect": "Allow",
"Action": [
"events:PutTargets",
"events:PutRule",
"events:DescribeRule"
],
"Resource": [
"arn:aws:events:{{region}}:{{accountId}}:rule/StepFunctionsGetEventsForEMRServerlessJobRule
"
]
}
]
}