Créez et gérez Amazon EMR Serverless applications avec Step Functions - AWS Step Functions

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Créez et gérez Amazon EMR Serverless applications avec Step Functions

Découvrez comment créer, démarrer, arrêter et supprimer des applications sur EMR Serverless à l'aide de Step Functions. Cette page répertorie les états pris en charge APIs et fournit des exemples d'Taskétats permettant de réaliser des cas d'utilisation courants.

Pour en savoir plus sur l'intégration avec AWS services dans Step Functions, voir Intégration des services et. Transmission de paramètres à un service API dans Step Functions

Principales fonctionnalités d'Optimized EMR Serverless intégration
  • L'optimisé EMR Serverless l'intégration des services comporte un ensemble personnalisé APIsqui englobe le sous-jacent EMR Serverless APIs. En raison de cette personnalisation, le EMR Serverless l'intégration est très différente de AWS SDKintégration des services.

  • De plus, l'optimisé EMR Serverless l'intégration prend en charge le modèle Exécuter une tâche (.sync) d'intégration.

  • Le modèle Attendre un rappel avec un jeton de tâche d'intégration n'est pas pris en charge.

EMR Serverless intégration des services APIs

Pour intégrer AWS Step Functions avec EMR Serverless, vous pouvez utiliser les six suivants EMR Serverless intégration des servicesAPIs. Ces intégrations de services APIs sont similaires à celles correspondantes EMR Serverless APIs, avec quelques différences dans les champs transmis et dans les réponses renvoyées.

Le tableau suivant décrit les différences entre chaque EMR Serverless intégration des services API et ses correspondants EMR Serverless API.

EMR Serverless intégration des services API Correspondant EMR Serverless API Différences

createApplication

Crée une application.

EMR Serverless est lié à un type unique de IAM rôle connu sous le nom de rôle lié à un service. Pour que createApplication et createApplication.sync fonctionnent, vous devez avoir configuré les autorisations nécessaires pour créer le rôle lié au service AWS ServiceRoleForAmazonEMRServerless. Pour plus d'informations à ce sujet, y compris une déclaration que vous pouvez ajouter à votre IAM politique d'autorisations, voir Utilisation de rôles liés à un service pour EMR Serverless.

CreateApplication Aucun

createApplication.sync

Crée une application.

CreateApplication

Aucune différence entre les demandes et les réponses du EMR Serverless APIet EMR Serverless intégration des servicesAPI. Cependant, createApplication.sync attend que l'application atteigne cet état. CREATED

startApplication

Démarre une application spécifiée et initialise la capacité initiale de l'application si elle est configurée.

StartApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

startApplication.sync

Démarre une application spécifiée et initialise la capacité initiale si elle est configurée.

StartApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

De plus, startApplication.sync attend que l'application atteigne l'STARTEDétat.

stopApplication

Arrête une application spécifiée et libère sa capacité initiale si elle est configurée. Toutes les tâches planifiées et en cours d'exécution doivent être terminées ou annulées avant d'arrêter une application.

StopApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

stopApplication.sync

Arrête une application spécifiée et libère sa capacité initiale si elle est configurée. Toutes les tâches planifiées et en cours d'exécution doivent être terminées ou annulées avant d'arrêter une application.

StopApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

De plus, stopApplication.sync attend que l'application atteigne l'STOPPEDétat.

deleteApplication

Supprime une application. Une application doit être à l'CREATEDétat STOPPED ou pour être supprimée.

DeleteApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

deleteApplication.sync

Supprime une application. Une application doit être à l'CREATEDétat STOPPED ou pour être supprimée.

DeleteApplication

Le EMR Serverless APIla réponse ne contient aucune donnée, mais EMR Serverless la API réponse d'intégration des services inclut les données suivantes.

{ "ApplicationId": "string" }

De plus, stopApplication.sync attend que l'application atteigne l'TERMINATEDétat.

startJobRun

