Exemplos do Amazon SWF da usando a AWS CLI - AWS Command Line Interface

Exemplos do Amazon SWF da usando a AWS CLI

Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando a AWS Command Line Interface com o Amazon SWF.

Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.

Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.

Tópicos

Ações

O código de exemplo a seguir mostra como usar count-closed-workflow-executions.

AWS CLI

Contagem de execuções de fluxo de trabalho encerradas

Você pode usar swf count-closed-workflow-executions para recuperar o número de execuções de fluxo de trabalho encerradas para um determinado domínio. Você pode especificar filtros para contar classes de execuções específicas.

O --domain e um dos argumentos --close-time-filter ou --start-time-filter são obrigatórios. Todos os outros argumentos são opcionais.

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

Saída:

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

Se “truncado” for true, “contagem” representará o número máximo que pode ser retornado pelo Amazon SWF. Quaisquer resultados adicionais são truncados.

Para reduzir o número de resultados retornados, você pode:

modificar os valores de --close-time-filter ou --start-time-filter para restringir o intervalo de tempo pesquisado. Cada um deles é mutuamente exclusivo: você pode especificar somente um deles em uma solicitação. Use os argumentos --close-status-filter, --execution-filter, --tag-filter ou --type-filter para filtrar ainda mais os resultados. No entanto, esses argumentos também são mutuamente exclusivos.

Consulte também CountClosedWorkflowExecutions na Referência de API do Amazon Simple Workflow Service

O código de exemplo a seguir mostra como usar count-open-workflow-executions.

AWS CLI

Contagem de execuções de fluxos de trabalho abertas

Você pode usar swf count-open-workflow-executions para recuperar o número de execuções de fluxo de trabalho abertas para um determinado domínio. Você pode especificar filtros para contar classes de execuções específicas.

Os argumentos --domain e --start-time-filter são necessários. Todos os outros argumentos são opcionais.

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

Saída:

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

Se “truncado” for true, “contagem” representará o número máximo que pode ser retornado pelo Amazon SWF. Quaisquer resultados adicionais são truncados.

Para reduzir o número de resultados retornados, você pode:

modificar os valores de --start-time-filter para restringir o intervalo de tempo pesquisado. Use os argumentos --close-status-filter, --execution-filter, --tag-filter ou --type-filter para filtrar ainda mais os resultados. Cada um deles é mutuamente exclusivo: você pode especificar somente um deles em uma solicitação.

Para obter mais informações, consulte CountOpenWorkflowExecutions na Referência da API do Amazon Simple Workflow Service

O código de exemplo a seguir mostra como usar deprecate-domain.

AWS CLI

Descontinuar um domínio

Para defasar um domínio (você ainda pode vê-lo, mas não pode criar execuções de fluxo de trabalho ou registrar tipos nele), use swf deprecate-domain. Ele tem um único parâmetro obrigatório, --name, que causa a reprovação do nome do domínio.

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

Assim como ocorre com register-domain, nenhuma saída é retornada. Se você usar list-domains para visualizar os domínios registrados, no entanto, você verá que o domínio está obsoleto e não aparece mais nos dados retornados.

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

Se você usar --registration-status DEPRECATED com list-domains, você verá seu domínio obsoleto.

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

Também é possível usar describe-domain para obter informações sobre um domínio obsoleto.

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

Consulte também DeprecateDomain na Referência de API do Amazon Simple Workflow Service

  • Para ver detalhes da API, consulte DeprecateDomain na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar describe-domain.

AWS CLI

Acesso a informações sobre um domínio

Para obter informações detalhadas sobre um domínio específico, use o comando swf describe-domain. Há um parâmetro obrigatório: --name, que leva o nome do domínio sobe o qual você deseja informações.

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

Também é possível usar describe-domain para obter informações sobre domínios obsoletos.

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

Consulte também DescribeDomain na Referência de API do Amazon Simple Workflow Service

  • Para ver detalhes da API, consulte DescribeDomain na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-activity-types.

AWS CLI

Listar tipos de atividades

Para obter uma lista dos tipos de atividades de um domínio, use swf list-activity-types. Os argumentos --domain e --registration-status são necessários.

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

Saída:

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

Você pode usar o argumento --name para selecionar somente tipos de atividade com um nome específico:

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

Saída:

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

Para recuperar resultados em páginas, você pode definir o argumento --maximum-page-size. Se forem retornados mais resultados do que cabem em uma página de resultados, um “nextPageToken” será retornado no conjunto de resultados:

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

Saída:

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

Você pode passar o valor nextPageToken para a próxima chamada para list-activity-types no argumento --next-page-token, recuperando a próxima página de resultados:

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"

Saída:

