InvokeWithResponseStream - AWS Lambda

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

InvokeWithResponseStream

設定 Lambda 函數,將回應承載串流回用戶端。如需詳細資訊,請參閱設定 Lambda 函數以串流回應

此作業需要 lambda: InvokeFunction 動作的權限。如需如何設定跨帳戶調用許可的詳細資訊,請參閱授予其他帳戶對函數的存取

請求語法

POST /2021-11-15/functions/FunctionName/response-streaming-invocations?Qualifier=Qualifier HTTP/1.1 X-Amz-Invocation-Type: InvocationType X-Amz-Log-Type: LogType X-Amz-Client-Context: ClientContext Payload

URI 請求參數

請求會使用下列 URI 參數。

ClientContext

內容物件中最多 3,583 個位元組的 base64 編碼資料,這些資料與調用用戶端以傳遞到函數有關。

FunctionName

Lambda 函數的名稱。

名稱格式
  • 函數名稱 - my-function

  • 函數 ARN - arn:aws:lambda:us-west-2:123456789012:function:my-function

  • 部分 ARN - 123456789012:function:my-function

長度限制條件僅會套用到完整的 ARN。若您僅指定函數名稱,則其長度限制為 64 個字元。

長度限制:長度下限為 1。長度上限為 170。

模式:(arn:(aws[a-zA-Z-]*)?:lambda:)?([a-z]{2}(-gov)?-[a-z]+-\d{1}:)?(\d{12}:)?(function:)?([a-zA-Z0-9-_\.]+)(:(\$LATEST|[a-zA-Z0-9-_]+))?

必要:是

InvocationType

使用下列其中一個選項:

  • RequestResponse (預設) - 同步調用函數。保持連線打開,直到函數傳回回應或逾時。API 操作回應包括函數回應和其他資料。

  • DryRun - 驗證參數值並確認 IAM 使用者或角色擁有調用函數的許可。

有效值:RequestResponse | DryRun

LogType

設定為 Tail,將執行記錄包含在回應中。僅適用於同步調用的函數。

有效值:None | Tail

Qualifier

別名名稱。

長度限制:長度下限為 1。長度上限為 128。

模式:(|[a-zA-Z0-9$_-]+)

請求主體

請求接受下列二進位資料。

Payload

想要作為輸入提供給您的 Lambda 函數的 JSON。

您可以直接輸入 JSON。例如 --payload '{ "key": "value" }'。您也可以指定檔案路徑。例如 --payload file://payload.json

回應語法

HTTP/1.1 StatusCode X-Amz-Executed-Version: ExecutedVersion Content-Type: ResponseStreamContentType Content-type: application/json { "InvokeComplete": { "ErrorCode": "string", "ErrorDetails": "string", "LogResult": "string" }, "PayloadChunk": { "Payload": blob } }

回應元素

如果動作成功,則服務傳回下列 HTTP 回應。

StatusCode

對於成功請求,HTTP 狀態碼在 200 範圍內。對於 RequestResponse 調用類型,狀態碼為 200。對於 DryRun 調用類型,狀態碼為 204。

回應會傳回下列 HTTP 標頭。

ExecutedVersion

執行的函數版本。當您調用具有別名的函數時,這表示別名解析到哪個版本。

長度限制:長度下限為 1。長度上限為 1024。

模式:(\$LATEST|[0-9]+)

ResponseStreamContentType

串流傳回的資料類型。

服務會傳回下列 JSON 格式的資料。

InvokeComplete

串流結束並已傳回所有承載區塊時傳回的物件。

類型:InvokeWithResponseStreamCompleteEvent 物件

PayloadChunk

串流回應承載的區塊。

類型:InvokeResponseStreamUpdate 物件

錯誤

如需所有動作常見錯誤的資訊,請參閱常見錯誤

EC2AccessDeniedException

需要其他許可才能對 VPC 進行設定。

HTTP 狀態碼:502

EC2ThrottledException

Lambda 函數初始化期間,Amazon EC2 使用為函數提供的執行角色對 AWS Lambda 進行限流。

HTTP 狀態碼:502

EC2UnexpectedException

設定 Lambda 函數時,AWS Lambda 收到意外的 Amazon EC2 用戶端例外狀況。

