Esempi di Amazon SWF con AWS CLI - AWS Command Line Interface

Questa documentazione è valida AWS CLI solo per la versione 1. Per la documentazione relativa alla versione 2 di AWS CLI, consulta la Guida per l'utente della versione 2.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Esempi di Amazon SWF con AWS CLI

I seguenti esempi di codice mostrano come eseguire azioni e implementare scenari comuni utilizzando Amazon SWF. AWS Command Line Interface

Le azioni sono estratti di codice da programmi più grandi e devono essere eseguite nel contesto. Sebbene le azioni mostrino come richiamare le singole funzioni del servizio, è possibile visualizzarle contestualizzate negli scenari correlati.

Ogni esempio include un link al codice sorgente completo, in cui vengono fornite le istruzioni su come configurare ed eseguire il codice nel contesto.

Argomenti

Azioni

Il seguente esempio di codice mostra come usarecount-closed-workflow-executions.

AWS CLI

Conteggio delle esecuzioni del flusso di lavoro chiuso

È possibile utilizzare swf count-closed-workflow-executions per recuperare il numero di flussi di lavoro chiusi per un determinato dominio. È possibile specificare dei filtri per contare classi specifiche di esecuzioni.

Gli argomenti --domain e sia --close-time-filter che --start-time-filter sono obbligatori. Tutti gli altri argomenti sono facoltativi.

aws swf count-closed-workflow-executions \ --domain DataFrobtzz \ --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-filter o --close-time-filter per 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-filter o --type-filter per filtrare ulteriormente i risultati. Tuttavia, anche questi argomenti si escludono a vicenda.

Vedi anche CountClosedWorkflowExecutionsnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzarecount-open-workflow-executions.

AWS CLI

Conteggio delle esecuzioni del flusso di lavoro aperto

È possibile utilizzare swf count-open-workflow-executions per recuperare il numero di flussi di lavoro aperti per un determinato dominio. È possibile specificare dei filtri per contare classi specifiche di esecuzioni.

Gli argomenti --domain e --start-time-filter sono obbligatori. Tutti gli altri argomenti sono facoltativi.

aws swf count-open-workflow-executions \ --domain DataFrobtzz \ --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-filter per restringere l’intervallo di tempo in cui viene effettuata la ricerca. Utilizza gli argomenti --close-status-filter, --execution-filter, --tag-filter o --type-filter per filtrare ulteriormente i risultati. Ciascuno di questi si esclude a vicenda: è possibile specificare solo uno di questi in una richiesta.

Per ulteriori informazioni, consulta il riferimento CountOpenWorkflowExecutions all'API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzaredeprecate-domain.

AWS CLI

Deprecare 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 \ --name MyNeatNewDomain ""

Come per register-domain, non viene restituito alcun output. Se tuttavia utilizzi list-domains per visualizzare i domini registrati, vedrai che il dominio è stato dichiarato obsoleto e non compare più tra i dati restituiti.

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

Se utilizzi --registration-status DEPRECATED con list-domains vedrai il tuo dominio obsoleto.

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

Puoi ancora utilizzare describe-domain per ottenere informazioni su un dominio obsoleto.

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

Vedi anche DeprecateDomainnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzaredescribe-domain.

AWS CLI

Ottenere 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 \ --name DataFrobotz { "domainInfo": { "status": "REGISTERED", "name": "DataFrobotz" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "1" } }

Puoi anche utilizzare describe-domain per ottenere informazioni sui domini obsoleti.

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

Vedi anche DescribeDomainnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzarelist-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 argomenti --domain e --registration-status sono obbligatori.

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

Output:

{ "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 --name per selezionare solo i tipi di attività con un nome particolare:

aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --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, verrà restituito un nextPageToken "" nel set di risultati:

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

Output:

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

È possibile passare il nextPageToken valore alla chiamata successiva list-activity-types all'--next-page-tokenargomento, recuperando la pagina successiva di risultati:

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"

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 non ci sono più pagine di risultati da restituire, "nextPageToken" non verrà restituito nel set di risultati.

È possibile utilizzare l’argomento --reverse-order per invertire l’ordine dei risultati restituiti. Ciò influisce anche sui risultati paginati.

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

Output:

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

Vedi anche ListActivityTypesnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzarelist-domains.

AWS CLI

Esempio 1: come elencare i domini registrati

Il comando list-domains seguente elenca i domini REGISTERED SWF che hai registrato per il tuo account.

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

Output:

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

Per ulteriori informazioni, consulta il riferimento ListDomainsall'API di Amazon Simple Workflow Service

Esempio 2: come elencare i domini obsoleti

Il comando list-domains seguente elenca i domini DEPRECATED SWF 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-status DEPRECATED

Output:

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

Per ulteriori informazioni, consulta il riferimento ListDomainsall'API di Amazon Simple Workflow Service

Esempio 3: come elencare la prima pagina dei domini registrati

Il comando list-domains seguente elenca i domini REGISTERED SWF della prima pagina che hai registrato per il tuo account utilizzando l’opzione --maximum-page-size.

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

Output:

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

Per ulteriori informazioni, consulta il riferimento ListDomainsall'API di Amazon Simple Workflow Service

Esempio 4: come elencare la pagina singola specificata dei domini registrati

Il comando list-domains seguente elenca i domini REGISTERED SWF 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 nextPageToken nell’argomento --next-page-token, riceverai un’altra pagina di risultati.

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

Output:

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

Quando le pagine dei risultati da recuperare saranno terminate, nextPageToken non verrà restituito nei risultati.

Per ulteriori informazioni, consulta il riferimento ListDomainsall'API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzarelist-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 argomenti --domain e --registration-status sono obbligatori. Ecco un semplice esempio.

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

Output:

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

Come con list-activity-types, è possibile utilizzare l’argomento --name per selezionare solo i tipi di flusso di lavoro con un nome particolare e utilizzare l’argomento --maximum-page-size in coordinamento con --next-page-token per i risultati della pagina. Per invertire l’ordine in cui vengono restituiti i risultati, utilizza --reverse-order.

Vedi anche ListWorkflowTypesnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzareregister-domain.

AWS CLI

Registrazione di un dominio

Puoi usare la AWS CLI per registrare nuovi domini. Utilizza il comando swf register-domain. Sono necessari due parametri--name, che richiedono il nome di dominio e --workflow-execution-retention-period-in-days un numero intero per specificare il numero di giorni necessari per conservare i dati di esecuzione del flusso di lavoro su questo dominio, fino a un periodo massimo di 90 giorni (per ulteriori informazioni, consultate le domande frequenti su SWF < faqs/ #retain_limit >). https://aws.amazon.com/swf/ I dati di esecuzione dei flussi di lavoro non saranno conservati una volta superato il numero di giorni specificato.

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

Quando si registra un dominio, non viene restituito alcun valore (""), ma è possibile utilizzare swf list-domains o swf describe-domain per visualizzare il nuovo dominio.

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

Con swf describe-domain:

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

Vedi anche RegisterDomainnel riferimento alle API di Amazon Simple Workflow Service

Il seguente esempio di codice mostra come utilizzareregister-workflow-type.

AWS CLI

Registrazione di un tipo di workflow

Per registrare un tipo di workflow con la AWS CLI, utilizzate il swf register-workflow-type comando.

aws swf register-workflow-type \ --domain DataFrobtzz \ --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, --name e --workflow-version sono obbligatori. Puoi anche impostare la descrizione del flusso di lavoro, i timeout e la policy del flusso di lavoro secondario.

Per ulteriori informazioni, consulta il riferimento RegisterWorkflowTypeall'API di Amazon Simple Workflow Service