本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 的 Amazon SWF範例 AWS CLI
下列程式碼範例示範如何搭配 AWS Command Line Interface Amazon 使用 來執行動作和實作常見案例SWF。
Actions 是大型程式的程式碼摘錄,必須在內容中執行。雖然動作會示範如何呼叫個別服務函數,但您可以在其相關案例中查看內容中的動作。
每個範例都包含完整原始程式碼的連結,您可以在其中找到如何在內容中設定和執行程式碼的指示。
主題
動作
下列程式碼範例示範如何使用 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 }
如果「截斷」為
true
,則「計數」表示 Amazon 可以傳回的最大數量SWF。任何進一步的結果都會截斷。若要減少傳回的結果數目,您可以:
修改
--close-time-filter
或--start-time-filter
值以縮小搜尋的時間範圍。這些都是互斥的:您只能在 請求中指定其中一個。使用--close-status-filter
、--execution-filter
--tag-filter
或--type-filter
引數來進一步篩選結果。不過,這些引數也是互斥的。另CountClosedWorkflowExecutions請參閱 Amazon Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 CountClosedWorkflowExecutions
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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 }
如果「截斷」為
true
,則「計數」表示 Amazon 可以傳回的最大數量SWF。任何進一步的結果都會截斷。若要減少傳回的結果數目,您可以:
修改
--start-time-filter
值以縮小搜尋的時間範圍。使用--close-status-filter
、--execution-filter
--tag-filter
或--type-filter
引數進一步篩選結果。這些都是互斥的:您只能在請求中指定其中一個。如需詳細資訊,請參閱 Amazon Simple Workflow Service API參考 CountOpenWorkflowExecutions 中的
-
如需API詳細資訊,請參閱 命令參考 CountOpenWorkflowExecutions
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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"
}
]
}
如果您
--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 Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 DeprecateDomain
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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 Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 DescribeDomain
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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" } ] }
您可以在
--next-page-token
引數list-activity-types
中將 nextPageToken 值傳遞至下一個呼叫,擷取結果的下一頁: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 Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 ListActivityTypes
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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 Service API參考ListDomains中的
範例 2:列出已棄用網域
下列
list-domains
命令範例會列出您已為帳戶註冊的DEPRECATED
SWF網域。已棄用網域是無法註冊新工作流程或活動的網域,但仍可以查詢。aws swf list-domains \ --registration-status
DEPRECATED
輸出:
{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }
如需詳細資訊,請參閱 Amazon Simple Workflow Service 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 Service 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 Service API參考ListDomains中的
-
如需API詳細資訊,請參閱 命令參考 ListDomains
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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
引數來僅選取具有特定名稱的工作流程類型,並使用--maximum-page-size
引數與 協調--next-page-token
以分頁結果。若要反轉傳回結果的順序,請使用--reverse-order
。另ListWorkflowTypes請參閱 Amazon Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 ListWorkflowTypes
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 register-domain
。
- AWS CLI
-
註冊網域
您可以使用 AWS CLI來註冊新的網域。使用
swf register-domain
命令。有兩個必要參數--name
,其採用網域名稱,而--workflow-execution-retention-period-in-days
,其需要整數來指定在此網域上保留工作流程執行資料的天數,最長期限為 90 天 (如需詳細資訊,請參閱 SWF FAQ <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 Simple Workflow Service API參考中的
-
如需API詳細資訊,請參閱 命令參考 RegisterDomain
中的 。 AWS CLI
-
下列程式碼範例示範如何使用 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" }
--workflow-version
需要--domain
、--name
和 。您也可以設定工作流程描述、逾時和子工作流程政策。如需詳細資訊,請參閱 Amazon Simple Workflow Service API參考RegisterWorkflowType中的
-
如需API詳細資訊,請參閱 命令參考 RegisterWorkflowType
中的 。 AWS CLI
-