使用 的 Amazon SWF範例 AWS CLI - AWS Command Line Interface

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 的 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參考中的

下列程式碼範例示範如何使用 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 中的

下列程式碼範例示範如何使用 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-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" } ] }

您可以在 --next-page-token 引數list-activity-types中將 nextPageToken 值傳遞至下一個呼叫,擷取結果的下一頁:

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 Simple Workflow Service API參考中的

下列程式碼範例示範如何使用 list-domains

AWS CLI

範例 1:列出已註冊的網域

下列list-domains命令範例會列出您已為帳戶註冊的REGISTEREDSWF網域。

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命令範例會列出您已為帳戶註冊的DEPRECATEDSWF網域。已棄用網域是無法註冊新工作流程或活動的網域,但仍可以查詢。

aws swf list-domains \ --registration-status DEPRECATED

輸出:

{ "domainInfos": [ { "status": "DEPRECATED", "name": "MyNeatNewDomain" } ] }

如需詳細資訊,請參閱 Amazon Simple Workflow Service API參考ListDomains中的

範例 3:列出已註冊網域的第一頁

下列list-domains命令範例列出您使用 --maximum-page-size選項為帳戶註冊的第一頁REGISTEREDSWF網域。

aws swf list-domains \ --registration-status REGISTERED \ --maximum-page-size 1

輸出:

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" } ], "nextPageToken": "AAAAKgAAAAEAAAAAAAAAA2QJKNtidVgd49TTeNwYcpD+QKT2ynuEbibcQWe2QKrslMGe63gpS0MgZGpcpoKttL4OCXRFn98Xif557it+wSZUsvUDtImjDLvguyuyyFdIZtvIxIKEOPm3k2r4OjAGaFsGOuVbrKljvla7wdU7FYH3OlkNCP8b7PBj9SBkUyGoiAghET74P93AuVIIkdKGtQ==" }

如需詳細資訊,請參閱 Amazon Simple Workflow Service API參考ListDomains中的

範例 4:列出已註冊網域的指定單一頁面

下列list-domains命令範例列出您使用 --maximum-page-size選項為帳戶註冊的第一頁REGISTEREDSWF網域。

當您再次進行呼叫時,這次在--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 就不會傳回到結果中。

如需詳細資訊,請參閱 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-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 Simple Workflow Service API參考中的

下列程式碼範例示範如何使用 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-days 0 ""

註冊網域時,不會傳回任何內容 (""),但可以使用 swf list-domainsswf 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中的