Démarre l'exécution d'une tâche.

StartJobRun Aucun

startJobRun.sync

Démarre l'exécution d'une tâche.

StartJobRun

Aucune différence entre les demandes et les réponses du EMR Serverless APIet EMR Serverless intégration des servicesAPI. Cependant, startJobRun.sync attend que l'application atteigne cet état. SUCCESS

cancelJobRun

Annule une exécution de tâche.

CancelJobRun Aucun

cancelJobRun.sync

Annule une exécution de tâche.

CancelJobRun

Aucune différence entre les demandes et les réponses du EMR Serverless APIet EMR Serverless intégration des servicesAPI. Cependant, cancelJobRun.sync attend que l'application atteigne cet état. CANCELLED

EMRCas d'utilisation de l'intégration sans serveur

Pour les optimisés EMR Serverless intégration des services, nous vous recommandons de créer une seule application, puis de l'utiliser pour exécuter plusieurs tâches. Par exemple, dans une machine à états unique, vous pouvez inclure plusieurs startJobRundemandes, qui utilisent toutes la même application. Les exemples État du flux de travail des tâches d'états suivants montrent les cas d'utilisation à intégrer EMR Serverless APIsavec Step Functions. Pour plus d'informations sur les autres cas d'utilisation de EMR Serverless, voir Qu'est-ce que Amazon EMR Serverless.

Astuce

Pour déployer un exemple de machine à états qui s'intègre à EMR Serverless pour exécuter plusieurs tâches sur votre Compte AWS, voir Exécutez un EMR Serverless tâche.

Pour en savoir plus sur la configuration IAM autorisations lors de l'utilisation Step Functions avec d'autres AWS services, voirComment Step Functions génère IAM des politiques pour les services intégrés.

Dans les exemples illustrés dans les cas d'utilisation suivants, remplacez italicized texte contenant les informations spécifiques à votre ressource. Par exemple, remplacez yourApplicationId avec l'identifiant de votre EMR Serverless application, telle que00yv7iv71inak893.

Création d’une application

L'exemple d'état de tâche suivant crée une application à l'aide de l'intégration API du service createApplication.sync.

"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Parameters": { "Name": "MyApplication", "ReleaseLabel": "emr-6.9.0", "Type": "SPARK" }, "End": true }

Lancer une application

L'exemple d'état de tâche suivant démarre une application à l'aide de l'intégration API du service startApplication.sync.

"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Arrêter une application

L'exemple d'état de tâche suivant arrête une application à l'aide de l'intégration API du service stopApplication.sync.

"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Supprimer une application

L'exemple d'état de tâche suivant supprime une application à l'aide de l'intégration du service deleteApplication.sync. API

"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Parameters": { "ApplicationId": "yourApplicationId" }, "End": true }

Commencer un emploi dans une application

L'exemple d'état de tâche suivant démarre une tâche dans une application à l'aide de l'intégration API du service startJobRun.sync.

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

Annuler une offre d'emploi dans une candidature

L'exemple d'état de tâche suivant annule une tâche dans une application à l'aide de l'intégration du service cancelJobRun.sync. API

"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Parameters": { "ApplicationId.$": "$.ApplicationId", "JobRunId.$": "$.JobRunId" }, "End": true }

IAMpolitiques relatives aux appels Amazon EMR Serverless

Lorsque vous créez une machine à états à l'aide de la console, Step Functions crée automatiquement un rôle d'exécution pour votre machine d'état avec le moins de privilèges requis. Ceux-ci sont générés automatiquement IAM les rôles sont valides pour le Région AWS dans lequel vous créez la machine à états.

Les exemples de modèles suivants montrent comment AWS Step Functions génère IAM des politiques basées sur les ressources contenues dans la définition de votre machine à états. Pour plus d’informations, consultez Comment Step Functions génère IAM des politiques pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.

