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 des 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 aux AWS services dans Step Functions, reportez-vous Intégration des services aux sections etTransmission de paramètres à une API de service dans Step Functions.
Principales fonctionnalités de l'EMR Serverlessintégration optimisée
-
L'intégration EMR Serverless de services optimisée comporte un ensemble personnalisé APIsqui englobe le sous-jacent EMR Serverless APIs. En raison de cette personnalisation, l'EMR Serverlessintégration optimisée diffère considérablement de l'intégration des services du AWS SDK.
-
De plus, l'EMR Serverlessintégration optimisée 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 Serverlessintégration des services APIs
Pour l'intégrer AWS Step FunctionsEMR Serverless, vous pouvez utiliser les six intégrations EMR Serverless de services suivantes APIs. 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 API d'intégration de EMR Serverless services et EMR Serverless l'API correspondante.
EMR ServerlessAPI d'intégration de services | EMR ServerlessAPI correspondante | Différences |
---|---|---|
Créer une application Crée une application. EMR Serverlessest lié à un type de IAM rôle unique appelé rôle lié à un service. Pour que |
CreateApplication | Aucun |
CreateApplication.sync Crée une application. |
CreateApplication |
Aucune différence entre les demandes et les réponses de l'EMR ServerlessAPI et de l'API d'intégration des EMR Serverless services. Cependant, CreateApplication.sync attend que l'application atteigne cet état. |
Démarrer l'application Démarre une application spécifiée et initialise la capacité initiale de l'application si elle est configurée. |
StartApplication |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
|
Démarrez Application.sync Démarre une application spécifiée et initialise la capacité initiale si elle est configurée. |
StartApplication |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
StartApplication.sync attend également que l'application atteigne son état. |
Arrêter l'application 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 |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
|
Arrêter Application.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 |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
StopApplication.sync attend également que l'application atteigne l'état. |
Supprimer l'application Supprime une application. Une application doit être à l' |
DeleteApplication |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
|
Supprimer Application.sync Supprime une application. Une application doit être à l' |
DeleteApplication |
La réponse de l'EMR ServerlessAPI ne contient aucune donnée, mais la réponse de l'API d'intégration des EMR Serverless services inclut les données suivantes.
StopApplication.sync attend également que l'application atteigne l'é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 de l'EMR ServerlessAPI et de l'API d'intégration des EMR Serverless services. Cependant, startJobRun.sync attend que l'application atteigne cet état. |
cancelJobRun Annule l'exécution d'une tâche. |
CancelJobRun | Aucun |
cancelJobRun.sync Annule l'exécution d'une tâche. |
CancelJobRun |
Aucune différence entre les demandes et les réponses de l'EMR ServerlessAPI et de l'API d'intégration des EMR Serverless services. Cependant, cancelJobRun.sync attend que l'application atteigne cet état. |
Cas d'utilisation de l'intégration EMR sans serveur
Pour l'intégration optimisée des EMR Serverless 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 présentent des cas d'utilisation EMR Serverless APIs à intégrerStep Functions. Pour plus d'informations sur les autres cas d'utilisation deEMR Serverless, voir Qu'est-ce que Amazon EMR Serverless.
Astuce
Pour déployer un exemple de machine à états qui s'intègre EMR Serverless à l'exécution de plusieurs tâches, consultezExécuter une EMR Serverless tâche.
Pour en savoir plus sur la configuration IAM des autorisations lors de l'utilisation Step Functions avec d'autres AWS services, consultezComment Step Functions génère des politiques IAM pour les services intégrés.
Dans les exemples illustrés dans les cas d'utilisation suivants, remplacez le italicized
texte par des informations spécifiques à votre ressource. Remplacez par exemple yourApplicationId
par l'ID de votre EMR Serverless application, tel que00yv7iv71inak893
.
Création d’une application
L'exemple d'état de tâche suivant crée une application à l'aide de l'API d'intégration du service CreateApplication.sync.
"Create_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:createApplication.sync", "Arguments": { "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'API d'intégration du service StartApplication.sync.
"Start_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:startApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Arrêter une application
L'exemple d'état de tâche suivant arrête une application à l'aide de l'API d'intégration du service StopApplication.sync.
"Stop_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:stopApplication.sync", "Arguments": { "ApplicationId": "
yourApplicationId
" }, "End": true }
Supprimer une application
L'exemple d'état de tâche suivant supprime une application à l'aide de l'API d'intégration du service DeleteApplication.sync.
"Delete_Application": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:deleteApplication.sync", "Arguments": { "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'API d'intégration du service startJobRun.sync.
"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 }
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'API d'intégration du service cancelJobRun.sync.
"Cancel_Job": { "Type": "Task", "Resource": "arn:aws:states:::emr-serverless:cancelJobRun.sync", "Arguments": { "ApplicationId": "{% $states.input.ApplicationId %}", "JobRunId": "{% $states.input.JobRunId %}" }, "End": true }
Politiques IAM pour les appels Amazon EMR Serverless
Lorsque vous créez une machine d'état à l'aide de la console, un rôle d'exécution est Step Functions automatiquement créé pour votre machine d'état avec le moins de privilèges requis. Ces IAM rôles générés automatiquement sont valides pour la machine à états Région AWS dans laquelle vous créez la machine à états.
Les exemples de modèles suivants montrent comment AWS Step Functions générer des politiques IAM en fonction des ressources contenues dans la définition de votre machine d'état. Pour plus d’informations, consultez Comment Step Functions génère des politiques IAM pour les services intégrés et Découvrez les modèles d'intégration des services dans Step Functions.
Lorsque vous créez des IAM politiques, nous vous recommandons de ne pas y inclure de caractères génériques. 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 les politiques PassRole 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.
Exemples de politiques IAM pour l'intégration EMR Serverless avec Step Functions
Exemple de politique IAM pour CreateApplication
Voici un exemple de politique IAM 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 politiques IAM 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.
Exemple de politique IAM pour StartApplication
Ressources statiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StartApplication État du flux de travail des tâches état.
Ressources dynamiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StartApplication État du flux de travail des tâches état.
Exemple de politique IAM pour StopApplication
Ressources statiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StopApplication État du flux de travail des tâches état.
Ressources dynamiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StopApplication État du flux de travail des tâches état.
Exemple de politique IAM pour DeleteApplication
Ressources statiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un DeleteApplication État du flux de travail des tâches état.
Ressources dynamiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources dynamiques lorsque vous utilisez une machine à états dotée d'un DeleteApplication État du flux de travail des tâches état.
Exemple de politique IAM pour StartJobRun
Ressources statiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un StartJobRun État du flux de travail des tâches état.
Ressources dynamiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources dynamiques lorsque vous utilisez une machine à états dotée d'un StartJobRun État du flux de travail des tâches état.
Exemple de politique IAM pour CancelJobRun
Ressources statiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources statiques lorsque vous utilisez une machine à états dotée d'un CancelJobRun État du flux de travail des tâches état.
Ressources dynamiques
Vous trouverez ci-dessous des exemples de politique IAM pour les ressources dynamiques lorsque vous utilisez une machine à états dotée d'un CancelJobRun État du flux de travail des tâches état.