本文档仅适用于 AWS CLI 版本 1。有关 AWS CLI 版本 2 的相关文档,请参阅版本 2 用户指南。
使用 AWS CLI 的 Amazon SWF 示例
以下代码示例演示了如何通过将 AWS Command Line Interface与 Amazon SWF 结合使用,来执行操作和实现常见场景。
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示了如何使用 count-closed-workflow-executions
。
- AWS CLI
-
统计已关闭的工作流执行次数
您可以使用
swf count-closed-workflow-executions
检索给定域的已关闭工作流执行次数。您可以指定筛选器来统计指定的执行类别。--domain
和--close-time-filter
或--start-time-filter
参数为必填项。所有其他参数都为可选项。aws swf count-closed-workflow-executions \ --domain
DataFrobtzz
\ --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 详细信息,请参阅《AWS CLI 命令参考》中的 CountClosedWorkflowExecutions
。
-
以下代码示例演示了如何使用 count-open-workflow-executions
。
- AWS 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 }
如果“truncated”为
true
,则“count”表示 Amazon SWF 可以返回的最大数量。任何其他结果都会被截断。要减少返回结果的数量,您可以:
修改
--start-time-filter
值以缩小搜索的时间范围。使用--close-status-filter
、--execution-filter
、--tag-filter
或--type-filter
参数进一步筛选结果。其中每一参数都是互斥的:您只能在请求中指定其中一个。有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的“CountOpenWorkflowExecutions”
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 CountOpenWorkflowExecutions
。
-
以下代码示例演示了如何使用 deprecate-domain
。
- AWS 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"
}
]
}
如果您将
list-domains
与--registration-status DEPRECATED
一起使用,则会看到已弃用的域。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"
}
}
另请参阅《Amazon Simple Workflow 服务 API 参考》中的 DeprecateDomain
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DeprecateDomain
。
-
以下代码示例演示了如何使用 describe-domain
。
- AWS 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"
}
}
另请参阅《Amazon Simple Workflow 服务 API 参考》中的 DescribeDomain
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 DescribeDomain
。
-
以下代码示例演示了如何使用 list-activity-types
。
- AWS CLI
-
列出活动类型
要获取域的活动类型列表,请使用
swf list-activity-types
。--domain
和--registration-status
是必填参数。aws swf list-activity-types \ --domain
DataFrobtzz
\ --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 \ --domain
DataFrobtzz
\ --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 \ --domain
DataFrobtzz
\ --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 \ --domain
DataFrobtzz
\ --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 \ --domain
DataFrobtzz
\ --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 详细信息,请参阅《AWS CLI 命令参考》中的 ListActivityTypes
。
-
以下代码示例演示了如何使用 list-domains
。
- AWS CLI
-
示例 1:列出您注册的域
以下
list-domains
命令示例列出已为您账户注册的REGISTERED
SWF 域。aws swf list-domains \ --registration-status
REGISTERED
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }
有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的 ListDomains。
示例 2:列出已弃用的域
以下
list-domains
命令示例列出已为您账户注册的DEPRECATED
SWF 域。已弃用的域是指无法注册新工作流或活动,但仍可以查询的域。aws swf list-domains \ --registration-status
DEPRECATED
输出:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }
有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的 ListDomains。
示例 3:列出已注册域的第一页
以下
list-domains
命令示例列出使用--maximum-page-size
选项已为您账户注册的第一页REGISTERED
SWF 域。aws swf list-domains \ --registration-status
REGISTERED
\ --maximum-page-size1
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }
有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的 ListDomains。
示例 4:列出已注册域的指定一页
以下
list-domains
命令示例列出使用--maximum-page-size
选项已为您账户注册的第一页REGISTERED
SWF 域。再次调用时,如果在
--next-page-token
参数中提供nextPageToken
的值,那么您将会得到另外一页结果。aws swf list-domains \ --registration-status
REGISTERED
\ --maximum-page-size1
\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }
当没有要检索的其他结果页时,
nextPageToken
不会在结果中返回。有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的 ListDomains。
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 ListDomains
。
-
以下代码示例演示了如何使用 list-workflow-types
。
- AWS CLI
-
列出工作流类型
要获取域的工作流类型列表,请使用
swf list-workflow-types
。--domain
和--registration-status
是必填参数。下面是一个简单的示例。aws swf list-workflow-types \ --domain
DataFrobtzz
\ --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 详细信息,请参阅《AWS CLI 命令参考》中的 ListWorkflowTypes
。
-
以下代码示例演示了如何使用 register-domain
。
- AWS CLI
-
注册域
您可以使用 AWS 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 \ --name
MyNeatNewDomain
\ --workflow-execution-retention-period-in-days0
""注册域时,不会返回任何内容(“”),但您可以使用
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"
}
}
另请参阅《Amazon Simple Workflow 服务 API 参考》中的 RegisterDomain
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RegisterDomain
。
-
以下代码示例演示了如何使用 register-workflow-type
。
- AWS CLI
-
注册工作流类型
要使用 AWS CLI 注册工作流类型,请使用
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
为必填。您还可以设置工作流描述、超时和子工作流策略。有关更多信息,请参阅《Amazon Simple Workflow 服务 API 参考》中的 RegisterWorkflowType
-
有关 API 详细信息,请参阅《AWS CLI 命令参考》中的 RegisterWorkflowType
。
-