選取您的 Cookie 偏好設定

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

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

教學課程:建立具有函數 URL 的回應串流 Lambda 函數

焦點模式
教學課程:建立具有函數 URL 的回應串流 Lambda 函數 - AWS Lambda

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

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

在本教學課程中,您會建立格式為 .zip 封存檔的 Lambda 函數,其包含的函數 URL 端點會傳回回應串流。如需設定函數 URL 的詳細資訊,請參閱 函數 URL

先決條件

此教學課程假設您具備基本的 Lambda 操作知識並了解 Lambda 主控台。若您尚未了解,請遵循 使用主控台建立一個 Lambda 函數 中的指示,建立您的第一個 Lambda 函數。

若要完成下列步驟,您需要 AWS CLI 版本 2。命令和預期的輸出會列在不同的區塊中:

aws --version

您應該會看到下列輸出:

aws-cli/2.13.27 Python/3.11.6 Linux/4.14.328-248.540.amzn2.x86_64 exe/x86_64.amzn.2

對於長命令,逸出字元 (\) 用於將命令分割為多行。

在 Linux 和 macOS 上,使用您偏好的 shell 和套件軟體管理工具。

注意

在 Windows 中,作業系統的內建終端不支援您常與 Lambda 搭配使用的某些 Bash CLI 命令 (例如 zip)。若要取得 Ubuntu 和 Bash 的 Windows 整合版本,請安裝適用於 Linux 的 Windows 子系統。本指南中的 CLI 命令範例使用 Linux 格式。如果您使用的是 Windows CLI,必須重新格式化包含內嵌 JSON 文件的命令。

建立執行角色

建立執行角色,授予您的 Lambda 函數存取 AWS 資源的許可。

若要建立執行角色
  1. 開啟 AWS Identity and Access Management (IAM) 主控台的 角色 頁面。

  2. 選擇建立角色

  3. 建立具備下列屬性的角色:

    • 信任的實體類型AWS 服務

    • 使用案例Lambda

    • 許可AWSLambdaBasicExecutionRole

    • 角色名稱 - response-streaming-role

AWSLambdaBasicExecutionRole 政策具有函數將日誌寫入 Amazon CloudWatch Logs 所需的許可。建立角色後,請記下其 Amazon Resource Name (ARN)。下一個步驟將需要此值。

建立回應串流函數 (AWS CLI)

使用 AWS Command Line Interface (AWS CLI) 建立具有函數 URL 端點的回應串流 Lambda 函數。

建立可串流回應的函數
  1. 將下列程式碼範例複製至名為 index.mjs 的檔案中。

    import util from 'util'; import stream from 'stream'; const { Readable } = stream; const pipeline = util.promisify(stream.pipeline); /* global awslambda */ export const handler = awslambda.streamifyResponse(async (event, responseStream, _context) => { const requestStream = Readable.from(Buffer.from(JSON.stringify(event))); await pipeline(requestStream, responseStream); });
  2. 建立部署套件。

    zip function.zip index.mjs
  3. 使用 create-function 命令建立一個 Lambda 函數。使用上一個步驟的角色 ARN 取代 --role 的值。

    aws lambda create-function \ --function-name my-streaming-function \ --runtime nodejs16.x \ --zip-file fileb://function.zip \ --handler index.handler \ --role arn:aws:iam::123456789012:role/response-streaming-role
建立函數 URL
  1. 將資源型政策新增至函數,以允許存取您的函數 URL。將 的值取代--principal為您的 AWS 帳戶 ID。

    aws lambda add-permission \ --function-name my-streaming-function \ --action lambda:InvokeFunctionUrl \ --statement-id 12345 \ --principal 123456789012 \ --function-url-auth-type AWS_IAM \ --statement-id url
  2. 使用 create-function-url-config 命令為函數建立 URL 端點。

    aws lambda create-function-url-config \ --function-name my-streaming-function \ --auth-type AWS_IAM \ --invoke-mode RESPONSE_STREAM

測試函數 URL 端點

透過調用函數來測試整合。可以在瀏覽器中開啟函數 URL,也可以使用 curl。

curl --request GET "<function_url>" --user "<key:token>" --aws-sigv4 "aws:amz:us-east-1:lambda" --no-buffer

我們的函數 URL 使用 IAM_AUTH 驗證類型。這表示您需要使用 AWS 存取金鑰和私密金鑰簽署請求。在上一個命令中,將 取代<key:token>為 AWS 存取金鑰 ID。出現提示時輸入您的 AWS 私密金鑰。如果您沒有 AWS 私密金鑰,您可以改為使用臨時 AWS 憑證

清除您的資源

除非您想要保留為此教學課程建立的資源,否則您現在便可刪除。透過刪除不再使用 AWS 的資源,您可以避免不必要的費用 AWS 帳戶。

刪除執行角色
  1. 開啟 IAM 主控台中的 角色頁面

  2. 選取您建立的執行角色。

  3. 選擇刪除

  4. 在文字輸入欄位中輸入角色的名稱,然後選擇 刪除

若要刪除 Lambda 函數
  1. 開啟 Lambda 主控台中的 函數頁面

  2. 選擇您建立的函數。

  3. 選擇 Actions (動作)、Delete (刪除)。

  4. 在文字輸入欄位中輸入 confirm,然後選擇 刪除

下一個主題:

調用函數

上一個主題:

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