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