使用 Lambda 和 Amazon 建立任務計時器 SNS - AWS Step Functions

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

使用 Lambda 和 Amazon 建立任務計時器 SNS

此範例專案會建立任務計時器。它實現了一個 AWS Step Functions 狀態機實現狀Wait態,並使用 AWS Lambda 發送 Amazon 簡單通知服務(AmazonSNS)通知的功能。等待工作流程狀 状态是等待触发器执行单个工作单元的状态类型。

注意

此示例項目實現了 AWS Lambda 發送 Amazon 簡單通知服務(AmazonSNS)通知的功能。您也可以直接從 Amazon 州語言發送 Amazon SNS 通知。請參閱 整合服務與 Step Functions

此範例專案會建立狀態機器、Lambda 函數和 Amazon SNS 主題,並設定相關內容 AWS Identity and Access Management (IAM)權限。如需使用 Task Timer (任務計時器) 範例專案建立的資源詳細資訊,請參閱以下內容:

有關如何進一步了解 AWS Step Functions 可以控制其他 AWS 服務,請參閱整合服務與 Step Functions

步驟 1:建立狀態機

  1. 開啟 Step Functions 主控台,然後選擇建立狀態機器

  2. Task Timer在搜尋方塊中輸入,然後從傳回的搜尋結果中選擇 [工作計時器]。

  3. 選擇 Next (下一步) 繼續。

  4. 選擇 [執行示範] 以建立唯讀和 ready-to-deploy 工作流程,或選擇 [在其上建置] 建立可編輯的狀態機定義,您可以在其上建置並稍後進行部署。

    此範例專案會部署下列資源:

    • 一個傳送 Amazon SNS 通知的 Lambda 函數。

    • 同時 AWS Step Functions 狀態機器

    • 相關 AWS Identity and Access Management (IAM) 角色

    下列影像顯示工作計時器範例專案的工作流程圖形:

    工作計時器範例專案的工作流程圖形。
  5. 選擇「使用範本」繼續進行選取。

接下來的步驟取決於您之前的選擇:

  1. 執行示範 — 您可以先檢閱狀態機器,然後再建立唯讀專案,其中包含部署的資源 AWS CloudFormation 到您的 AWS 帳戶.

    您可以檢視狀態機器定義,當您準備就緒時,請選擇 [部署並執行] 以部署專案並建立資源。

    部署最多可能需要 10 分鐘的時間來建立資源和權限。您可以使用「堆疊 ID」連結來監控進度 AWS CloudFormation.

    部署完成後,您應該會在控制台中看到新的狀態機器。

  2. 建立在其上 — 您可以檢閱和編輯工作流程定義。您可能需要在範例專案中設定預留位置的值,然後才能嘗試執行自訂工作流程。

注意

部署到您帳戶的服務可能需要支付標準費用。

步驟 2:運行狀態機

佈建並部署所有資源之後,會顯示 [開始執行] 對話方塊,其中包含類似下列內容的範例輸入。

{ "jobName": "my-job",{ "topic": "arn:aws:sns:us-east-2:123456789012:StepFunctionsSample-TaskTimercc68840e-c3d3-42a8-911e-821b7ce248e5-SNSTopic-44UjcFxzhACT", "message": "HelloWorld", "timer_seconds": 10 }
  • 在 [開始執行] 對話方塊中,執行下列動作:

    1. (選擇性) 輸入自訂執行名稱,以覆寫產生的預設值。

      非ASCII名稱和記錄

      Step Functions 接受包含非ASCII字元的狀態機器、執行項目、活動和標籤的名稱。由於此類字元不適用於 Amazon CloudWatch,因此我們建議您僅使用ASCII字元,以便在中追蹤指標 CloudWatch。

    2. (選擇性) 在「入」方塊中,將輸入值輸入為JSON。如果您正在運行演示,則可以跳過此步驟。

    3. 選擇 Start execution (開始執行)

    「Step Functions」主控台會將您導向「執行詳細資訊」頁面,您可以在其中選擇「圖形」檢視中的狀態,以瀏覽步驟詳情窗格中的相關資訊。

    例如,下圖顯示所選步驟的輸出等待時間戳記。此步驟的輸出會作為輸入傳送至「傳送SNS訊息」步驟。

    在「圖形」檢視中選取的「等待時間戳記」步驟的執行輸出。