View a markdown version of this page

Exemples Amazon SWF utilisant AWS CLI - AWS Exemples de code SDK

D'autres exemples de AWS SDK sont disponibles dans le référentiel AWS Doc SDK Examples GitHub .

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.

Exemples Amazon SWF utilisant AWS CLI

Les exemples de code suivants vous montrent comment effectuer des actions et implémenter des scénarios courants en utilisant le AWS Command Line Interface avec Amazon SWF.

Les actions sont des extraits de code de programmes plus larges et doivent être exécutées dans leur contexte. Alors que les actions vous indiquent comment appeler des fonctions de service individuelles, vous pouvez les voir en contexte dans leurs scénarios associés.

Chaque exemple inclut un lien vers le code source complet, où vous trouverez des instructions sur la configuration et l’exécution du code en contexte.

Rubriques

Actions

L'exemple de code suivant montre comment utilisercount-closed-workflow-executions.

AWS CLI

Nombre d’exécutions de flux de travail fermées

Vous pouvez utiliser swf count-closed-workflow-executions pour extraire le nombre d’exécutions de flux de travail fermées pour un domaine donné. Vous pouvez définir des filtres pour compter des classes d’exécutions spécifiques.

Les arguments --domain et soit --close-time-filter soit --start-time-filter sont requis. Tous les autres arguments sont facultatifs.

aws swf count-closed-workflow-executions \ --domain DataFrobtzz \ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"

Sortie :

{ "count": 2, "truncated": false }

Si « truncated » est true, « count » représente le nombre maximal pouvant être renvoyé par Amazon SWF. Tous les autres résultats sont tronqués.

Pour réduire le nombre de résultats renvoyés, vous pouvez :

modifier les valeurs --close-time-filter ou --start-time-filter pour réduire la plage de temps recherchée. Ces valeurs s’excluent mutuellement : vous ne pouvez en spécifier qu’une dans une demande. Utilisez les arguments --close-status-filter, --execution-filter, --tag-filter ou --type-filter pour filtrer davantage les résultats. Toutefois, ces arguments s’excluent aussi mutuellement.

Voir également CountClosedWorkflowExecutions dans la référence de l'API Amazon Simple Workflow Service

L'exemple de code suivant montre comment utilisercount-open-workflow-executions.

AWS CLI

Nombre d’exécutions de flux de travail ouvertes

Vous pouvez utiliser swf count-open-workflow-executions pour extraire le nombre d’exécutions de flux de travail ouvertes pour un domaine donné. Vous pouvez définir des filtres pour compter des classes d’exécutions spécifiques.

Les arguments --domain et --start-time-filter sont requis. Tous les autres arguments sont facultatifs.

aws swf count-open-workflow-executions \ --domain DataFrobtzz \ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"

Sortie :

{ "count": 4, "truncated": false }

Si « truncated » est true, « count » représente le nombre maximal pouvant être renvoyé par Amazon SWF. Tous les autres résultats sont tronqués.

Pour réduire le nombre de résultats renvoyés, vous pouvez :

modifier les valeurs --start-time-filter pour réduire la plage de temps recherchée. Utilisez les arguments --close-status-filter, --execution-filter, --tag-filter ou --type-filter pour filtrer les résultats. Ces valeurs s’excluent mutuellement : vous ne pouvez en spécifier qu’une dans une demande.

Pour plus d'informations, consultez CountOpenWorkflowExecutions la référence de l'API Amazon Simple Workflow Service

L'exemple de code suivant montre comment utiliserdeprecate-domain.

AWS CLI

Obsolescence d’un domaine

Pour rendre un domaine obsolète (vous pouvez toujours le voir mais vous ne pouvez pas créer de nouvelles exécutions de flux de travail ou y inscrire des types), utilisez swf deprecate-domain. Un seul paramètre est obligatoire, --name, qui prend le nom du domaine à rendre obsolète.

aws swf deprecate-domain \ --name MyNeatNewDomain ""