HTTP 狀態碼:502

EFSIOException

讀取或寫入連線的檔案系統時發生錯誤。

HTTP 狀態碼:410

EFSMountConnectivityException

Lambda 函數無法對已設定的檔案系統建立網路連線。

HTTP 狀態碼:408

EFSMountFailureException

由於許可或組態問題,Lambda 函數無法掛載已設定的檔案系統。

HTTP 狀態碼:403

EFSMountTimeoutException

Lambda 函數可對已設定的檔案系統建立網路連線,但掛載操作逾時。

HTTP 狀態碼:408

ENILimitReachedException

網路介面已達上限,所以 AWS Lambda 無法於 VPC 中建立被指定為 Lambda 函數組態一部分的彈性網路介面。如需詳細資訊,請參閱 Lambda 配額

HTTP 狀態碼:502

InvalidParameterValueException

要求中的其中一個參數無效。

HTTP 狀態碼:400

InvalidRequestContentException

請求主體無法解析為 JSON。

HTTP 狀態碼:400

InvalidRuntimeException

不支援指定的執行時間或執行時間版本。

HTTP 狀態碼:502

InvalidSecurityGroupIDException

Lambda 函數 VPC 組態中提供的安全群組 ID 無效。

HTTP 狀態碼:502

InvalidSubnetIDException

Lambda 函數 VPC 組態中提供的子網路 ID 無效。

HTTP 狀態碼:502

InvalidZipFileException

AWS Lambda 無法解壓縮部署套件。

HTTP 狀態碼:502

KMSAccessDeniedException

AWS KMS 存取遭拒絕,所以 Lambda 無法解密環境變數。請檢查 Lambda 函數的 KMS 許可。

HTTP 狀態碼:502

KMSDisabledException

使用的 AWS KMS key 已停用,所以 Lambda 無法解密環境變數。請檢查 Lambda 函數的 KMS 金鑰設定。

HTTP 狀態碼:502

KMSInvalidStateException

使用的 AWS KMS key 狀態對解密無效,所以 Lambda 無法解密環境變數。請檢查函數的 KMS 金鑰設定。

HTTP 狀態碼:502

KMSNotFoundException

找不到 AWS KMS key,所以 Lambda 無法解密環境變數。請檢查函數的 KMS 金鑰設定。

HTTP 狀態碼:502

RecursiveInvocationException

Lambda 偵測到函數在遞迴迴圈中被其他 AWS 資源調用,並停止了函數調用。

HTTP 狀態碼:400

RequestTooLargeException

要求承載超過 Invoke 要求主體 JSON 輸入配額。如需詳細資訊,請參閱 Lambda 配額

HTTP 狀態碼:413

ResourceConflictException

資源已存在,或另一個操作正在進行中。

HTTP 狀態碼:409

ResourceNotFoundException

請求中指定的資源不存在。

HTTP 狀態碼:404

ResourceNotReadyException

此函數處於非作用中,且其 VPC 連線不再可用。等待 VPC 連線重新建立,然後再試一次。

HTTP 狀態碼:502

ServiceException

AWS Lambda 服務發生內部錯誤。

HTTP 狀態碼:500

SnapStartException

afterRestore() 執行階段掛鉤發生錯誤。有關更多信息,請查看 Amazon CloudWatch 日誌。

HTTP 狀態碼:400

SnapStartNotReadyException

Lambda 正在初始化您的函數。函數狀態變成 Active 時,您可以調用該函數。

HTTP 狀態碼:409

SnapStartTimeoutException

Lambda 無法在逾時限制內還原快照。

HTTP 狀態碼:408

SubnetIPAddressLimitReachedException

一或多個已設定的子網路沒有可用的 IP 地址,所以 AWS Lambda 無法設定 Lambda 函數的 VPC 存取。

HTTP 狀態碼:502

TooManyRequestsException

超出請求輸送量限制。如需詳細資訊,請參閱 Lambda 配額

HTTP 狀態碼:429

UnsupportedMediaTypeException

Invoke 請求主體的內容類型不是 JSON。

HTTP 狀態碼:415

另請參閱

如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊,請參閱下列說明: