本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
-
串流結束並已傳回所有承載區塊時傳回的物件。
- PayloadChunk
-
串流回應承載的區塊。
錯誤
如需所有動作常見錯誤的資訊,請參閱常見錯誤。
- 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 的詳細資訊,請參閱下列說明: