を使用した Amazon SWF の例 AWS CLI - AWS SDKコードの例

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

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

Amazon Simple Workflow Service CountClosedWorkflowExecutions リファレンスの AlsoWord を参照してください。 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 }

「truncated」が の場合true、「count」は Amazon SWF によって返される最大数を表します。その他の結果は切り捨てられます。

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

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

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

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

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

  • 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 DescribeDomain リファレンスの「 AlsoWord」を参照してください。 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-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 値を引list-activity-types--next-page-token数の次の呼び出しに渡すと、結果の次のページを取得できます。

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 ListActivityTypes リファレンスの AlsoWord を参照してください。 API

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

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

AWS CLI

例 1: 登録済みドメインを一覧表示するには

次のlist-domainsコマンド例では、アカウントに登録した SWF REGISTERED ドメインを一覧表示します。

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

出力:

{ "domainInfos": [ { "status": "REGISTERED", "name": "DataFrobotz" }, { "status": "REGISTERED", "name": "erontest" } ] }

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

例 2: 非推奨ドメインを一覧表示するには

次のlist-domainsコマンド例では、アカウントに登録した SWF DEPRECATED ドメインを一覧表示します。非推奨ドメインは、新しいワークフローやアクティビティを登録することはできませんが、クエリすることはできます。

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

出力:

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

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

例 3: 登録済みドメインの最初のページを一覧表示するには

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

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

出力:

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

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

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

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

再度呼び出しを行うと、引--next-page-tokennextPageTokenに の値を指定すると、結果の別のページが表示されます。

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 ListDomains リファレンス」の「Word」を参照してください。 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-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

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

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

次の例は、register-domain を使用する方法を説明しています。

AWS CLI

ドメインの登録

AWS CLI を使用して新しいドメインを登録できます。swf register-domainコマンドを実行します。ドメイン名--nameを使用する と、このドメインのワークフロー実行データを保持する日数を指定するには整数--workflow-execution-retention-period-in-daysの の 2 つの必須パラメータがあり、最大期間は 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-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 RegisterDomain リファレンスの AlsoWord を参照してください。 API

  • 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 Workflow Service RegisterWorkflowType リファレンス」の「Word」を参照してください。 API

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