雲端測試簡介 sam remote test-event - AWS Serverless Application Model

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

雲端測試簡介 sam remote test-event

使用指 AWS Serverless Application Model 令行介面 (AWS SAM CLI) sam remote test-event 指令可存取和管理 AWS Lambda 函數的可共用測試事件。

若要進一步了解可共用的測試事件,請參閱AWS Lambda 開發人員指南中的可共用測試事件

若要使用sam remote test-event,請完成下列 AWS SAMCLI步驟來安裝:

如果您已經 AWS SAM CLI安裝了,我們建議您升級到最新版本的 AWS SAMCLI版本。如需進一步了解,請參閱升級 AWS SAMCLI

使用前sam remote test-event,我們建議對以下內容進行基本了解:

設定 AWS SAMCLI要使用 sam remote test-event

完成下列設定步驟以使用 AWS SAM CLIsam remote test-event指令:

  1. 設定 AWS SAM CLI為使用您的 AWS 帳戶— Lambda 的可共用測試事件可由相同 AWS 帳戶的使用者存取和管理。若要將設定 AWS SAM CLI為使用您的 AWS 帳戶,請參閱配置 AWS SAMCLI

  2. 設定可共用測試事件的權限 — 若要存取和管理可共用的測試事件,您必須擁有適當的權限。若要深入了解,請參閱AWS Lambda 開發人員指南中的可共用測試事件

使用指sam remote test-event令

該 AWS SAM CLIsam remote test-event命令提供了以下子命令,您可以用來訪問和管理可共享的測試事件:

  • delete— 從 Amazon EventBridge 架構登錄檔中刪除可共用的測試事件。

  • get— 從 EventBridge 結構描述登錄檔取得可共用的測試事件。

  • list— 從 EventBridge 結構描述登錄中列出函數的現有可共用測試事件。

  • put— 將事件從本機檔案儲存至 EventBridge 結構描述登錄。

若要使用列出這些子命令 AWS SAM CLI,請執行下列命令:

$ sam remote test-event --help

刪除可共享的測試事件

您可以使用子命令和以delete下命令來刪除可共享的測試事件:

  • 提供要刪除的可共用測試事件的名稱。

  • 提供與事件相關聯之 Lambda 函數的可接受識別碼。

  • 如果您提供 Lambda 函數邏輯 ID,則還必須提供與 Lambda 函數相關聯的 AWS CloudFormation 堆疊名稱。

以下是範例:

$ sam remote test-event delete HelloWorldFunction --stack-name sam-app --name demo-event

若要取得與delete子指令搭配使用的選項清單,請參閱〈〉sam remote test-event delete。您也可以從以下位置執行下列命令 AWS SAM CLI:

$ sam remote test-event delete --help

取得可共用的測試事件

您可以使用子命令以及get下列命令,從結 EventBridge 構描述登錄檔取得可共用的測試事件:

  • 提供要取得之可共用測試事件的名稱。

  • 提供與事件相關聯之 Lambda 函數的可接受識別碼。

  • 如果您提供 Lambda 函數邏輯 ID,則還必須提供與 Lambda 函數相關聯的 AWS CloudFormation 堆疊名稱。

下列範例會取得名為demo-eventsam-app堆疊的 HelloWorldFunction Lambda 函數相關聯的可共用測試事件。此命令會將事件打印到您的控制台。

$ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event

若要取得可共用的測試事件並將其儲存至本機電腦,請使用選--output-file項並提供檔案路徑和名稱。以下是在目前工作目錄demo-event.json中另存demo-event為的範例:

$ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json

若要取得與get子指令搭配使用的選項清單,請參閱〈〉sam remote test-event get。您也可以從以下位置執行下列命令 AWS SAM CLI:

$ sam remote test-event get --help

列出可共享的測試事件

