

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

# InvokeWithResponseStream
<a name="API_InvokeWithResponseStream"></a>

設定 Lambda 函數，將回應承載串流回用戶端。如需詳細資訊，請參閱[設定 Lambda 函數以串流回應](https://docs.aws.amazon.com/lambda/latest/dg/configuration-response-streaming.html)。

此作業需要 [lambda: InvokeFunction](https://docs.aws.amazon.com/IAM/latest/UserGuide/list_awslambda.html) 動作的權限。如需如何設定跨帳戶調用許可的詳細資訊，請參閱[授予其他帳戶對函數的存取](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html#permissions-resource-xaccountinvoke)。

## 請求語法
<a name="API_InvokeWithResponseStream_RequestSyntax"></a>

```
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 請求參數
<a name="API_InvokeWithResponseStream_RequestParameters"></a>

請求會使用下列 URI 參數。

 ** [ClientContext](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-ClientContext"></a>
內容物件中最多 3,583 個位元組的 base64 編碼資料，這些資料與調用用戶端以傳遞到函數有關。

 ** [FunctionName](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-FunctionName"></a>
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](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-InvocationType"></a>
使用下列其中一個選項：  
+  `RequestResponse` (預設) - 同步調用函數。保持連線打開，直到函數傳回回應或逾時。API 操作回應包括函數回應和其他資料。
+  `DryRun` - 驗證參數值並確認 IAM 使用者或角色擁有調用函數的許可。
有效值:`RequestResponse | DryRun` 

 ** [LogType](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-LogType"></a>
設定為 `Tail`，將執行記錄包含在回應中。僅適用於同步調用的函數。  
有效值:`None | Tail` 

 ** [Qualifier](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-Qualifier"></a>
別名名稱。  
長度限制：長度下限為 1。長度上限為 128。  
模式：`(|[a-zA-Z0-9$_-]+)`

## 請求主體
<a name="API_InvokeWithResponseStream_RequestBody"></a>

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

 ** [Payload](#API_InvokeWithResponseStream_RequestSyntax) **   <a name="lambda-InvokeWithResponseStream-request-Payload"></a>
想要作為輸入提供給您的 Lambda 函數的 JSON。  
您可以直接輸入 JSON。例如 `--payload '{ "key": "value" }'`。您也可以指定檔案路徑。例如 `--payload file://payload.json`。

## 回應語法
<a name="API_InvokeWithResponseStream_ResponseSyntax"></a>

```
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
   }
}
```

## 回應元素
<a name="API_InvokeWithResponseStream_ResponseElements"></a>

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

 ** [StatusCode](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-StatusCode"></a>
對於成功請求，HTTP 狀態碼在 200 範圍內。對於 `RequestResponse` 調用類型，狀態碼為 200。對於 `DryRun` 調用類型，狀態碼為 204。

回應會傳回下列 HTTP 標頭。

 ** [ExecutedVersion](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-ExecutedVersion"></a>
執行的函數版本。當您調用具有別名的函數時，這表示別名解析到哪個版本。  
長度限制：長度下限為 1。長度上限為 1024。  
模式：`(\$LATEST|[0-9]+)`

 ** [ResponseStreamContentType](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-ResponseStreamContentType"></a>
串流傳回的資料類型。

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

 ** [InvokeComplete](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-InvokeComplete"></a>
串流結束並已傳回所有承載區塊時傳回的物件。  
類型：[InvokeWithResponseStreamCompleteEvent](API_InvokeWithResponseStreamCompleteEvent.md) 物件

 ** [PayloadChunk](#API_InvokeWithResponseStream_ResponseSyntax) **   <a name="lambda-InvokeWithResponseStream-response-PayloadChunk"></a>
串流回應承載的區塊。  
類型：[InvokeResponseStreamUpdate](API_InvokeResponseStreamUpdate.md) 物件

## 錯誤
<a name="API_InvokeWithResponseStream_Errors"></a>

如需所有動作常見錯誤的資訊，請參閱[常見錯誤](CommonErrors.md)。

 ** 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 配額](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。  
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 配額](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html)。  
HTTP 狀態碼：413

 ** ResourceConflictException **   
資源已存在，或另一個操作正在進行中。  
HTTP 狀態碼：409

 ** ResourceNotFoundException **   
請求中指定的資源不存在。  
HTTP 狀態碼：404

 ** ResourceNotReadyException **   
此函數處於非作用中，且其 VPC 連線不再可用。等待 VPC 連線重新建立，然後再試一次。  
HTTP 狀態碼：502

 ** ServiceException **   
AWS Lambda 服務發生內部錯誤。  
HTTP 狀態碼：500

 ** SnapStartException **   
`afterRestore()` [執行階段掛鉤](https://docs.aws.amazon.com/lambda/latest/dg/snapstart-runtime-hooks.html)發生錯誤。有關更多信息，請查看 Amazon CloudWatch 日誌。  
HTTP 狀態碼：400

 ** SnapStartNotReadyException **   
Lambda 正在初始化您的函數。[函數狀態](https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html)變成 `Active` 時，您可以調用該函數。  
HTTP 狀態碼：409

 ** SnapStartTimeoutException **   
Lambda 無法在逾時限制內還原快照。  
HTTP 狀態碼：408

 ** SubnetIPAddressLimitReachedException **   
 一或多個已設定的子網路沒有可用的 IP 地址，所以 AWS Lambda 無法設定 Lambda 函數的 VPC 存取。  
HTTP 狀態碼：502

 ** TooManyRequestsException **   
超出請求輸送量限制。如需詳細資訊，請參閱 [Lambda 配額](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests)。  
HTTP 狀態碼：429

 ** UnsupportedMediaTypeException **   
`Invoke` 請求主體的內容類型不是 JSON。  
HTTP 狀態碼：415

## 另請參閱
<a name="API_InvokeWithResponseStream_SeeAlso"></a>

如需在語言特定的 AWS 開發套件之一中使用此 API 的詳細資訊，請參閱下列說明：
+  [AWS 命令列介面](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 .NET 的 AWS 軟體開發套件](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 C\$1\$1 的 AWS 開發套件](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 Go 的 AWS 軟體開發套件](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 Java 的 AWS 軟體開發套件第 2 版](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/InvokeWithResponseStream) 
+  [AWS適用於 JavaScript V3 的 SDK](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 PHP 的 AWS 軟體開發套件第 3 版](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 Python 的 AWS 開發套件](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/InvokeWithResponseStream) 
+  [適用於 Ruby 的 AWS 軟體開發套件第 3 版](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/InvokeWithResponseStream) 