

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

# 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 的 Web 資源](#resources-web)
+ [Ruby Flow 的遷移選項](#RubyFlowOptions)

## 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" 的網域，而且這兩個網域以「個別網域」**存在，則無法跨區域共享與您網域相關聯的工作流程、任務清單、活動或資料。

如果您在工作流程中使用其他 AWS 資源，例如 Amazon EC2 執行個體，這些資源也必須存在於與 Amazon SWF 資源相同的區域中。唯一的例外是跨區域的服務，例如 Amazon S3 和 IAM。您可以從存在於任何支援區域中的工作流程存取這些服務。

## Amazon Simple Workflow Service 的其他文件
<a name="resources-docs"></a>

除了本《開發人員指南》之外，下列文件也十分有幫助。

### Amazon Simple Workflow Service API 參考
<a name="resources-docs-api-ref"></a>

[Amazon Simple Workflow Service API 參考](https://docs.aws.amazon.com/amazonswf/latest/apireference/)提供有關 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 所有優點的工作流程。

有適用於 Java 的 AWS 流程架構。[AWS Flow Framework 適用於 Java 的 開發人員指南](https://docs.aws.amazon.com/amazonswf/latest/awsflowguide/)提供如何取得、設定和使用 AWS Flow Framework 適用於 Java 的 的相關資訊。

### AWS SDK 文件
<a name="aws-sdk-documentation"></a>

 AWS 軟體開發套件 (SDKs) 提供許多不同程式設計語言的 Amazon SWF 存取權。SDKs密切遵循 HTTP API，但也為某些 Amazon SWF 功能提供特定語言的程式設計界面。您可以瀏覽下列連結來深入了解每個開發套件的相關資訊。

**注意**  
此處僅列出寫入時支援 Amazon SWF 的SDKs。如需可用 AWS SDKs的完整清單，請造訪 [Tools for Amazon Web Services](https://aws.amazon.com/tools/) 頁面。

**Java**  
為 AWS 基礎設施服務 適用於 Java 的 AWS SDK 提供 Java API。  
若要檢視現已提供的文件，請參閱[適用於 Java 的 AWS SDK 文件](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**  
 適用於 JavaScript 的 AWS SDK 可讓開發人員使用瀏覽器或伺服器上 Node.js 應用程式內部提供的簡單且easy-to-use API，建置利用 AWS 服務的程式庫或應用程式。  
若要檢視現已提供的文件，請參閱[適用於 JavaScript 的 AWS SDK 文件](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**  
 適用於 .NET 的 AWS SDK 是可下載的單一套件，其中包含 Visual Studio 專案範本、 AWS .NET 程式庫、C\# 程式碼範例和文件。 適用於 .NET 的 AWS SDK 可讓 Windows 開發人員更輕鬆地為 Amazon SWF 和其他 服務建置 .NET 應用程式。  
若要檢視現已提供的文件，請參閱[適用於 .NET 的 AWS SDK 文件](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**  
為 Amazon SWF AWS SDK for PHP 提供 PHP 程式設計界面。  
若要檢視現已提供的文件，請參閱[AWS SDK for PHP 文件](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**  
為 Amazon SWF 適用於 Python (Boto) 的 AWS SDK 提供 Python 程式設計界面。  
若要檢視可用的文件，請參閱 [boto：Amazon Web Services 的 Python 界面](http://docs.pythonboto.org/en/latest/)頁面。您也可以依照下列連結，直接前往 文件中的 Amazon SWF 區段：  
+ [Amazon SWF 教學課程](http://docs.pythonboto.org/en/latest/swf_tut.html)
+ [Amazon SWF 參考](http://docs.pythonboto.org/en/latest/ref/swf.html)

**Ruby**  
為 Amazon SWF 適用於 Ruby 的 AWS SDK 提供 Ruby 程式設計界面。  
若要檢視現已提供的文件，請參閱[適用於 Ruby 的 AWS SDK 文件](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 服務的統一工具。只需一個工具即可下載和設定，您可以從命令列控制多個 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 的 Web 資源
<a name="resources-web"></a>

您可以使用多種 Web 資源來進一步了解 Amazon SWF，或取得使用服務和開發工作流程的協助。

### Amazon SWF 論壇
<a name="resources-web-forum"></a>

Amazon SWF 論壇可讓您與其他 Amazon SWF 開發人員和 Amazon SWF 開發團隊的成員進行通訊，以提出問題並獲得解答。

您可以造訪論壇：[論壇：Amazon Simple Workflow Service](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 常見問答集](https://aws.amazon.com/swf/faqs/)。

### Amazon SWF 影片
<a name="resources-web-videos"></a>

YouTube 上的 [Amazon Web Services](http://www.youtube.com/user/AmazonWebServices) 頻道為所有 Amazon Web Services 提供影片訓練，包括 Amazon SWF。如需 Amazon SWF 相關影片的完整清單，請使用下列查詢：[Amazon Web Services 中的*簡易工作流程*](http://www.youtube.com/user/AmazonWebServices/search?query=simple+workflow)

## Ruby Flow 的遷移選項
<a name="RubyFlowOptions"></a>

 AWS Flow Framework 適用於 Ruby 的 不再處於主動開發狀態。雖然現有的程式碼會無限期地繼續運作，但不會有新功能或版本。本主題將涵蓋繼續使用 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 可讓您使用由狀態機器控制的視覺化工作流程，來協調分散式應用程式的元件。 | 
| [直接使用 SWF API](#use-api-directly)，而不使用 Flow Framework | 您可以繼續在 Ruby 中工作，並直接使用 SWF API 而不是 Ruby Flow Framework。 | 

Ruby 或 Java Flow Framework 提供的優點是可讓您專注於工作流程邏輯。框架會處理大部分的通訊和協調詳細資訊，並將一些複雜性抽象化。您可以遷移至 Java Flow Framework 來繼續具有相同層級的抽象，也可以直接與 Amazon SWF SDK 互動。

### 繼續使用 Ruby Flow Framework
<a name="continue-to-use-ruby"></a>

 AWS Flow Framework 適用於 Ruby 的 會在短期內繼續運作。如果您有在 AWS Flow Framework for Ruby 中寫入的工作流程，這些工作流程將繼續運作。如果沒有更新、支援或安全性修正，最好有堅實的計劃在不久的將來遷移出 AWS Flow Framework 適用於 Ruby 的 。

### 遷移至 Java Flow Framework
<a name="migrate-to-java-flow"></a>

 AWS Flow Framework 適用於 Java 的 將保留在作用中的開發中。概念上， AWS Flow Framework 適用於 Java 的 類似於 AWS Flow Framework for Ruby：您仍然可以專注於您的工作流程邏輯，架構將有助於管理您的決策者邏輯，並使 Amazon SWF 的其他方面更容易管理。
+ [AWS Flow Framework 適用於 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 中實作的工作流程遷移至 。

為了協助您將任務遷移至 Step Functions，同時繼續利用 Ruby 語言技能，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)主題。

**注意**  
對於許多客戶而言，從 AWS Flow Framework for Ruby 遷移至 Step Functions 是最佳選項。但是，如果您要求 訊號介入您的程序，或者如果您需要啟動將結果傳回給父系的子程序，請考慮直接使用 Amazon SWF API，或遷移至 AWS Flow Framework 適用於 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 開發人員指南](https://docs.aws.amazon.com/amazonswf/latest/developerguide/)
+ [Amazon Simple Workflow Service API 參考](https://docs.aws.amazon.com/amazonswf/latest/apireference/)