Exemples d’utilisation de l’AWS CLI avec Amazon SWF
Les exemples de code suivants montrent comment réaliser des actions et mettre en œuvre des scénarios courants en utilisant l’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 utiliser count-closed-workflow-executions.
- AWS CLI
-
Nombre d’exécutions de flux de travail fermées
Vous pouvez utiliser
swf count-closed-workflow-executionspour récupérer 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
--domainet soit--close-time-filtersoit--start-time-filtersont requis. Tous les autres arguments sont facultatifs.aws swf count-closed-workflow-executions \ --domainDataFrobtzz\ --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-filterou--start-time-filterpour 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-filterou--type-filterpour filtrer davantage les résultats. Toutefois, ces arguments s’excluent aussi mutuellement.Consultez également CountClosedWorkflowExecutions dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez CountClosedWorkflowExecutions
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser count-open-workflow-executions.
- AWS CLI
-
Nombre d’exécutions de flux de travail ouvertes
Vous pouvez utiliser
swf count-open-workflow-executionspour récupérer 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
--domainet--start-time-filtersont requis. Tous les autres arguments sont facultatifs.aws swf count-open-workflow-executions \ --domainDataFrobtzz\ --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-filterpour réduire la plage de temps recherchée. Utilisez les arguments--close-status-filter,--execution-filter,--tag-filterou--type-filterpour 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 dans la Référence des API Amazon Simple Workflow Service.
-
Pour plus de détails sur l’API, consultez CountOpenWorkflowExecutions
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser deprecate-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 \ --nameMyNeatNewDomain""Tout comme avec
register-domain, aucune sortie n'est renvoyée. Si vous utilisezlist-domainspour 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-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"erontest"}]}Si vous utilisez
--registration-status DEPRECATEDaveclist-domains, vous verrez votre domaine obsolète.aws swf list-domains \ --registration-statusDEPRECATED{"domainInfos":[{"status": "DEPRECATED", "name":"MyNeatNewDomain"}]}Vous pouvez tout de même utiliser
describe-domainpour obtenir des informations sur un domaine obsolète.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consultez également DeprecateDomain dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez DeprecateDomain
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser describe-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 \ --nameDataFrobotz{"domainInfo":{"status": "REGISTERED", "name":"DataFrobotz"},"configuration":{"workflowExecutionRetentionPeriodInDays":"1"}}Vous pouvez également utiliser
describe-domainpour obtenir des informations sur des domaines obsolètes.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consultez également DescribeDomain dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez DescribeDomain
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser list-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--domainet--registration-statussont requis.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDSortie :
{ "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
--namepour sélectionner uniquement les types d’activité portant un nom particulier :aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --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 récupérer les résultats sous forme de pages, vous pouvez définir l’argument
--maximum-page-size. Si le nombre de résultats renvoyés est supérieur à ce que peut contenir une page de résultats, une valeur « nextPageToken » est renvoyée dans le jeu de résultats :aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2Sortie :
{ "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 transmettre la valeur « nextPageToken » au prochain appel à
list-activity-typesdans l’argument--next-page-tokenpour récupérer la page de résultats suivante :aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --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 des résultats à renvoyer, une valeur « nextPageToken » est renvoyée avec les résultats. S’il n’y a pas d’autres pages de résultats à renvoyer, aucune valeur « nextPageToken » n’est renvoyée dans le jeu de résultats.
Vous pouvez utiliser l’argument
--reverse-orderpour inverser l’ordre des résultats renvoyés. Cela affecte également les résultats de la page.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --reverse-orderSortie :
{ "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" } ] }Consultez également ListActivityTypes dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez ListActivityTypes
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser list-domains.
- AWS CLI
-
Exemple 1 : pour répertorier vos domaines enregistrés
L’exemple de commande
list-domainssuivant répertorie les domainesREGISTEREDSWF que vous avez enregistrés pour votre compte.aws swf list-domains \ --registration-statusREGISTEREDSortie :
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }Pour plus d’informations, consultez ListDomains dans la Référence des API Amazon Simple Workflow Service.
Exemple 2 : pour répertorier vos domaines obsolètes
L’exemple de commande
list-domainssuivant répertorie les domainesDEPRECATEDSWF 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-statusDEPRECATEDSortie :
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }Pour plus d’informations, consultez ListDomains dans la Référence des API Amazon Simple Workflow Service.
Exemple 3 : pour répertorier la première page des domaines enregistrés
L’exemple de commande
list-domainssuivant répertorie les domainesREGISTEREDSWF 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-statusREGISTERED\ --maximum-page-size1Sortie :
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }Pour plus d’informations, consultez ListDomains dans la Référence des API Amazon Simple Workflow Service.
Exemple 4 : pour répertorier la page de domaines enregistrés spécifiée
L’exemple de commande
list-domainssuivant répertorie les domainesREGISTEREDSWF 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
nextPageTokendans l’argument--next-page-token, vous obtenez une autre page de résultats.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="Sortie :
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }Lorsqu’il n’y a pas d’autres pages de résultats à récupérer,
nextPageTokenn’est pas renvoyé dans les résultats.Pour plus d’informations, consultez ListDomains dans la Référence des API Amazon Simple Workflow Service.
-
Pour plus de détails sur l’API, consultez ListDomains
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser list-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--domainet--registration-statussont requis. Voici un exemple simple.aws swf list-workflow-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDSortie :
{ "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--namepour sélectionner uniquement les types de flux de travail portant un nom particulier, et utiliser l’argument--maximum-page-sizeen coordination avec--next-page-tokenpour paginer les résultats. Pour inverser l’ordre dans lequel les résultats sont renvoyés, utilisez--reverse-order.Consultez également ListWorkflowTypes dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez ListWorkflowTypes
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser register-domain.
- AWS CLI
-
Enregistrement d’un domaine
Vous pouvez utiliser l’AWS CLI pour enregistrer de nouveaux domaines. Utilisez la commande
swf register-domain. Deux paramètres sont requis,--name, qui prend le nom de domaine, et--workflow-execution-retention-period-in-days, qui prend un nombre entier pour spécifier le nombre de jours (90 maximum) de conservation des données d’exécution du flux de travail sur ce domaine. Pour plus d’informations, consultez la FAQ de 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 \ --nameMyNeatNewDomain\ --workflow-execution-retention-period-in-days0""Lorsque vous inscrivez un domaine, aucune donnée n'est renvoyée (« »), mais vous pouvez utiliser
swf list-domainsouswf describe-domainpour voir le nouveau domaine.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"MyNeatNewDomain"},{"status": "REGISTERED", "name":"erontest"}]}En utilisant
swf describe-domain:aws swf describe-domain --nameMyNeatNewDomain{"domainInfo":{"status": "REGISTERED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consultez également RegisterDomain dans la Référence des API Amazon Simple Workflow Service
-
Pour plus de détails sur l’API, consultez RegisterDomain
dans la Référence des commandes de l’AWS CLI.
-
L’exemple de code suivant montre comment utiliser register-workflow-type.
- AWS CLI
-
Enregistrement d’un type de flux de travail
Pour enregistrer un type de flux de travail avec l’AWS CLI, utilisez la commande
swf register-workflow-type.aws swf register-workflow-type \ --domainDataFrobtzz\ --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,--nameet--workflow-versionsont 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 dans la Référence des API Amazon Simple Workflow Service.
-
Pour plus de détails sur l’API, consultez RegisterWorkflowType
dans la Référence des commandes de l’AWS CLI.
-