Nous vous recommandons que lorsque vous créez IAM politiques, n'incluez pas de caractères génériques dans les politiques. En tant que bonne pratique en matière de sécurité, vous devez limiter autant que possible vos politiques. Vous ne devez utiliser des politiques dynamiques que lorsque certains paramètres d'entrée ne sont pas connus pendant l'exécution.

En outre, les utilisateurs administrateurs doivent faire preuve de prudence lorsqu'ils accordent à des utilisateurs non administrateurs des rôles d'exécution pour exécuter les machines d'état. Nous vous recommandons d'inclure passRole des politiques dans les rôles d'exécution si vous créez vous-même des politiques. Nous vous recommandons également d'ajouter les clés de aws:SourceAccount contexte aws:SourceARN et dans les rôles d'exécution.

IAMexemples de politiques pour l'intégration EMR sans serveur avec Step Functions

IAMexemple de politique pour CreateApplication

Voici un exemple de IAM politique pour une machine à états dotée d'un CreateApplication État du flux de travail des tâches état.

Note

Vous devez spécifier les CreateServiceLinkedRole autorisations dans vos IAM politiques lors de la création de la toute première application de votre compte. Par la suite, il n'est pas nécessaire d'ajouter cette autorisation. Pour plus d'informations à ce sujet CreateServiceLinkedRole, consultez CreateServiceLinkedRolela https://docs.aws.amazon.com/IAM/ dernière/ /. APIReference

Les ressources statiques et dynamiques pour les politiques suivantes sont identiques.

Run a Job (.sync)
{ "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" } } } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CreateApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/*" ] }, { "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" } } } ] }

IAMexemple de politique pour StartApplication

Ressources statiques

Vous trouverez ci-dessous des exemples de IAM politique pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StartApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:StartApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]" ] } ] }
Ressources dynamiques

Vous trouverez ci-dessous des exemples de IAM politiques relatives aux ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StartApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:StartApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*" ] } ] }

IAMexemple de politique pour StopApplication

Ressources statiques

Vous trouverez ci-dessous des exemples de IAM politique pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StopApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:StopApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]" ] } ] }
Ressources dynamiques

Vous trouverez ci-dessous des exemples de IAM politiques relatives aux ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StopApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:StopApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*" ] } ] }

IAMexemple de politique pour DeleteApplication

Ressources statiques

Vous trouverez ci-dessous des exemples de IAM politique pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un DeleteApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:DeleteApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]" ] } ] }
Ressources dynamiques

Vous trouverez ci-dessous des exemples de IAM politiques relatives aux ressources dynamiques lorsque vous utilisez une machine à états dotée d'un DeleteApplication État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:DeleteApplication" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*" ] } ] }

IAMexemple de politique pour StartJobRun

Ressources statiques

Vous trouverez ci-dessous des exemples de IAM politique pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StartJobRun État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "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" } } } ] }
Ressources dynamiques

Vous trouverez ci-dessous des exemples de IAM politiques relatives aux ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StartJobRun État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:StartJobRun" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*" ] }, { "Effect": "Allow", "Action": "iam:PassRole", "Resource": [ "[[jobExecutionRoleArn]]" ], "Condition": { "StringEquals": { "iam:PassedToService": "emr-serverless.amazonaws.com" } } } ] }

IAMexemple de politique pour CancelJobRun

Ressources statiques

Vous trouverez ci-dessous des exemples de IAM politique pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un CancelJobRun État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CancelJobRun" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/[[applicationId]]/jobruns/[[jobRunId]]" ] } ] }
Ressources dynamiques

Vous trouverez ci-dessous des exemples de IAM politiques relatives aux ressources dynamiques lorsque vous utilisez une machine à états dotée d'un CancelJobRun État du flux de travail des tâches état.

Run a Job (.sync)
{ "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" ] } ] }
Request Response
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "emr-serverless:CancelJobRun" ], "Resource": [ "arn:aws:emr-serverless:{{region}}:{{accountId}}:/applications/*" ] } ] }