Esempi di Amazon SWF con la AWS CLI
Gli esempi di codice seguenti mostrano come eseguire azioni e implementare scenari comuni utilizzando AWS Command Line Interface con Amazon SWF.
Le operazioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le operazioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.
Ogni esempio include un link al codice sorgente completo, dove è possibile trovare le istruzioni su come configurare ed eseguire il codice nel contesto.
Argomenti
Operazioni
L’esempio di codice seguente mostra come utilizzare count-closed-workflow-executions.
- AWS CLI
-
Conteggio delle esecuzioni del flusso di lavoro chiuso
È possibile utilizzare
swf count-closed-workflow-executionsper recuperare il numero di flussi di lavoro chiusi per un determinato dominio. È possibile specificare dei filtri per contare classi specifiche di esecuzioni.Gli argomenti
--domaine sia--close-time-filterche--start-time-filtersono obbligatori. Tutti gli altri argomenti sono facoltativi.aws swf count-closed-workflow-executions \ --domainDataFrobtzz\ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"Output:
{ "count": 2, "truncated": false }Se “truncated” è
true, allora “count” rappresenta il numero massimo che può essere restituito da Amazon SWF. Eventuali ulteriori risultati vengono troncati.Per ridurre il numero di risultati restituiti, puoi:
modificare i valori
--start-time-filtero--close-time-filterper restringere l’intervallo di tempo in cui viene effettuata la ricerca. Ciascuno di questi si esclude a vicenda: puoi specificarne solo uno in una richiesta. Utilizza gli argomenti--close-status-filter,--execution-filter,--tag-filtero--type-filterper filtrare ulteriormente i risultati. Tuttavia, anche questi argomenti si escludono a vicenda.Consulta anche CountClosedWorkflowExecutions nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta CountClosedWorkflowExecutions
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare count-open-workflow-executions.
- AWS CLI
-
Conteggio delle esecuzioni del flusso di lavoro aperto
È possibile utilizzare
swf count-open-workflow-executionsper recuperare il numero di flussi di lavoro aperti per un determinato dominio. È possibile specificare dei filtri per contare classi specifiche di esecuzioni.Gli elementi
--domaine--start-time-filtersono obbligatori. Tutti gli altri argomenti sono facoltativi.aws swf count-open-workflow-executions \ --domainDataFrobtzz\ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"Output:
{ "count": 4, "truncated": false }Se “truncated” è
true, allora “count” rappresenta il numero massimo che può essere restituito da Amazon SWF. Eventuali ulteriori risultati vengono troncati.Per ridurre il numero di risultati restituiti, puoi:
modificare i valori
--start-time-filterper restringere l’intervallo di tempo in cui viene effettuata la ricerca. Utilizza gli argomenti--close-status-filter,--execution-filter,--tag-filtero--type-filterper filtrare ulteriormente i risultati. Ciascuno di questi si esclude a vicenda: è possibile specificare solo uno di questi in una richiesta.Per ulteriori informazioni, consulta CountOpenWorkflowExecutions nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta CountOpenWorkflowExecutions
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare deprecate-domain.
- AWS CLI
-
Dichiarare obsoleto un dominio
Per impostare come obsoleto un dominio (che resta comunque visibile, ma non può essere utilizzato per creare nuove esecuzioni di flussi di lavoro o registrare tipi), utilizza
swf deprecate-domain. Esiste un solo parametro obbligatorio,--name, che assume il nome del dominio da dichiarare obsoleto.aws swf deprecate-domain \ --nameMyNeatNewDomain""Come per
register-domain, non viene restituito alcun output. Se tuttavia utilizzilist-domainsper visualizzare i domini registrati, vedrai che il dominio è stato dichiarato obsoleto e non compare più tra i dati restituiti.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"erontest"}]}Se usi
--registration-status DEPRECATEDconlist-domainsvedrai il tuo dominio obsoleto.aws swf list-domains \ --registration-statusDEPRECATED{"domainInfos":[{"status": "DEPRECATED", "name":"MyNeatNewDomain"}]}Puoi ancora utilizzare
describe-domainper ottenere informazioni su un dominio obsoleto.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consulta anche DeprecateDomain nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta DeprecateDomain
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare describe-domain.
- AWS CLI
-
Recupero di informazioni su un dominio
Per ottenere informazioni dettagliate su un dominio specifico, utilizza il comando
swf describe-domain. Esiste un solo parametro obbligatorio:--name, che assume il nome del dominio su cui si desidera ottenere informazioni.aws swf describe-domain \ --nameDataFrobotz{"domainInfo":{"status": "REGISTERED", "name":"DataFrobotz"},"configuration":{"workflowExecutionRetentionPeriodInDays":"1"}}Puoi anche utilizzare
describe-domainper ottenere informazioni sui domini obsoleti.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consulta anche DescribeDomain nel riferimento all’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta DescribeDomain
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare list-activity-types.
- AWS CLI
-
Elenco dei tipi di attività
Per ottenere un elenco dei tipi di attività per un dominio, utilizza
swf list-activity-types. Gli elementi--domaine--registration-statussono obbligatori.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDOutput:
{ "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" } ] }Puoi utilizzare l’argomento
--nameper selezionare solo i tipi di attività con un nome particolare:aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --name"send-subscription-success"Output:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }Per recuperare i risultati nelle pagine, puoi impostare l’argomento
--maximum-page-size. Se vengono restituiti più risultati di quelli contenuti in una pagina di risultati, nel set di risultati verrà restituito un “nextPageToken”:aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2Output:
{ "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" } ] }Puoi passare il valore nextPageToken alla chiamata successiva a
list-activity-typesnell’argomento--next-page-token, recuperando la pagina successiva di risultati: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"Output:
{ "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" } ] }Se ci sono ancora altri risultati da restituire, verrà restituito “nextPageToken” con i risultati. Quando le pagine dei risultati da recuperare saranno terminate, “nextPageToken” non verrà restituito nei risultati.
È possibile utilizzare l’argomento
--reverse-orderper invertire l’ordine dei risultati restituiti. Ciò influisce anche sui risultati paginati.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --reverse-orderOutput:
{ "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" } ] }Consulta anche ListActivityTypes nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta ListActivityTypes
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare list-domains.
- AWS CLI
-
Esempio 1: elencare i domini registrati
Il comando di esempio seguente
list-domainselenca i dominiREGISTEREDSWF che hai registrato per il tuo account.aws swf list-domains \ --registration-statusREGISTEREDOutput:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }Per ulteriori informazioni, consulta ListDomains nella documentazione di riferimento delle API di Amazon Simple Storage Service.
Esempio 2: elencare i domini obsoleti
Il comando di esempio seguente
list-domainselenca i dominiDEPRECATEDSWF che hai registrato per il tuo account. I domini obsoleti sono domini che non possono registrare nuovi flussi di lavoro o attività, ma che possono comunque essere interrogati.aws swf list-domains \ --registration-statusDEPRECATEDOutput:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }Per ulteriori informazioni, consulta ListDomains nella documentazione di riferimento delle API di Amazon Simple Storage Service.
Esempio 3: elencare la prima pagina dei domini registrati
Il comando di esempio seguente
list-domainselenca i dominiREGISTEREDSWF della prima pagina che hai registrato per il tuo account utilizzando l’opzione--maximum-page-size.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1Output:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }Per ulteriori informazioni, consulta ListDomains nella documentazione di riferimento delle API di Amazon Simple Storage Service.
Esempio 4: elencare la pagina singola specificata dei domini registrati
Il comando di esempio seguente
list-domainselenca i dominiREGISTEREDSWF della prima pagina che hai registrato per il tuo account utilizzando l’opzione--maximum-page-size.Quando effettuerai nuovamente la chiamata, fornendo il valore di
nextPageTokennell’argomento--next-page-token, riceverai un’altra pagina di risultati.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="Output:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }Quando le pagine dei risultati da recuperare saranno terminate,
nextPageTokennon verrà restituito nei risultati.Per ulteriori informazioni, consulta ListDomains nella documentazione di riferimento delle API di Amazon Simple Storage Service.
-
Per informazioni dettagliate sull’API, consulta ListDomains
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare list-workflow-types.
- AWS CLI
-
Elenco dei tipi di flusso di lavoro
Per ottenere un elenco dei tipi di flusso di lavoro per un dominio, utilizza
swf list-workflow-types. Gli elementi--domaine--registration-statussono obbligatori. Ecco un semplice esempio.aws swf list-workflow-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDOutput:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.598, "description": "DataFrobtzz subscribe workflow", "workflowType": { "version": "v3", "name": "subscribe" } } ] }Come con
list-activity-types, è possibile utilizzare l’argomento--nameper selezionare solo i tipi di flusso di lavoro con un nome particolare e utilizzare l’argomento--maximum-page-sizein coordinamento con--next-page-tokenper i risultati della pagina. Per invertire l’ordine in cui vengono restituiti i risultati, utilizza--reverse-order.Consulta anche ListWorkflowTypes nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta ListWorkflowTypes
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare register-domain.
- AWS CLI
-
Registrazione di un dominio
Puoi utilizzare AWS CLI per registrare nuovi domini. Utilizza il comando
swf register-domain. Esistono due parametri obbligatori:--name, che assume il nome del dominio, e--workflow-execution-retention-period-in-days, che assume un valore intero per specificare il numero di giorni per mantenere i dati di esecuzione dei flussi di lavoro su questo dominio, fino a un massimo di 90 giorni (per ulteriori informazioni, consulta le domande frequenti relative a SWF <https://aws.amazon.com/swf/faqs/#retain_limit>). I dati di esecuzione dei flussi di lavoro non saranno conservati una volta superato il numero di giorni specificato.aws swf register-domain \ --nameMyNeatNewDomain\ --workflow-execution-retention-period-in-days0""Quando si registra un dominio, non viene restituito alcun valore (""), ma è possibile utilizzare
swf list-domainsoswf describe-domainper visualizzare il nuovo dominio.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"MyNeatNewDomain"},{"status": "REGISTERED", "name":"erontest"}]}Con
swf describe-domain:aws swf describe-domain --nameMyNeatNewDomain{"domainInfo":{"status": "REGISTERED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Consulta anche RegisterDomain nella documentazione di riferimento dell’API di Amazon Simple Workflow Service
-
Per informazioni dettagliate sull’API, consulta RegisterDomain
in AWS CLI Command Reference.
-
L’esempio di codice seguente mostra come utilizzare register-workflow-type.
- AWS CLI
-
Registrazione di un tipo di flusso di lavoro
Per registrare un tipo di workflow con AWS CLI, utilizza il comando
swf register-workflow-type.aws swf register-workflow-type \ --domainDataFrobtzz\ --name"MySimpleWorkflow"\ --workflow-version"v1"Se il comando ha esito positivo, non produce alcun output.
In caso di errore (ad esempio, se provi a registrare due volte lo stesso tipo di flusso di lavoro o specifichi un dominio che non esiste) riceverai una risposta in JSON.
{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }--domain,--namee--workflow-versionsono obbligatori. Puoi anche impostare la descrizione del flusso di lavoro, i timeout e la policy del flusso di lavoro secondario.Per ulteriori informazioni, consulta RegisterWorkflowType nella documentazione di riferimento delle API di Amazon Simple Storage Service.
-
Per informazioni dettagliate sull’API, consulta RegisterWorkflowType
in AWS CLI Command Reference.
-