Tout comme avec register-domain, aucune sortie n’est renvoyée. Si vous utilisez list-domains pour voir les domaines enregistrés, vous verrez cependant que le domaine est obsolète et ne figure plus dans les données renvoyées.

aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }

Si vous utilisez --registration-status DEPRECATED avec list-domains, vous verrez votre domaine obsolète.

aws swf list-domains \ --registration-status DEPRECATED { "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }

Vous pouvez tout de même utiliser describe-domain pour obtenir des informations sur un domaine obsolète.

aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Voir également DeprecateDomain dans la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez DeprecateDomain la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserdescribe-domain.

AWS CLI

Obtention d’informations sur un domaine

Pour obtenir les informations détaillées sur un domaine en particulier, utilisez la commande swf describe-domain. Il y a un paramètre obligatoire : --name, qui prend le nom du domaine sur lequel vous souhaitez obtenir des informations.

aws swf describe-domain \ --name DataFrobotz { "domainInfo": { "status": "REGISTERED", "name": "DataFrobotz" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "1" } }

Vous pouvez également utiliser describe-domain pour obtenir des informations sur des domaines obsolètes.

aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Voir également DescribeDomain dans la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez DescribeDomain la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-activity-types.

AWS CLI

Recensement des types d’activité

Pour obtenir la liste des types d’activité d’un domaine, utilisez swf list-activity-types. Les arguments --domain et --registration-status sont requis.

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED

Sortie :

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.451, "activityType": { "version": "1", "name": "confirm-user-email" }, "description": "subscribe confirm-user-email activity" }, { "status": "REGISTERED", "creationDate": 1371454150.709, "activityType": { "version": "1", "name": "confirm-user-phone" }, "description": "subscribe confirm-user-phone activity" }, { "status": "REGISTERED", "creationDate": 1371454149.871, "activityType": { "version": "1", "name": "get-subscription-info" }, "description": "subscribe get-subscription-info activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" }, { "status": "REGISTERED", "creationDate": 1371454150.085, "activityType": { "version": "1", "name": "subscribe-user-sns" }, "description": "subscribe subscribe-user-sns activity" } ] }

Vous pouvez utiliser l’argument --name pour sélectionner uniquement les types d’activité portant un nom particulier :

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --name "send-subscription-success"

Sortie :

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

Pour extraire les résultats sous forme de pages, vous pouvez définir l’argument --maximum-page-size. Si plus de résultats sont renvoyés qu'il n'y en a dans une page de résultats, un PageToken « suivant » sera renvoyé dans le jeu de résultats :

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2

Sortie :

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA1Gp1BelJq+PmHvAnDxJYbup8+0R4LVtbXLDl7QNY7C3OpHo9Sz06D/GuFz1OyC73umBQ1tOPJ/gC/aYpzDMqUIWIA1T9W0s2DryyZX4OC/6Lhk9/o5kdsuWMSBkHhgaZjgwp3WJINIFJFdaSMxY2vYAX7AtRtpcqJuBDDRE9RaRqDGYqIYUMltarkiqpSY1ZVveBasBvlvyUb/WGAaqehiDz7/JzLT/wWNNUMOd+Nhe", "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.451, "activityType": { "version": "1", "name": "confirm-user-email" }, "description": "subscribe confirm-user-email activity" }, { "status": "REGISTERED", "creationDate": 1371454150.709, "activityType": { "version": "1", "name": "confirm-user-phone" }, "description": "subscribe confirm-user-phone activity" } ] }

