選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用 建立 Step Functions 狀態機器 AWS SAM

焦點模式
使用 建立 Step Functions 狀態機器 AWS SAM - AWS Step Functions

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

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

在本指南中,您會下載、建置和部署包含 AWS Step Functions 狀態機器的範例 AWS SAM 應用程式。這個應用程式會建立一個模擬股票交易工作流程,並依預先定義的排程執行 (請注意,排程預設為停用以避免產生費用)。

下圖顯示此應用程式的組件:

顯示本教學課程工作流程的圖表。

以下是您要建立範例應用程式所執行的命令預覽。如需當中各個命令的詳細資訊,請參閱此頁面稍後的章節

# Step 1 - Download a sample application. For this tutorial you # will follow the prompts to select an AWS Quick Start Template # called 'Multi-step workflow' sam init # Step 2 - Build your application cd project-directory sam build # Step 3 - Deploy your application sam deploy --guided

先決條件

本指南假設您已完成安裝作業系統的 AWS SAM CLI 中的步驟。它假設您已完成以下操作:

  1. 已建立 AWS 帳戶。

  2. 設定的 IAM 許可。

  3. 已安裝 Homebrew。注意:Homebrew 只是 Linux 和 macOS 的先決條件。

  4. 已安裝 AWS SAM CLI。注意:請確認您擁有 0.52.0 版或更高版本。您可以透過執行命令 sam --version 檢查您所擁有的版本。

步驟 1:下載範例 AWS SAM 應用程式

要執行的命令:

sam init

依照螢幕上的提示選取下列項目:

  1. 範本: AWS 快速啟動範本

  2. 語言:Python、Ruby、NodeJS、Go、Java 或 .NET

  3. 專案名稱:(您選擇的名稱 - 預設為 sam-app)

  4. 快速啟動應用程式:多步驟工作流程

正在 AWS SAM 執行的動作:

此命令會使用您為「專案名稱」提示所提供的名稱來建立目錄 (預設為 sam-app)。目錄的特定內容將取決於您選擇的語言。

以下是當您選擇其中一個 Python 執行時間時的目錄內容:

├── README.md
├── functions
│   ├── __init__.py
│   ├── stock_buyer
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   ├── stock_checker
│   │   ├── __init__.py
│   │   ├── app.py
│   │   └── requirements.txt
│   └── stock_seller
│       ├── __init__.py
│       ├── app.py
│       └── requirements.txt
├── statemachine
│   └── stock_trader.asl.json
├── template.yaml
└── tests
    └── unit
        ├── __init__.py
        ├── test_buyer.py
        ├── test_checker.py
        └── test_seller.py

您可以查看兩個特別有趣的檔案:

您可以在 template.yaml 檔案中看到下列項目,這是指向狀態機器定義檔:

Properties: DefinitionUri: statemachine/stock_trader.asl.json

將狀態機器定義保留為個別檔案,而不是內嵌在 AWS SAM 範本中,可能會有所幫助。例如,如果您未在範本中包含定義,追蹤狀態機器定義的變更會更容易。您可以使用 Workflow Studio 來建立和維護狀態機器定義,並將定義直接從主控台匯出至 Amazon States 語言規格檔案,而不將其合併至範本。

如需範例應用程式的詳細資訊,請參閱專案目錄中的 README.md 檔案。

步驟 2:建置您的應用程式

要執行的命令:

首先變更至專案目錄 (也就是範例應用程式的 template.yaml 檔案所在的目錄;依預設為 sam-app),然後執行下列命令:

sam build

輸出範例:

  
 Build Succeeded

 Built Artifacts  : .aws-sam/build
 Built Template   : .aws-sam/build/template.yaml

 Commands you can use next
 =========================
 [*] Invoke Function: sam local invoke
 [*] Deploy: sam deploy --guided
       

正在 AWS SAM 執行的動作:

AWS SAM CLI 隨附數個 Lambda 執行時間的抽象,以建置您的相依性,並將所有建置成品複製到預備資料夾中,以便一切準備好進行封裝和部署。sam build 命令會建置應用程式所具有的任何相依性,並將建置成品複製到 .aws-sam/build 下的資料夾。

步驟 3:將應用程式部署至 AWS 雲端

要執行的命令:

sam deploy --guided

依照螢幕上的提示操作。您可以直接以 Enter 回應以接受互動體驗中提供的預設選項。

正在 AWS SAM 執行的動作:

此命令會將您的應用程式部署到 AWS 雲端。它採用您使用 sam build命令建置的部署成品、封裝並將它們上傳至 CLI AWS SAM 建立的 Amazon S3 儲存貯體,並使用 部署應用程式 AWS CloudFormation。在部署命令的輸出中,您可以看到對 AWS CloudFormation 堆疊進行的變更。

您可以依照下列步驟,確認 Step Functions 狀態機器已成功部署範例:

  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/states/ 開啟 Step Functions 主控台。

  2. 在左側導覽中,選擇 State machines (狀態機器)

  3. 在清單中尋找並選擇您的新狀態機器。它將命名為 StockTradingStateMachine-<unique-hash>

  4. 選擇 Definition (定義) 索引標籤。

您現在應該可以看到狀態機器的視覺表示。您可以驗證視覺表示是否與專案目錄的 statemachine/stockTrader.asl.json 檔案中找到的狀態機器定義相符。

故障診斷

SAM CLI 錯誤:「沒有此類選項:--guided」

執行 sam deploy 時,您會看到下列錯誤:

 
Error: no such option: --guided
            

這表示您使用的是不支援 --guided 參數的舊版 AWS SAM CLI。若要修正此問題,您可以將 CLI AWS SAM 版本更新為 0.33.0 或更新版本,或從sam deploy命令中省略 --guided 參數。

SAM CLI 錯誤:「無法建立受管資源:找不到登入資料」

執行 sam deploy 時,您會看到下列錯誤:

 
Error: Failed to create managed resources: Unable to locate credentials
            

這表示您尚未設定 AWS 登入資料,讓 CLI AWS SAM 進行 AWS 服務呼叫。若要修正此問題,您必須設定 AWS 登入資料。如需詳細資訊,請參閱《 AWS Serverless Application Model 開發人員指南》中的設定 AWS 登入資料。

清除

如果您不再需要透過執行本教學課程建立 AWS 的資源,可以透過刪除您部署的 AWS CloudFormation 堆疊來移除這些資源。

若要使用 刪除使用此教學課程建立的 AWS CloudFormation 堆疊 AWS Management Console,請遵循下列步驟:

  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/cloudformation 開啟 AWS CloudFormation 主控台。

  2. 在左側導覽窗格中,選擇 Stacks (堆疊)

  3. 在堆疊清單中,選擇 sam-app (或您建立的堆疊名稱)。

  4. 選擇 刪除

完成後,堆疊的狀態將變更為 DELETE_COMPLETE

或者,您也可以執行下列 AWS CLI 命令來刪除 AWS CloudFormation 堆疊:

aws cloudformation delete-stack --stack-name sam-app --region region

驗證已刪除的堆疊

對於刪除 AWS CloudFormation 堆疊的這兩種方法,您可以前往 https://console.aws.amazon.com/cloudformation://。您應該在刪除的堆疊清單中看到堆疊名稱 sam-app (或您所建立的堆疊名稱)。

隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。