Há mais exemplos de AWS SDK disponíveis no 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á.
Exemplos de Amazon SWF 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 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-executionspara 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
--domaine um dos argumentos--close-time-filterou--start-time-filtersão obrigatórios. Todos os outros argumentos são opcionais.aws swf count-closed-workflow-executions \ --domainDataFrobtzz\ --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-filterou--start-time-filterpara 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-filterou--type-filterpara filtrar ainda mais os resultados. No entanto, esses argumentos também são mutuamente exclusivos.Veja também CountClosedWorkflowExecutionsna referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte CountClosedWorkflowExecutions
em Referência de AWS CLI Comandos.
-
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-executionspara 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
--domaine--start-time-filtersão necessários. Todos os outros argumentos são opcionais.aws swf count-open-workflow-executions \ --domainDataFrobtzz\ --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-filterpara restringir o intervalo de tempo pesquisado. Use os argumentos--close-status-filter,--execution-filter,--tag-filterou--type-filterpara 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 a Referência CountOpenWorkflowExecutions de API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte CountOpenWorkflowExecutions
em Referência de AWS CLI Comandos.
-
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 \ --nameMyNeatNewDomain""Assim como ocorre com
register-domain, nenhuma saída é retornada. Se você usarlist-domainspara 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-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"erontest"}]}Se você usar
--registration-status DEPRECATEDcomlist-domains, você verá seu domínio obsoleto.aws swf list-domains \ --registration-statusDEPRECATED{"domainInfos":[{"status": "DEPRECATED", "name":"MyNeatNewDomain"}]}Também é possível usar
describe-domainpara obter informações sobre um domínio obsoleto.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Veja também DeprecateDomainna referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte DeprecateDomain
em Referência de AWS CLI Comandos.
-
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 \ --nameDataFrobotz{"domainInfo":{"status": "REGISTERED", "name":"DataFrobotz"},"configuration":{"workflowExecutionRetentionPeriodInDays":"1"}}Também é possível usar
describe-domainpara obter informações sobre domínios obsoletos.aws swf describe-domain \ --nameMyNeatNewDomain{"domainInfo":{"status": "DEPRECATED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Veja também DescribeDomainna referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte DescribeDomain
em Referência de AWS CLI Comandos.
-
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--domaine--registration-statussão necessários.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDSaí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
--namepara selecionar somente tipos de atividade com um nome específico:aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --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 \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2Saí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-typesno--next-page-tokenargumento, recuperando a próxima página de resultados: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"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 argumento
--reverse-orderpara reverter a ordem dos resultados retornados. Isso também afeta os resultados paginados.aws swf list-activity-types \ --domainDataFrobtzz\ --registration-statusREGISTERED\ --maximum-page-size2\ --reverse-orderSaí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 referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte ListActivityTypes
em Referência de AWS CLI Comandos.
-
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-domainsa seguir lista os domínios do SWFREGISTEREDque você registrou na sua conta.aws swf list-domains \ --registration-statusREGISTEREDSaída:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }Para obter mais informações, consulte a Referência ListDomainsde API do Amazon Simple Workflow Service
Exemplo 2: listar seus domínios obsoletos
O exemplo de comando
list-domainsa seguir lista os domínios do SWFDEPRECATEDque 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-statusDEPRECATEDSaída:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }Para obter mais informações, consulte a Referência ListDomainsde API do Amazon Simple Workflow Service
Exemplo 3: listar a primeira página de domínios registrados
O exemplo de comando
list-domainsa seguir lista os domínios do SWFREGISTEREDda primeira página que você registrou na sua conta usando a opção--maximum-page-size.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1Saída:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }Para obter mais informações, consulte a Referência ListDomainsde API do Amazon Simple Workflow Service
Exemplo 4: listar a página única especificada de domínios registrados
O exemplo de comando
list-domainsa seguir lista os domínios do SWFREGISTEREDda 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
nextPageTokenno argumento--next-page-token, você terá outra página de resultados.aws swf list-domains \ --registration-statusREGISTERED\ --maximum-page-size1\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="Saída:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }Quando não há mais páginas de resultados para recuperar,
nextPageTokennão será retornado nos resultados.Para obter mais informações, consulte a Referência ListDomainsde API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte ListDomains
em Referência de AWS CLI Comandos.
-
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--domaine--registration-statussão necessários. Aqui está um exemplo simples.aws swf list-workflow-types \ --domainDataFrobtzz\ --registration-statusREGISTEREDSaí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--namepara selecionar somente tipos de fluxo de trabalho com um nome específico e usar o argumento--maximum-page-sizeem coordenação com--next-page-tokenpara paginar os resultados. Para reverter a ordem em que os resultados são retornados, use--reverse-order.Veja também ListWorkflowTypesna referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte ListWorkflowTypes
em Referência de AWS CLI Comandos.
-
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 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 o FAQ 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 \ --nameMyNeatNewDomain\ --workflow-execution-retention-period-in-days0""Ao registrar um domínio, nada será retornado (""), mas você pode usar
swf list-domainsouswf describe-domainpara ver o novo domínio.aws swf list-domains \ --registration-statusREGISTERED{"domainInfos":[{"status": "REGISTERED", "name":"DataFrobotz"},{"status": "REGISTERED", "name":"MyNeatNewDomain"},{"status": "REGISTERED", "name":"erontest"}]}Usar
swf describe-domain:aws swf describe-domain --nameMyNeatNewDomain{"domainInfo":{"status": "REGISTERED", "name":"MyNeatNewDomain"},"configuration":{"workflowExecutionRetentionPeriodInDays":"0"}}Veja também RegisterDomainna referência da API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte RegisterDomain
em Referência de AWS CLI Comandos.
-
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
swf register-workflow-typecomando.aws swf register-workflow-type \ --domainDataFrobtzz\ --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,--namee--workflow-versionsã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 a Referência RegisterWorkflowTypede API do Amazon Simple Workflow Service
-
Para obter detalhes da API, consulte RegisterWorkflowType
em Referência de AWS CLI Comandos.
-