

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

# Amazon SWF の追加リソースとリファレンス情報
<a name="resources"></a>

この章では、Amazon SWF を使用してワークフローを開発する場合に有効なその他のリソースおよびリファレンス情報を提供します。

**Topics**
+ [Amazon SWF タイムアウトの種類](swf-timeout-types.md)
+ [Amazon Simple Workflow Service エンドポイント](#resources-endpoints)
+ [Amazon Simple Workflow Service のその他のドキュメント](#resources-docs)
+ [Amazon Simple Workflow Service のウエブリソース](#resources-web)
+ [Ruby Flow の移行オプション](#RubyFlowOptions)

# Amazon SWF タイムアウトの種類
<a name="swf-timeout-types"></a>

ワークフロー実行が正しく実行されるように、Amazon SWF でさまざまなタイプのタイムアウトを設定できます。一部のタイムアウトでは、ワークフローが完全に実行できる時間を指定します。その他のタイムアウトでは、ワーカーに割り当てる前にアクティビティタスクを実行できる時間と、スケジュールされてから完了までにかけることができる時間を指定します。Amazon SWF API のすべてのタイムアウトは秒単位で指定されます。Amazon SWF は、タイムアウト値として文字列 `NONE` もサポートしています。これは、タイムアウトがないことを示します。

決定タスクとアクティビティタスクに関連するタイムアウトの場合、Amazon SWF はワークフロー実行履歴にイベントを追加します。イベントの属性により、発生したタイムアウトの種類と、影響を受けた決定タスクまたはアクティビティタスクに関する情報が提供されます。Amazon SWF は決定タスクもスケジュールします。ディサイダーは、新しい決定タスクを受け取ると、履歴でタイムアウトイベントを確認し、[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html) アクションを呼び出して適切なアクションを実行します。

タスクは、スケジュールされてからクローズされるまではオープン状態と見なされます。したがって、ワーカーの処理中はタスクはオープン状態と報告されます。タスクは、ワーカーによって[完了済み](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)、[キャンセル済み](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html)、または[失敗](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html)と報告されるとクローズされます。タスクは、タイムアウトの結果として Amazon SWF によってクローズされる場合もあります。

## ワークフローと決定タスクのタイムアウト
<a name="swf-timeout-types-workflow"></a>

次の図は、ワークフローと決定のタイムアウトがワークフローの有効期間にどのように関係するかを示しています。

![\[ワークフローの有効期間とタイムアウト\]](http://docs.aws.amazon.com/ja_jp/amazonswf/latest/developerguide/images/workflow_timeouts.png)


ワークフローと決定タスクに関連して 2 つのタイムアウトの種類があります。
+ **ワークフローのスタートからクローズ (`timeoutType: START_TO_CLOSE`)** - タイムアウトは、ワークフロー実行の完了までにかかる最大時間を指定します。これはワークフローの登録中にデフォルトとして設定されますが、ワークフローのスタート時に別の値でオーバーライドできます。このタイムアウトを超えると、Amazon SWF はワークフローの実行を終了し、[WorkflowExecutionTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_WorkflowExecutionTimedOutEventAttributes.html) タイプの[イベント](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html)をワークフローの実行履歴に追加します。イベント属性は、`timeoutType` に加えて、このワークフロー実行に対して有効である `childPolicy` を指定します。子ポリシーでは、親ワークフロー実行の回数がタイムアウトするか、それ以外に終了した場合に、子ワークフロー実行を処理する方法を指定します。たとえば、`childPolicy` が TERMINATE に設定された場合、子ワークフロー実行は終了します。ワークフロー実行がタイムアウトすると、表示の呼び出し以外にこれに対してアクションを実行することはできません。
+ **決定タスクのスタートからクローズ (`timeoutType: START_TO_CLOSE`)** - このタイムアウトにより、対応するディサイダーが決定タスクを完了するまでにかかる最大時間を指定します。これはワークフロータイプの登録中に設定されます。このタイムアウトを超えると、タスクはワークフロー実行履歴でタイムアウトとマークされ、Amazon SWF は [DecisionTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_DecisionTaskTimedOutEventAttributes.html) 型のイベントをワークフロー履歴に追加します。イベントの属性には、この決定タスクがスケジュールされた日時 (`scheduledEventId`) およびスタートされた日時 (`startedEventId`) に対応するイベントの ID が含まれます。イベントの追加に加えて、Amazon SWF はこの決定タスクがタイムアウトしたことをディサイダーにアラートする新しい決定タスクをスケジュールします。このタイムアウトの発生後は、`RespondDecisionTaskCompleted` を使用してタイムアウトした決定タスクを完了する試みは失敗します。

## アクティビティタスクのタイムアウト
<a name="swf-timeout-types-activity"></a>

次の図は、タイムアウトがアクティビティタスクの有効期間にどのように関係するかを示します。

![\[タスクの有効期間とタイムアウト\]](http://docs.aws.amazon.com/ja_jp/amazonswf/latest/developerguide/images/activity_timeouts.png)


アクティビティタスクに関連して 4 つのタイムアウトの種類があります。
+ **アクティビティタスクのスタートからクローズ (`timeoutType: START_TO_CLOSE`)** – このタイムアウトは、ワーカーがタスクを受け取った後でアクティビティワーカーがタスクを処理するためにかかる最大時間を指定します。[RespondActivityTaskCanceled](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCanceled.html)、[RespondActivityTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskCompleted.html)、および [RespondActivityTaskFailed](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondActivityTaskFailed.html) を使用してタイムアウトしたアクティビティタスクを閉じる試みは失敗します。
+ **アクティビティタスクのハートビート (`timeoutType: HEARTBEAT`)** – このタイムアウトは、`RecordActivityTaskHeartbeat` アクションを通じて進捗状況を提供する前にタスクが実行できる最大時間を指定します。
+ **アクティビティタスクのスケジュールからスタート (`timeoutType: SCHEDULE_TO_START`)** – このタイムアウトは、タスクを実行するワーカーを利用できない場合に、Amazon SWF がアクティビティタスクをタイムアウトするまでに待機する時間を指定します。タイムアウトした期限切れのタスクは、別のワーカーに割り当てられません。
+ **アクティビティタスクのスケジュールからクローズ (`timeoutType: SCHEDULE_TO_CLOSE`)** – このタイムアウトは、タスクがスケジュールされてから完了するまでにかかる時間を指定します。ベストプラクティスとして、この値は、タスクのスケジュールからスタートまでのタイムアウトと、タスクのスタートからクローズまでのタイムアウトの合計よりも大きくしないでください。

**注記**  
タイムアウトの種類ごとにデフォルト値があり、通常は `NONE` (無限) に設定されます。ただし、すべてのアクティビティの実行の最大時間は 1 年に制限されます。

アクティビティの種類を登録するときにこれらのデフォルト値を設定しますが、アクティビティタスクを[スケジュール](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ScheduleActivityTaskDecisionAttributes.html)するときに新しい値でオーバーライドできます。これらのタイムアウトのいずれかが発生すると、Amazon SWF は [ActivityTaskTimedOut](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ActivityTaskTimedOutEventAttributes.html) 型の [イベント](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_HistoryEvent.html) をワークフロー履歴に追加します。このイベントの `timeoutType` 値属性では、これらのタイムアウトがいつ発生するかを指定します。それぞれのタイムアウトで、`timeoutType` の値は括弧内に示されます。イベントの属性には、アクティビティタスクがスケジュールされた日時 (`scheduledEventId`) およびスタートされた日時 (`startedEventId`) に対応するイベントの ID も含まれます。Amazon SWF は、イベントの追加に加えて、このタイムアウトが発生したことをディサイダーにアラートする新しい決定タスクをスケジュールします。

## Amazon Simple Workflow Service エンドポイント
<a name="resources-endpoints"></a>

最新の [Amazon SWF リージョンとエンドポイント](https://docs.aws.amazon.com/general/latest/gr/rande.html#swf_region)のリストは、他のサービスのエンドポイントとともに「*Amazon Web Services 全般のリファレンス*」に記載されています。

Amazon SWF ドメインと関連するすべてのワークフローおよびアクティビティは、相互に通信するために同じリージョン内に存在している必要があります。さらに、リージョン内の登録済みのドメイン、ワークフロー、およびアクティビティは、他のリージョンには存在しません。たとえば、*us-east-1* および *us-west-2* の両方で「MySampleDomain」という名前のドメインを作成する場合、それらは*別個のドメイン*として存在します。ドメインに関連付けられたワークフロー、タスクリスト、アクティビティ、またはデータがリージョン間で共有されることはありません。

Amazon EC2 インスタンスなど、ワークフローで他の AWS リソースを使用する場合は、Amazon SWF リソースと同じリージョンにも存在する必要があります。この唯一の例外は、Amazon S3 や IAM など、複数のリージョンにまたがるサービスです。このようなサービスには、それをサポートするリージョンに存在するワークフローからアクセスできます。

## Amazon Simple Workflow Service のその他のドキュメント
<a name="resources-docs"></a>

このデベロッパーガイドに加えて、以下のドキュメントが参考になります。

### Amazon Simple Workflow Service API Reference (Amazon Simple Workflow Service API リファレンス)
<a name="resources-docs-api-ref"></a>

[Amazon Simple Workflow Service API Reference](https://docs.aws.amazon.com/amazonswf/latest/apireference/) (Amazon Simple Workflow Service API リファレンス) は、アクション、リクエスト、およびレスポンスの構造とエラーコードを含め、Amazon SWF HTTP API に関する詳細情報を提供します。

### AWS Flow Framework ドキュメント
<a name="aws-flow-framework-documentation"></a>

[AWS Flow Framework](https://aws.amazon.com/swf/details/flow/) は、 Amazon SWF を使用してワークフローとアクティビティを管理する分散された非同期アプリケーションの実装プロセスを簡略化し、ワークフローロジックの実装に集中できるようにするプログラミングフレームワークです。

各 AWS Flow Framework は、設計されている言語でイディオマティックに動作するように設計されているため、選択した言語を自然に使用して、Amazon SWF のすべての利点を備えたワークフローを実装できます。

Flow AWS Framework for Java があります。[AWS Flow Framework for Java デベロッパーガイド](https://docs.aws.amazon.com/amazonswf/latest/awsflowguide/)では、 AWS Flow Framework for Java を取得、セットアップ、使用する方法について説明します。

### AWS SDK ドキュメント
<a name="aws-sdk-documentation"></a>

 AWS Software Development Kit (SDKs) は、さまざまなプログラミング言語で Amazon SWF へのアクセスを提供します。SDK は HTTP API に非常によく似ていますが、一部の Amazon SWF 機能に対して言語固有のプログラミングインターフェイスも提供します。各 SDK の詳細については、以下のリンクを参照してください。

**注記**  
執筆時点で Amazon SWF をサポートしている SDK のみを以下に示します。利用可能な AWS SDKs「Amazon [Web Services のツール](https://aws.amazon.com/tools/)」ページを参照してください。

**Java**  
は、 AWS インフラストラクチャサービス用の Java API AWS SDK for Java を提供します。  
使用できるドキュメントを表示するには、「[AWS SDK for Java Documentation](https://aws.amazon.com/documentation/sdkforjava/)」(ドキュメント) のページを参照してください。また、以下のリンクに従って SDK リファレンスの Amazon SWF セクションに直接移動することもできます。  
+ [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowClient.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowClient.html)
+ [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowAsyncClient.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowAsyncClient.html)
+ [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflow.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflow.html)
+ [https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowAsync.html](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/AmazonSimpleWorkflowAsync.html)

**JavaScript**  
 AWS SDK for JavaScript を使用すると、開発者はブラウザまたはサーバー上の Node.js アプリケーション内の両方で利用できるシンプルでeasy-to-useを使用して、 AWS サービスを利用するライブラリまたはアプリケーションを構築できます。  
使用できるドキュメントを表示するには、「[AWS SDK for JavaScript Documentation](https://aws.amazon.com/documentation/sdkforjavascript/)」(ドキュメント) のページを参照してください。また、以下のリンクに従って SDK リファレンスの Amazon SWF セクションに直接移動することもできます。  
+ [https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SWF.html](https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SWF.html)

**.NET**  
 AWS SDK for .NET は、Visual Studio プロジェクトテンプレート、 AWS .NET ライブラリ、C\$1 コードサンプル、ドキュメントを含む単一のダウンロード可能なパッケージです。 AWS SDK for .NET を使用すると、Windows 開発者は Amazon SWF やその他の サービス用の .NET アプリケーションを簡単に構築できます。  
使用できるドキュメントを表示するには、「[AWS SDK for .NET Documentation](https://aws.amazon.com/documentation/sdkfornet/)」(ドキュメント) のページを参照してください。また、以下のリンクに従って SDK リファレンスの Amazon SWF セクションに直接移動することもできます。  
+ [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SimpleWorkflow/NSimpleWorkflow.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SimpleWorkflow/NSimpleWorkflow.html)
+ [https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SimpleWorkflow/NSimpleWorkflowModel.html](https://docs.aws.amazon.com/sdkfornet/v4/apidocs/items/SimpleWorkflow/NSimpleWorkflowModel.html)

**PHP**  
 AWS SDK for PHP は、Amazon SWF への PHP プログラミングインターフェイスを提供します。  
使用できるドキュメントを表示するには、「[AWS SDK for PHP Documentation](https://aws.amazon.com/documentation/sdkforphp/)」(ドキュメント) のページを参照してください。また、以下のリンクに従って SDK リファレンスの Amazon SWF セクションに直接移動することもできます。  
+ [https://docs.aws.amazon.com/sdk-for-php/latest/reference/class-Aws.Swf.SwfClient.html](https://docs.aws.amazon.com/sdk-for-php/latest/reference/class-Aws.Swf.SwfClient.html)

**Python**  
 AWS SDK for Python (Boto) は、Amazon SWF への Python プログラミングインターフェイスを提供します。  
利用可能なドキュメントを表示するには、「[boto: A Python interface to Amazon Web Services](http://docs.pythonboto.org/en/latest/)」(boto：Amazon Web Services への Python インターフェイス) ページを参照してください。また、以下のリンクに従ってドキュメントの Amazon SWF セクションに直接移動することもできます。  
+ [Amazon SWF Tutorial](http://docs.pythonboto.org/en/latest/swf_tut.html) (Amazon SWF のチュートリアル)
+ [Amazon SWF Reference](http://docs.pythonboto.org/en/latest/ref/swf.html) (Amazon SWF リファレンス)

**Ruby**  
 AWS SDK for Ruby は、Amazon SWF への Ruby プログラミングインターフェイスを提供します。  
使用できるドキュメントを表示するには、「[AWS SDK for Ruby Documentation](https://aws.amazon.com/documentation/sdkforruby/)」(ドキュメント) のページを参照してください。また、以下のリンクに従って SDK リファレンスの Amazon SWF セクションに直接移動することもできます。  
+ [クラス: AWS::SimpleWorkflow](https://docs.aws.amazon.com/AWSRubySDK/latest/AWS/SimpleWorkflow.html)

### AWS CLI ドキュメント
<a name="aws-cli-documentation"></a>

 AWS Command Line Interface （AWS CLI) は、 AWS のサービスを管理するための統合ツールです。ダウンロードと設定のためのツールを 1 つだけ使用すると、コマンドラインから複数の AWS サービスを制御して、スクリプトを使用して自動化できます。

の詳細については AWS CLI、[AWS Command Line Interface](https://aws.amazon.com/cli/)「」ページを参照してください。

Amazon SWF で使用できるコマンドの概要については、「*AWS CLI コマンドリファレンス*」の「[swf](https://docs.aws.amazon.com/cli/latest/reference/swf/index.html)」を参照してください。

## Amazon Simple Workflow Service のウエブリソース
<a name="resources-web"></a>

Amazon SWF の詳細を学習したり、このサービスを使用してワークフローを開発したりするために、数多くのウェブリソースがあります。

### Amazon SWF フォーラム
<a name="resources-web-forum"></a>

Amazon SWF フォーラムは、Amazon の他の Amazon SWF 開発者や Amazon SWF 開発チームのメンバーとやり取りし、質問をしたり答えを得たりするための場所です。

このフォーラムには、[フォーラム: Amazon Simple WorkflowService](https://forums.aws.amazon.com/forum.jspa?forumID=133) でアクセスできます。

### Amazon SWF のよくある質問
<a name="resources-web-faq"></a>

Amazon SWF のよくある質問では、一般的ユースケース、Amazon SWF 間の違い、その他のサービスなどの概要を含む、Amazon SWF に関してよくある質問の回答を提供しています。

このよくある質問には、「[Amazon SWF FAQ](https://aws.amazon.com/swf/faqs/)」(Amazon SWF のよくある質問) でアクセスできます。

### Amazon SWF のビデオ
<a name="resources-web-videos"></a>

YouTube の [Amazon Web Services](http://www.youtube.com/user/AmazonWebServices) チャンネルでは、Amazon SWF を含むすべての Amazon Web Services のビデオトレーニングを提供しています。Amazon SWF 関連の動画の完全なリストについては、Amazon [Web Services の *Simple Workflow*](http://www.youtube.com/user/AmazonWebServices/search?query=simple+workflow)のクエリを使用します。

## Ruby Flow の移行オプション
<a name="RubyFlowOptions"></a>

Ruby AWS Flow Framework の は、アクティブな開発が行われなくなりました。既存のコードは今後も機能し続けますが、新しい機能またはバージョンはありません。このトピックは、Amazon SWF を使用し続けるための使用および移行オプション、および Step Functions への移行方法について説明します。


****  

| オプション | 説明 | 
| --- | --- | 
|  [Ruby Flow Framework を使用し続ける](#continue-to-use-ruby)  |  現状、Ruby Flow Framework は機能しています。何もしないでいると、コードは引き続きそのまま機能し続けます。近い将来、 AWS Flow Framework for Ruby から移行する予定です。  | 
|  [Java Flow Framework に移行する](#migrate-to-java-flow)  |  Java Flow Framework は現在も開発中であり、今後も新しい機能や更新がリリースされます。  | 
|  [Step Functions に移行する](#migrate-to-step-functions)  |  Step Functions は、ステートマシンと呼ばれる視覚的なワークフローを使用して、分散アプリケーションのコンポーネントを調整する方法を提供します。  | 
| Flow Framework を使用せずに [SWF API を直接使用する](#use-api-directly) | Ruby を使用し続け、Ruby Flow Framework の代わりに SWF API を直接使用できます。 | 

Ruby であっても Java であっても、Flow Framework が提供する利点は、ワークフローロジックに専念できることです。フレームワークが細かい通信と調整の多くを処理し、複雑性の一部が抽象化されます。Java Flow Framework に移行することで同レベルの抽象化を維持できます。または Amazon SWF SDK を直接操作することもできます。

### Ruby Flow Framework を使用し続ける
<a name="continue-to-use-ruby"></a>

 AWS Flow Framework for Ruby は、短期的には引き続き機能します。 AWS Flow Framework for Ruby にワークフローが書き込まれている場合、これらは引き続き機能します。更新、サポート、セキュリティの修正がないため、近い将来 AWS Flow Framework for Ruby から移行するしっかりとした計画を立てることをお勧めします。

### Java Flow Framework に移行する
<a name="migrate-to-java-flow"></a>

 AWS Flow Framework for Java はアクティブな開発に残ります。概念的には、 AWS Flow Framework for Java は AWS Flow Framework for Ruby に似ています。ワークフローロジックに集中でき、フレームワークはディサイダーロジックの管理に役立ち、Amazon SWF の他の側面の管理が容易になります。
+ [AWS Flow Framework for Java](https://docs.aws.amazon.com/amazonswf/latest/awsflowguide/welcome.html)
+ [AWS Flow Framework for Java API リファレンス](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/simpleworkflow/flow/package-summary.html)

### Step Functions に移行する
<a name="migrate-to-step-functions"></a>

AWS Step Functions は、Amazon SWF に似ていますが、ワークフローロジックがステートマシンによって制御されるサービスを提供します。視覚的なワークフローを使用して、分散アプリケーションとマイクロサービスのコンポーネントを調整するには、Step Functions を使用します。それぞれ別個の関数 (*タスク*) を実行する個々のコンポーネントからアプリケーションを構築することで、簡単にアプリケーションをスケールおよび変更できます。Step Functions を使えば、安心してコンポーネントを調整し、アプリケーションの関数を配置できます。グラフィカルコンソールは、アプリケーションのコンポーネントを一連のステップとして可視化する手段を提供します。各ステップが自動的にトリガーおよび追跡され、エラーが発生した場合は再試行されるため、アプリケーションが毎回意図したとおりの順序で実行されます。また、Step Functions では各ステップの状態がログに記録されるため、問題が発生した場合は、問題を簡単に診断およびデバッグできます。

Step Functions では、[Amazon States Language](https://docs.aws.amazon.com/step-functions/latest/dg/concepts-amazon-states-language.html) を使用して定義された宣言型 JSON で記述されたステートマシンを使用して、タスクの調整を管理します。ステートマシンを使用することで、アプリケーションロジックを制御するディサイダープログラムを作成および維持する必要がなくなります。Step Functions は、視覚的なワークフローを使用してアプリケーションコンポーネントを調整する直感的、効率的、迅速なアプローチを提供します。すべての新しいアプリケーション AWS Step Functions に を使用することを検討する必要があります。Step Functions は、 AWS Flow Framework for Ruby で現在実装しているワークフローの に移行するための優れたプラットフォームを提供します。

Ruby 言語のスキルを引き続き活用しながらタスクを Step Functions に移行するために、Step Functions には Ruby アクティビティワーカーのサンプルが用意されています。このサンプルはアクティビティワーカーを実装するベストプラクティスを使用しており、Step Functions にタスクロジックを移行するためのテンプレートとして使用できます。詳細については、「[AWS Step Functions デベロッパーガイド](https://docs.aws.amazon.com/step-functions/latest/dg/)」の「[https://docs.aws.amazon.com/step-functions/latest/dg/example-ruby-activity-worker.html](https://docs.aws.amazon.com/step-functions/latest/dg/example-ruby-activity-worker.html)」トピックを参照してください。

**注記**  
多くのお客様にとって、Ruby AWS Flow Framework 用 から Step Functions への移行が最適なオプションです。ただし、シグナルがプロセスに介入する必要がある場合、または結果を親に返す子プロセスを起動する必要がある場合は、Amazon SWF API を直接使用すること、または AWS Flow Framework for Java への移行を検討してください。

詳細については AWS Step Functions、以下を参照してください。
+ [AWS Step Functions デベロッパーガイド](https://docs.aws.amazon.com/step-functions/latest/dg/)
+ [AWS Step Functions API リファレンス](https://docs.aws.amazon.com/step-functions/latest/apireference/)
+ [AWS Step Functions コマンドラインリファレンス](https://docs.aws.amazon.com/cli/latest/reference/stepfunctions/)

### Amazon SWF API を直接使用する
<a name="use-api-directly"></a>

 AWS Flow Framework for Ruby は Amazon SWF の複雑さの一部を管理しますが、Amazon SWF API を直接使用することもできます。API を直接使用することで、タスクの実装と調整を完全に制御するワークフローを構築できます。進行状況を追跡してその状態情報を維持するといった、内部的に複雑な処理を行う必要はありません。
+ [Amazon Simple Workflow Service Developer Guide](https://docs.aws.amazon.com/amazonswf/latest/developerguide/) (Amazon Simple Workflow Service デベロッパーガイド)
+ [Amazon Simple Workflow Service API Reference](https://docs.aws.amazon.com/amazonswf/latest/apireference/) (Amazon Simple Workflow Service API リファレンス)