SWFExemplos da Amazon usando AWS CLI - AWS SDKExemplos de código

Há mais AWS SDK exemplos disponíveis no GitHub repositório AWS Doc SDK Examples.

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

SWFExemplos da Amazon usando AWS CLI

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

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

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

Tópicos

Ações

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

AWS CLI

Contando as execuções fechadas do fluxo de trabalho

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

Os --start-time-filter argumentos “--domaine” --close-time-filterou “ou” 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” fortrue, “contagem” representará o número máximo que pode ser devolvido pela Amazon. SWF Quaisquer resultados adicionais são truncados.

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

modifique os --start-time-filter valores --close-time-filter ou 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.

Veja também CountClosedWorkflowExecutionsna APIReferência do Amazon Simple Workflow Service

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

AWS CLI

Contando execuções de fluxo de trabalho aberto

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 específicas de execuções.

Os --start-time-filter argumentos --domain e são obrigató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” fortrue, “contagem” representará o número máximo que pode ser devolvido pela Amazon. SWF Quaisquer resultados adicionais são truncados.

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

modifique os --start-time-filter valores para restringir o intervalo de tempo pesquisado. Use os --type-filter argumentos --close-status-filter--execution-filter, --tag-filter ou 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 a APIReferência do Amazon Simple Workflow Service

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

AWS CLI

Depreciando 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. No entanto, se você usar list-domains para visualizar os domínios registrados, verá que o domínio foi descontinuado 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 comlist-domains, você verá seu domínio obsoleto.

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

Você ainda pode 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" } }

Veja também DeprecateDomainna APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte DeprecateDomainna Referência de AWS CLI Comandos.

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

AWS CLI

Obtendo informações sobre um domínio

Para obter informações detalhadas sobre um domínio específico, use o swf describe-domain comando. 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" } }

Você também pode 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" } }

Veja também DescribeDomainna APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte DescribeDomainna Referência de AWS CLI Comandos.

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

AWS CLI

Listando tipos de atividades

Para obter uma lista dos tipos de atividades de um domínio, useswf list-activity-types. Os --registration-status argumentos --domain e são obrigató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 --name argumento 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 --maximum-page-size argumento. 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 nextPageToken valor para a próxima chamada list-activity-types no --next-page-token argumento, 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 houver mais páginas de resultados para retornar, "nextPageToken" não será retornado no conjunto de resultados.

Você pode usar o --reverse-order argumento 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" } ] }

Veja também ListActivityTypesna APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte ListActivityTypesna Referência de AWS CLI Comandos.

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

AWS CLI

Exemplo 1: Para listar seus domínios registrados

O exemplo de list-domains comando a seguir lista os REGISTERED SWF domínios que você registrou para 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 ListDomainsa APIReferência do Amazon Simple Workflow Service

Exemplo 2: Para listar seus domínios obsoletos

O exemplo de list-domains comando a seguir lista os DEPRECATED SWF domínios que você registrou para 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 ListDomainsa APIReferência do Amazon Simple Workflow Service

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

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

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 ListDomainsa APIReferência do Amazon Simple Workflow Service

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

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

Quando você fizer a chamada novamente, desta vez fornecendo o valor de nextPageToken no --next-page-token argumento, você obterá 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 ListDomainsa APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte ListDomainsna Referência de AWS CLI Comandos.

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

AWS CLI

Listando tipos de fluxo de trabalho

Para obter uma lista dos tipos de fluxo de trabalho de um domínio, useswf list-workflow-types. Os --registration-status argumentos --domain e são obrigató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 formalist-activity-types, você pode usar o --name argumento para selecionar somente tipos de fluxo de trabalho com um nome específico e usar o --maximum-page-size argumento em coordenação com --next-page-token os resultados da página. Para reverter a ordem em que os resultados são retornados, use--reverse-order.

Veja também ListWorkflowTypesna APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte ListWorkflowTypesna Referência de AWS CLI Comandos.

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

AWS CLI

Registrando um domínio

Você pode usar o AWS CLI para registrar novos domínios. Use o comando swf register-domain. Há dois parâmetros obrigatórios,--name, que usam o nome do domínio e--workflow-execution-retention-period-in-days, que usam um número inteiro para especificar o número de dias para reter os dados de execução do fluxo de trabalho nesse domínio, até um período máximo de 90 dias (para obter mais informações, consulte SWF FAQ < 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 período 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" } }

Veja também RegisterDomainna APIReferência do Amazon Simple Workflow Service

  • Para API obter detalhes, consulte RegisterDomainna Referência de AWS CLI Comandos.

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

AWS CLI

Registrando um tipo de fluxo de trabalho

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

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

Se for bem-sucedido, o comando não produzirá nenhuma saída.

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

Os--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 de fluxo de trabalho secundário.

Para obter mais informações, consulte RegisterWorkflowTypea APIReferência do Amazon Simple Workflow Service