Vous pouvez passer la PageToken valeur suivante au prochain appel à list-activity-types dans l'--next-page-tokenargument, en récupérant la page de résultats suivante :

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2 \ --next-page-token "AAAAKgAAAAEAAAAAAAAAA1Gp1BelJq+PmHvAnDxJYbup8+0R4LVtbXLDl7QNY7C3OpHo9Sz06D/GuFz1OyC73umBQ1tOPJ/gC/aYpzDMqUIWIA1T9W0s2DryyZX4OC/6Lhk9/o5kdsuWMSBkHhgaZjgwp3WJINIFJFdaSMxY2vYAX7AtRtpcqJuBDDRE9RaRqDGYqIYUMltarkiqpSY1ZVveBasBvlvyUb/WGAaqehiDz7/JzLT/wWNNUMOd+Nhe"

Sortie :

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAAw+7LZ4GRZPzTqBHsp2wBxWB8m1sgLCclgCuq3J+h/m3+vOfFqtkcjLwV5cc4OjNAzTCuq/XcylPumGwkjbajtqpZpbqOcVNfjFxGoi0LB2Olbvv0krbUISBvlpFPmSWpDSZJsxg5UxCcweteSlFn1PNSZ/MoinBZo8OTkjMuzcsTuKOzH9wCaR8ITcALJ3SaqHU3pyIRS5hPmFA3OLIc8zaAepjlaujo6hntNSCruB4" "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.871, "activityType": { "version": "1", "name": "get-subscription-info" }, "description": "subscribe get-subscription-info activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

S'il reste encore d'autres résultats à renvoyer, PageToken « next » sera renvoyé avec les résultats. Lorsqu'il n'y a plus de pages de résultats à renvoyer, « next PageToken » ne sera pas renvoyé dans le jeu de résultats.

Vous pouvez utiliser l’argument --reverse-order pour inverser l’ordre des résultats renvoyés. Cela affecte également les résultats de la page.

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2 \ --reverse-order

Sortie :

{ "nextPageToken": "AAAAKgAAAAEAAAAAAAAAAwXcpu5ePSyQkrC+8WMbmSrenuZC2ZkIXQYBPB/b9xIOVkj+bMEFhGj0KmmJ4rF7iddhjf7UMYCsfGkEn7mk+yMCgVc1JxDWmB0EH46bhcmcLmYNQihMDmUWocpr7To6/R7CLu0St1gkFayxOidJXErQW0zdNfQaIWAnF/cwioBbXlkz1fQzmDeU3M5oYGMPQIrUqkPq7pMEW0q0lK5eDN97NzFYdZZ/rlcLDWPZhUjY", "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.085, "activityType": { "version": "1", "name": "subscribe-user-sns" }, "description": "subscribe subscribe-user-sns activity" }, { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }

Voir également ListActivityTypes dans la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez ListActivityTypes la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-domains.

AWS CLI

Exemple 1 : pour répertorier vos domaines enregistrés

L’exemple de commande list-domains suivant répertorie les domaines SWF REGISTERED que vous avez enregistrés pour votre compte.

aws swf list-domains \ --registration-status REGISTERED

Sortie :

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }

Pour plus d'informations, consultez ListDomains la référence de l'API Amazon Simple Workflow Service

Exemple 2 : pour répertorier vos domaines obsolètes

L’exemple de commande list-domains suivant répertorie les domaines SWF DEPRECATED que vous avez enregistrés pour votre compte. Les domaines obsolètes sont des domaines qui ne peuvent pas enregistrer de nouveaux flux de travail ou de nouvelles activités, mais qui peuvent tout de même être interrogés.

aws swf list-domains \ --registration-status DEPRECATED

Sortie :

{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }

Pour plus d'informations, consultez ListDomains la référence de l'API Amazon Simple Workflow Service

Exemple 3 : pour répertorier la première page des domaines enregistrés

L’exemple de commande list-domains suivant répertorie les domaines SWF REGISTERED de la première page que vous avez enregistrés pour votre compte à l’aide de l’option --maximum-page-size.

aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1

Sortie :

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }

Pour plus d'informations, consultez ListDomains la référence de l'API Amazon Simple Workflow Service

Exemple 4 : pour répertorier la page de domaines enregistrés spécifiée