{ "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 ainda houver mais resultados a serem retornados, “nextPageToken” será retornado com os resultados. Quando não há mais páginas de resultados para recuperar, “nextPageToken” não será retornado nos resultados.

Você pode usar o argumento --reverse-order para reverter a ordem dos resultados retornados. Isso também afeta os resultados paginados.

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

Saída:

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

Consulte também ListActivityTypes na Referência de API do Amazon Simple Workflow Service

  • Para ver detalhes da API, consulte ListActivityTypes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-domains.

AWS CLI

Exemplo 1: listar seus domínios registrados

O exemplo de comando list-domains a seguir lista os domínios do SWF REGISTERED que você registrou na sua conta.

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

Saída:

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

Para obter mais informações, consulte ListDomains na Referência da API do Amazon Simple Workflow Service.

Exemplo 2: listar seus domínios obsoletos

O exemplo de comando list-domains a seguir lista os domínios do SWF DEPRECATED que você registrou na sua conta. Domínios obsoletos são domínios que não podem registrar novos fluxos de trabalho ou atividades, mas que ainda podem ser consultados.

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

Saída:

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

Para obter mais informações, consulte ListDomains na Referência da API do Amazon Simple Workflow Service.

Exemplo 3: listar a primeira página de domínios registrados

O exemplo de comando list-domains a seguir lista os domínios do SWF REGISTERED da primeira página que você registrou na sua conta usando a opção --maximum-page-size.

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

Saída:

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

Para obter mais informações, consulte ListDomains na Referência da API do Amazon Simple Workflow Service.

Exemplo 4: listar a página única especificada de domínios registrados

O exemplo de comando list-domains a seguir lista os domínios do SWF REGISTERED da primeira página que você registrou na sua conta usando a opção --maximum-page-size.

Quando você faz a chamada novamente, mas fornecendo o valor de nextPageToken no argumento --next-page-token, você terá outra página de resultados.

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

Saída:

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

Quando não há mais páginas de resultados para recuperar, nextPageToken não será retornado nos resultados.

Para obter mais informações, consulte ListDomains na Referência da API do Amazon Simple Workflow Service.

  • Para ver detalhes da API, consulte ListDomains na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar list-workflow-types.

AWS CLI

Listar tipos de fluxos de trabalho

Para obter uma lista dos tipos de fluxo de trabalho de um domínio, use swf list-workflow-types. Os argumentos --domain e --registration-status são necessários. Aqui está um exemplo simples.

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

Saída:

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

Da mesma forma que list-activity-types, você pode usar o argumento --name para selecionar somente tipos de fluxo de trabalho com um nome específico e usar o argumento --maximum-page-size em coordenação com --next-page-token para paginar os resultados. Para reverter a ordem em que os resultados são retornados, use --reverse-order.

Consulte também ListWorkflowTypes na Referência de API do Amazon Simple Workflow Service

  • Para ver detalhes da API, consulte ListWorkflowTypes na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar register-domain.

AWS CLI

Registrar um domínio

Você pode usar a AWS CLI para registrar novos domínios. Use o comando swf register-domain. Há dois parâmetros necessários: --name, que usa o nome do domínio, e --workflow-execution-retention-period-in-days, que contém um número inteiro para especificar o número de dias para retenção dos dados de execução do fluxo de trabalho nesse domínio, em um período de no máximo 90 dias (para mais informações, consulte as perguntas frequentes do SWF <https://aws.amazon.com/swf/faqs/#retain_limit>). Os dados de execução do fluxo de trabalho não serão retidos após o número especificado de dias.

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

Ao registrar um domínio, nada será retornado (""), mas você pode usar swf list-domains ou swf describe-domain para ver o novo domínio.

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

Usar swf describe-domain:

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

Consulte também RegisterDomain na Referência de API do Amazon Simple Workflow Service

  • Para ver detalhes da API, consulte RegisterDomain na Referência de comandos da AWS CLI.

O código de exemplo a seguir mostra como usar register-workflow-type.

AWS CLI

Registrar um tipo de fluxo de trabalho

Para registrar um tipo de fluxo de trabalho na AWS CLI, use o comando swf register-workflow-type.

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

Se for bem-sucedido, o comando não gerará nenhum resultado.

Em caso de erro (por exemplo, se você tentar registrar o mesmo fluxo de trabalho duas vezes ou especificar um domínio que não existe), você receberá uma resposta em JSON.

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

O --domain, --name e --workflow-version são obrigatórios. Você também pode definir a descrição do fluxo de trabalho, os tempos limite e a política do fluxo de trabalho secundário.

Para obter mais informações, consulte RegisterWorkflowType na Referência da API do Amazon Simple Workflow Service.