文档 AWS SDK 示例 GitHub 存储库中还有更多 S AWS DK 示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
使用 Amazon SWF 示例 AWS CLI
以下代码示例向您展示如何在 Amazon SWF 中使用来执行操作和实现常见场景。 AWS Command Line Interface
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示如何使用 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
参数可进一步筛选结果。但是,这些参数也是相互排斥的。另CountClosedWorkflowExecutions请参阅 Amazon 简单工作流程服务 API 参考
-
有关 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
参数进一步筛选结果。其中每一参数都是互斥的:您只能在请求中指定其中一个。有关更多信息,请参阅 CountOpenWorkflowExecutions 《亚马逊简单工作流程服务 API 参考》
-
有关 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"
}
}
另DeprecateDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 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"
}
}
另DescribeDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 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" } ] }
另ListActivityTypes请参阅 Amazon 简单工作流程服务 API 参考
-
有关 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" } ] }
有关更多信息,请参阅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-size1
输出:
{ "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-size1
\ --next-page-token"AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ=="
输出:
{ "domainInfos": [ { "status": "REGISTERED", "name": "erontest" } ] }
当没有要检索的其他结果页时,
nextPageToken
不会在结果中返回。有关更多信息,请参阅ListDomains《亚马逊简单工作流程服务 API 参考》
-
有关 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
。另ListWorkflowTypes请参阅 Amazon 简单工作流程服务 API 参考
-
有关 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"
}
}
另RegisterDomain请参阅 Amazon 简单工作流程服务 API 参考
-
有关 API 的详细信息,请参阅AWS CLI 命令参考RegisterDomain
中的。
-
以下代码示例演示如何使用 register-workflow-type
。
- AWS CLI
-
注册工作流类型
要向 C AWS 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 的详细信息,请参阅AWS CLI 命令参考RegisterWorkflowType
中的。
-