L’exemple de commande list-domains suivant répertorie les domaines SWF REGISTERED de la première page que vous avez enregistrés pour votre compte à l’aide de l’option --maximum-page-size.

Lorsque vous réitérez l’appel, en indiquant cette fois-ci la valeur de nextPageToken dans l’argument --next-page-token, vous obtenez une autre page de résultats.

aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1 \ --next-page-token "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="

Sortie :

{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }

Lorsqu’il n’y a pas d’autres pages de résultats à extraire, nextPageToken n’est pas renvoyé dans les résultats.

Pour plus d'informations, consultez ListDomains la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez ListDomains la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserlist-workflow-types.

AWS CLI

Recensement des types de flux de travail

Pour obtenir la liste des types de flux de travail d’un domaine, utilisez swf list-workflow-types. Les arguments --domain et --registration-status sont requis. Voici un exemple simple.

aws swf list-workflow-types \ --domain DataFrobtzz \ --registration-status REGISTERED

Sortie :

{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.598, "description": "DataFrobtzz subscribe workflow", "workflowType": { "version": "v3", "name": "subscribe" } } ] }

Comme avec list-activity-types, vous pouvez utiliser l’argument --name pour sélectionner uniquement les types de flux de travail portant un nom particulier, et utiliser l’argument --maximum-page-size en coordination avec --next-page-token pour paginer les résultats. Pour inverser l’ordre dans lequel les résultats sont renvoyés, utilisez --reverse-order.

Voir également ListWorkflowTypes dans la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez ListWorkflowTypes la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserregister-domain.

AWS CLI

Inscription d’un domaine

Vous pouvez utiliser l' AWS interface de ligne de commande pour enregistrer de nouveaux domaines. Utilisez la commande swf register-domain. Deux paramètres sont obligatoires--name, qui prend le nom de domaine et --workflow-execution-retention-period-in-days qui prend un entier pour spécifier le nombre de jours pendant lesquels les données d'exécution du flux de travail sur ce domaine doivent être conservées, jusqu'à une période maximale de 90 jours (pour plus d'informations, consultez la FAQ SWF < https://aws.amazon.com/swf/faqs/ #retain_limit >). Les données d’exécution du flux de travail ne sont pas conservées une fois le nombre de jours spécifié écoulé.

aws swf register-domain \ --name MyNeatNewDomain \ --workflow-execution-retention-period-in-days 0 ""

Lorsque vous inscrivez un domaine, aucune donnée n’est renvoyée (« »), mais vous pouvez utiliser swf list-domains ou swf describe-domain pour voir le nouveau domaine.

aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "MyNeatNewDomain" }, { "status": "REGISTERED", "name": "erontest" } ] }

En utilisant swf describe-domain :

aws swf describe-domain --name MyNeatNewDomain { "domainInfo": { "status": "REGISTERED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }

Voir également RegisterDomain dans la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez RegisterDomain la section Référence des AWS CLI commandes.

L'exemple de code suivant montre comment utiliserregister-workflow-type.

AWS CLI

Enregistrement d’un type de flux de travail

Pour enregistrer un type de flux de travail auprès de l' AWS interface de ligne de commande, utilisez la swf register-workflow-type commande.

aws swf register-workflow-type \ --domain DataFrobtzz \ --name "MySimpleWorkflow" \ --workflow-version "v1"

En cas de réussite, la commande ne génère pas de sortie.

En cas d’erreur (par exemple, si vous essayez d’enregistrer deux fois le même type de flux de travail ou si vous spécifiez un domaine qui n’existe pas), vous obtenez une réponse au format JSON.

{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }

Les arguments --domain, --name et --workflow-version sont requis. Vous pouvez également définir la description du flux de travail, les délais d’expiration et la politique des flux de travail enfants.

Pour plus d'informations, consultez RegisterWorkflowType la référence de l'API Amazon Simple Workflow Service

  • Pour plus de détails sur l'API, consultez RegisterWorkflowType la section Référence des AWS CLI commandes.