本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SWF 示例 Amazon CLI
以下代码示例向您展示如何在 Amazon SWF 中使用来执行操作和实现常见场景。 Amazon Command Line Interface
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景和跨服务示例的上下文查看操作。
场景是展示如何通过在同一服务中调用多个函数来完成特定任务任务的代码示例。
每个示例都包含一个指向的链接 GitHub,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示如何使用 count-closed-workflow-executions
。
- Amazon CLI
-
计算已关闭的工作流程执行次数
您可以使用检索
swf count-closed-workflow-executions
给定域的已关闭工作流程执行次数。您可以指定过滤器来计算特定的执行类别。--domain
和 o--close-time-filter
r--start-time-filter
参数是必需的。所有其他参数都是可选的。aws swf count-closed-workflow-executions \ --domain DataFrobtzz \ --close-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"
输出:
{ "count": 2, "truncated": false }
如果 “截断” 为
true
,则 “计数” 表示 Amazon SWF 可以返回的最大数量。任何进一步的结果都将被截断。要减少返回的结果数量,您可以:
修改
--close-time-filter
或--start-time-filter
值以缩小搜索的时间范围。每个参数都是互斥的:你只能在请求中指定其中一个。使用--close-status-filter
--execution-filter
、--tag-filter
或--type-filter
参数进一步筛选结果。但是,这些论点也是相互排斥的。另CountClosedWorkflowExecutions请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考CountClosedWorkflowExecutions
中的。
-
以下代码示例演示如何使用 count-open-workflow-executions
。
- Amazon CLI
-
计算未完成的工作流程执行次数
您可以使用检索
swf count-open-workflow-executions
给定域的已打开工作流程执行次数。您可以指定过滤器来计算特定的执行类别。--domain
和--start-time-filter
参数是必需的。所有其他参数都是可选的。aws swf count-open-workflow-executions \ --domain DataFrobtzz \ --start-time-filter "{ \"latestDate\" : 1377129600, \"oldestDate\" : 1370044800 }"
输出:
{ "count": 4, "truncated": false }
如果 “截断” 为
true
,则 “计数” 表示 Amazon SWF 可以返回的最大数量。任何进一步的结果都将被截断。要减少返回的结果数量,您可以:
修改
--start-time-filter
值以缩小搜索的时间范围。使用--close-status-filter
--execution-filter
、--tag-filter
或--type-filter
参数进一步筛选结果。其中每一个都是互斥的:你只能在请求中指定其中一个。有关更多信息,请参阅 CountOpenWorkflowExecutions 《亚马逊简单工作流程服务 API 参考》
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考CountOpenWorkflowExecutions
中的。
-
以下代码示例演示如何使用 deprecate-domain
。
- Amazon CLI
-
弃用域名
要弃用域(您仍可以看到它,但不能在它上面创建新工作流程执行或注册类型),请使用
swf deprecate-domain
。它只有一个必需参数--name
,此参数用于指定要弃用的域的名称。aws swf deprecate-domain \ --name MyNeatNewDomain ""
与
register-domain
一样,不会返回任何输出。但是,如果您list-domains
使用查看已注册的域名,则会看到该域名已被弃用,并且不再出现在返回的数据中。aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }
如果您
--registration-status DEPRECATED
与一起使用list-domains
,则会看到已弃用的域名。aws swf list-domains \ --registration-status DEPRECATED { "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }
您仍然可以使用
describe-domain
来获取有关已弃用域的信息。aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }
另DeprecateDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考DeprecateDomain
中的。
-
以下代码示例演示如何使用 describe-domain
。
- Amazon CLI
-
获取有关域名的信息
要获取有关特定域的详细信息,请使用
swf describe-domain
命令。有一个必需参数:--name
,此参数用于指定您要获取其信息的域的名称。aws swf describe-domain \ --name DataFrobotz { "domainInfo": { "status": "REGISTERED", "name": "DataFrobotz" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "1" } }
您还可以使用获取
describe-domain
有关已弃用域的信息。aws swf describe-domain \ --name MyNeatNewDomain { "domainInfo": { "status": "DEPRECATED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }
另DescribeDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考DescribeDomain
中的。
-
以下代码示例演示如何使用 list-activity-types
。
- Amazon CLI
-
列出活动类型
要获取网域的活动类型列表,请使用
swf list-activity-types
。--domain
和--registration-status
参数是必需的。aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED
输出:
{ "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" } ] }
您可以使用
--name
参数仅选择具有特定名称的活动类型:aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --name "send-subscription-success"
输出:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454150.909, "activityType": { "version": "1", "name": "send-subscription-success" }, "description": "subscribe send-subscription-success activity" } ] }
要在页面中检索结果,可以设置
--maximum-page-size
参数。如果返回的结果超过一页结果所能容纳的范围,则结果集中将返回 nextPageToken “”:aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2
输出:
{ "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" } ] }
你可以将该 nextPageToken 值传递给
--next-page-token
参数list-activity-types
中的下一个调用,检索下一页的结果: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"
输出:
{ "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" } ] }
如果还有更多结果要返回,则将随结果一起返回 nextPageToken “”。如果没有其他要返回的结果页,则不会在结果集中返回 nextPageToken “”。
您可以使用
--reverse-order
参数来颠倒返回结果的顺序。这也会影响分页结果。aws swf list-activity-types \ --domain DataFrobtzz \ --registration-status REGISTERED \ --maximum-page-size 2 \ --reverse-order
输出:
{ "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" } ] }
另ListActivityTypes请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考ListActivityTypes
中的。
-
以下代码示例演示如何使用 list-domains
。
- Amazon CLI
-
示例 1:列出您的注册域名
以下
list-domains
命令示例列出了您为账户注册的REGISTERED
SWF 域。aws swf list-domains \ --registration-status REGISTERED
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }
有关更多信息,请参阅ListDomains《亚马逊简单工作流程服务 API 参考》
示例 2:列出已弃用的域名
以下
list-domains
命令示例列出了您为账户注册的DEPRECATED
SWF 域。已弃用的域名是指无法注册新工作流程或活动,但仍可以查询的域名。aws swf list-domains \ --registration-status DEPRECATED
输出:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }
有关更多信息,请参阅ListDomains《亚马逊简单工作流程服务 API 参考》
示例 3:列出注册域名的第一页
以下
list-domains
命令示例列出了您使用该--maximum-page-size
选项为账户注册的第一页REGISTERED
SWF 域名。aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }
有关更多信息,请参阅ListDomains《亚马逊简单工作流程服务 API 参考》
示例 4:列出指定的单页注册域名
以下
list-domains
命令示例列出了您使用该--maximum-page-size
选项为账户注册的第一页REGISTERED
SWF 域名。当你再次调用时,这次在
--next-page-token
参数nextPageToken
中提供值时,你会得到另一页的结果。aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1 \ --next-page-token "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }
当没有要检索的其他结果页时,
nextPageToken
不会在结果中返回。有关更多信息,请参阅ListDomains《亚马逊简单工作流程服务 API 参考》
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考ListDomains
中的。
-
以下代码示例演示如何使用 list-workflow-types
。
- Amazon CLI
-
列出工作流程类型
要获取域的工作流程类型列表,请使用
swf list-workflow-types
。--domain
和--registration-status
参数是必需的。这是一个简单的例子。aws swf list-workflow-types \ --domain DataFrobtzz \ --registration-status REGISTERED
输出:
{ "typeInfos": [ { "status": "REGISTERED", "creationDate": 1371454149.598, "description": "DataFrobtzz subscribe workflow", "workflowType": { "version": "v3", "name": "subscribe" } } ] }
与一样
list-activity-types
,您可以使用--name
参数仅选择具有特定名称的工作流程类型,并使用该--maximum-page-size
参数--next-page-token
来查看结果。要颠倒返回结果的顺序,请使用--reverse-order
。另ListWorkflowTypes请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考ListWorkflowTypes
中的。
-
以下代码示例演示如何使用 register-domain
。
- Amazon CLI
-
注册域名
您可以使用 Amazon CLI 注册新域名。使用
swf register-domain
命令。< https://aws.amazon.com/swf/faqs/#retain_limit >有两个必需的参数--name
,分别是域名--workflow-execution-retention-period-in-days
,以及使用整数来指定在此域上保留工作流程执行数据的天数,最长为 90 天(有关更多信息,请参阅 SWF 常见问题解答)。经过指定的天数后,工作流程执行数据将不会被保留。aws swf register-domain \ --name MyNeatNewDomain \ --workflow-execution-retention-period-in-days 0 ""
注册域时,不会返回任何内容 (""),但您可以使用
swf list-domains
或swf describe-domain
查看新域。aws swf list-domains \ --registration-status REGISTERED { "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "MyNeatNewDomain" }, { "status": "REGISTERED", "name": "erontest" } ] }
使用
swf describe-domain
:aws swf describe-domain --name MyNeatNewDomain { "domainInfo": { "status": "REGISTERED", "name": "MyNeatNewDomain" }, "configuration": { "workflowExecutionRetentionPeriodInDays": "0" } }
另RegisterDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考RegisterDomain
中的。
-
以下代码示例演示如何使用 register-workflow-type
。
- Amazon CLI
-
注册工作流程类型
要向 C Amazon LI 注册工作流程类型,请使用
swf register-workflow-type
命令。aws swf register-workflow-type \ --domain DataFrobtzz \ --name "MySimpleWorkflow" \ --workflow-version "v1"
如果成功,该命令将不产生任何输出。
出现错误时(例如,如果您尝试注册相同的工作流程类型两次,或者指定了一个不存在的域),您将收到 JSON 格式的响应。
{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }
--domain
、--name
和--workflow-version
为必填项。您还可以设置工作流程描述、超时和子工作流程策略。有关更多信息,请参阅RegisterWorkflowType《亚马逊简单工作流程服务 API 参考》
-
有关 API 的详细信息,请参阅Amazon CLI 命令参考RegisterWorkflowType
中的。
-