Amazon SWF examples using AWS CLI - AWS Command Line Interface

このドキュメントはバージョン 1 の AWS CLI のみを対象としています。AWS CLI のバージョン 2 に関連するドキュメントについては、バージョン 2 用ユーザーガイドを参照してください。

Amazon SWF examples using 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 }

「切り捨てられた」が true の場合、「カウント」は Amazon SWF によって返される最大数を表します。それ以降の結果は切り捨てられます。

返される結果の数を減らすには、次の操作を行います。

--close-time-filter または --start-time-filter 値を変更して、検索する時間範囲を絞り込みます。これらはそれぞれ相互に排他的です。リクエストで指定できるのはこれらのうちの 1 つのみです。--close-status-filter--execution-filter--tag-filterまたは --type-filter 引数を使用して結果をさらにフィルタリングします。ただし、これらの引数も相互に排他的です。

Amazon Simple Workflow Service 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 }

「切り捨てられた」が true の場合、「カウント」は Amazon SWF によって返される最大数を表します。それ以降の結果は切り捨てられます。

返される結果の数を減らすには、次の操作を行います。

--start-time-filter 値を変更して、検索する時間範囲を絞り込みます。--close-status-filter--execution-filter--tag-filter または --type-filter 引数を使用して、結果をさらにフィルタリングします。これらはそれぞれ相互に排他的です。リクエストで指定できるのは、これらのうちの 1 つのみです。

詳細については、「Amazon Simple Workflow Service 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 Service API リファレンス」の「DeprecateDomain」も参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「DeprecateDomain」を参照してください。

次のコード例は、describe-domain を使用する方法を示しています。

AWS CLI

ドメインに関する情報の取得

特定のドメインに関する詳細情報を表示するには、swf describe-domain コマンドを使用します。--name という必須パラメータが 1 つあり、これは情報が必要なドメインの名前を取得します。

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 Service 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-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" } ] }

nextPageToken 値を --next-page-token 引数の list-activity-types への次の呼び出しに渡し、結果の次のページを取得できます。

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" } ] }

Amazon Simple Workflow Service 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 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-size 1

出力:

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

詳細については、「Amazon Simple Workflow Service API リファレンス」の「ListDomains」を参照してください。

例 4: 登録済みドメインの指定された 1 ページを一覧表示するには

次の list-domains コマンド例では、--maximum-page-size オプションを使用してアカウントに登録した最初のページ REGISTERED SWF ドメインを一覧表示します。

nextPageToken 引数で --next-page-token の値を指定して、もう一度呼び出しを行うと、別のページの結果を取得できます。

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 の詳細については、「AWS CLI コマンドリファレンス」の「ListDomains」を参照してください。

次のコード例は、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 引数を使用して特定の名前のワークフロータイプのみを選択し、--next-page-token と連携しながら --maximum-page-size 引数を使用して結果をページングできます。結果が返される順序を逆にするには、--reverse-order を使用します。

Amazon Simple Workflow Service API リファレンス」の「ListWorkflowTypes」も参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「ListWorkflowTypes」を参照してください。

次のコード例は、register-domain を使用する方法を示しています。

AWS CLI

ドメインの登録

AWS CLI を使用して新しいドメインを登録できます。swf register-domainコマンドを実行します。必須パラメータは 2 つあります。ドメイン名を指定する --name と、このドメインのワークフロー実行データを保持する日数 (最大 90 日間) を整数で指定する --workflow-execution-retention-period-in-days です (詳細については「SWF に関するよくある質問」<https://aws.amazon.com/swf/faqs/#retain_limit>を参照)。ワークフロー実行データは、指定した日数が経過した後は保持されません。

aws swf register-domain \ --name MyNeatNewDomain \ --workflow-execution-retention-period-in-days 0 ""

ドメインを登録すると何も返されませんが ("")、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 Service 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"

コマンドが成功した場合、出力は生成されません。

エラーの場合 (例えば、同じワークフローを 2 回登録しようとしたり、存在しないドメインを指定したりした場合)、JSON でレスポンスを受け取ります。

{ "message": "WorkflowType=[name=MySimpleWorkflow, version=v1]", "__type": "com.amazonaws.swf.base.model#TypeAlreadyExistsFault" }

--domain--name および --workflow-version は必須です。ワークフローの説明、タイムアウト、子ワークフローポリシーを設定することもできます。

詳細については、「Amazon Simple Storage Service API リファレンス」の「RegisterWorkflowType」を参照してください。

  • API の詳細については、「AWS CLI コマンドリファレンス」の「RegisterWorkflowType」を参照してください。