您可以從結構描述登錄列出特定 Lambda 函數的所有可共用測試事件。使用list子指令以及下列項目:

  • 提供與事件相關聯之 Lambda 函數的可接受識別碼。

  • 如果您提供 Lambda 函數邏輯 ID,則還必須提供與 Lambda 函數相關聯的 AWS CloudFormation 堆疊名稱。

以下是取得與堆疊 HelloWorldFunction Lambda 函數相關聯的所有可共用測試事件清單的sam-app範例:

$ sam remote test-event list HelloWorldFunction --stack-name sam-app

若要取得與list子指令搭配使用的選項清單,請參閱〈〉sam remote test-event list。您也可以從以下位置執行下列命令 AWS SAM CLI:

$ sam remote test-event list --help

儲存可共用的測試事件

您可以將可共用的測試事件儲存至 EventBridge 結構描述登錄。使用put子指令以及下列項目:

  • 提供與可共用測試事件相關聯之 Lambda 函數的可接受識別碼。

  • 提供可共用測試事件的名稱。

  • 提供要上載之本機事件的檔案路徑和名稱。

下列範例會將本機demo-event.json事件另存為,demo-event並將其與sam-app堆疊的 HelloWorldFunction Lambda 函數產生關聯:

$ sam remote test-event put HelloWorldFunction --stack-name sam-app --name demo-event --file demo-event.json

如果 EventBridge 結構描述登錄中存在具有相同名稱的可共用測試事件, AWS SAM CLI將不會覆寫它。若要覆寫,請將選--force項新增至您的指令。

若要取得與put子指令搭配使用的選項清單,請參閱〈〉sam remote test-event put。您也可以從以下位置執行下列命令 AWS SAM CLI:

$ sam remote test-event put --help

使用可共享的測試事件

使用可共用的測試事件, AWS 雲端 透過sam remote invoke命令在中測試您的 Lambda 函數。如需進一步了解,請參閱將可共用的測試事件傳遞至雲端中的 Lambda 函數

管理可共用的測試事件

本主題包含如何管理和使用可共用測試事件的範例。

獲取可共享的測試事件,對其進行修改並使用

您可以從 EventBridge 結構描述登錄檔取得可共用的測試事件、在本機修改該事件,然後將本機測試事件與中的 Lambda 函數搭配使用。 AWS 雲端以下是範例:

  1. 擷取可共用的測試事件 — 使用sam remote test-event get子命令擷取特定 Lambda 函數的可共用測試事件,並將其儲存在本機:

    $ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json
  2. 修改可共用的測試事件 — 使用您選擇的文字編輯器來修改可共用的測試事件。

  3. 使用可共用的測試事件 — 使用sam remote invoke指令,並提供事件的檔案路徑和名稱:--event-file

    $ sam remote invoke HelloWorldFunction --stack-name sam-app --event-file demo-event.json

取得可共用的測試事件、修改、上傳並使用

您可以從 EventBridge 結構描述登錄檔取得可共用的測試事件,在本機修改並上傳。然後,您可以將可共用的測試事件直接傳遞給. AWS 雲端以下是範例:

  1. 擷取可共用的測試事件 — 使用sam remote test-event get子命令擷取特定 Lambda 函數的可共用測試事件,並將其儲存在本機:

    $ sam remote test-event get HelloWorldFunction --stack-name sam-app --name demo-event --output-file demo-event.json
  2. 修改可共用的測試事件 — 使用您選擇的文字編輯器來修改可共用的測試事件。

  3. 上傳可共用的測試事件 — 使用sam remote test-event put子命令將可共用的測試事件上傳並儲存至結構描述 EventBridge 登錄。在此範例中,我們使用--force選項覆寫可共用測試的舊版本:

    $ sam remote test-event put HelloWorldFunction --stack-name sam-app --name demo-event --file demo-event.json --force
  4. 可共用的測試事件傳遞至 Lambda 函數 — 使用sam remote invoke命令將可共用的測試事件直接傳遞給 Lambda 函數,位於下列位置: AWS 雲端

    $ sam remote invoke HelloWorldFunction --stack-name sam-app --test-event-name demo-event