

# PutFunctionEventInvokeConfig
<a name="API_PutFunctionEventInvokeConfig"></a>

配置对函数、版本或别名的[异步调用](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html)选项。如果函数、版本或别名的配置已存在，则此操作会覆盖该配置。如果排除任何设置，则会删除这些设置。要设置一个选项而不影响其他选项的现有设置，请使用 [UpdateFunctionEventInvokeConfig](API_UpdateFunctionEventInvokeConfig.md)。

默认情况下，如果函数返回错误，Lambda 将重试两次异步调用。它将事件在队列中保留最多 6 个小时。如果事件未完成所有处理尝试，或者在异步调用队列中保留太长的时间，Lambda 将丢弃该事件。要保留已丢弃的事件，请使用 [UpdateFunctionConfiguration](API_UpdateFunctionConfiguration.md) 配置死信队列。

要将调用记录发送到队列、主题、函数或事件总线，请指定[目的地](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations)。您可以为成功调用（成功时）和所有处理尝试均失败（失败时）的事件配置单独的目的地。除死信队列之外，或者作为替代死信队列的方式，您还可以配置目的地。

## 请求语法
<a name="API_PutFunctionEventInvokeConfig_RequestSyntax"></a>

```
PUT /2019-09-25/functions/FunctionName/event-invoke-config?Qualifier=Qualifier HTTP/1.1
Content-type: application/json

{
   "DestinationConfig": { 
      "OnFailure": { 
         "Destination": "string"
      },
      "OnSuccess": { 
         "Destination": "string"
      }
   },
   "MaximumEventAgeInSeconds": number,
   "MaximumRetryAttempts": number
}
```

## URI 请求参数
<a name="API_PutFunctionEventInvokeConfig_RequestParameters"></a>

请求使用以下 URI 参数。

 ** [FunctionName](#API_PutFunctionEventInvokeConfig_RequestSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-request-FunctionName"></a>
Lambda 函数的名称、版本或别名。  

**名称格式**
+  **函数名称** – `my-function`（仅限名称）、`my-function:v1`（具有别名）。
+  **函数 ARN** - `arn:aws:lambda:us-west-2:123456789012:function:my-function`。
+  **部分 ARN** - `123456789012:function:my-function`。
您可以将一个版本号或别名附加到任何格式。长度约束仅适用于完整 ARN。如果您仅指定函数名称，它的长度限制为 64 个字符。  
长度限制：最小长度为 1。长度上限为 140。  
模式：`(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-_]+))?`  
必需：是

 ** [Qualifier](#API_PutFunctionEventInvokeConfig_RequestSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-request-Qualifier"></a>
版本号或别名。  
长度限制：最小长度为 1。长度上限为 128。  
模式：`(|[a-zA-Z0-9$_-]+)`

## 请求正文
<a name="API_PutFunctionEventInvokeConfig_RequestBody"></a>

请求接受采用 JSON 格式的以下数据。

 ** [DestinationConfig](#API_PutFunctionEventInvokeConfig_RequestSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-request-DestinationConfig"></a>
在事件发送到函数以进行处理后的目标。  

**目标**
+  **Function** - Lambda 函数的 Amazon 资源名称（ARN）。
+  **Queue** - 标准 SQS 队列的 ARN。
+  **Topic** - 标准 SNS 主题的 ARN。
+  **Event Bus** - Amazon EventBridge 事件总线的 ARN。
类型：[DestinationConfig](API_DestinationConfig.md) 对象  
必需：否

 ** [MaximumEventAgeInSeconds](#API_PutFunctionEventInvokeConfig_RequestSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-request-MaximumEventAgeInSeconds"></a>
Lambda 发送到函数以进行处理的请求的最长期限。  
类型：整数  
有效范围：最小值为 60。最大值为 21600。  
必需：否

 ** [MaximumRetryAttempts](#API_PutFunctionEventInvokeConfig_RequestSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-request-MaximumRetryAttempts"></a>
在函数返回错误时重试的最大次数。  
类型：整数  
有效范围：最小值为 0。最大值为 2。  
必需：否

## 响应语法
<a name="API_PutFunctionEventInvokeConfig_ResponseSyntax"></a>

```
HTTP/1.1 200
Content-type: application/json

{
   "DestinationConfig": { 
      "OnFailure": { 
         "Destination": "string"
      },
      "OnSuccess": { 
         "Destination": "string"
      }
   },
   "FunctionArn": "string",
   "LastModified": number,
   "MaximumEventAgeInSeconds": number,
   "MaximumRetryAttempts": number
}
```

## 响应元素
<a name="API_PutFunctionEventInvokeConfig_ResponseElements"></a>

如果此操作成功，则该服务将会发送回 HTTP 200 响应。

服务以 JSON 格式返回以下数据。

 ** [DestinationConfig](#API_PutFunctionEventInvokeConfig_ResponseSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-response-DestinationConfig"></a>
在事件发送到函数以进行处理后的目标。  

**目标**
+  **Function** - Lambda 函数的 Amazon 资源名称（ARN）。
+  **Queue** - 标准 SQS 队列的 ARN。
+  **Topic** - 标准 SNS 主题的 ARN。
+  **Event Bus** - Amazon EventBridge 事件总线的 ARN。
类型：[DestinationConfig](API_DestinationConfig.md) 对象

 ** [FunctionArn](#API_PutFunctionEventInvokeConfig_ResponseSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-response-FunctionArn"></a>
函数的 Amazon Resource Name (ARN)。  
类型：字符串  
模式：`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-_]+))?`

 ** [LastModified](#API_PutFunctionEventInvokeConfig_ResponseSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-response-LastModified"></a>
上次更新配置的日期和时间（以 Unix 时间秒为单位）。  
类型：时间戳

 ** [MaximumEventAgeInSeconds](#API_PutFunctionEventInvokeConfig_ResponseSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-response-MaximumEventAgeInSeconds"></a>
Lambda 发送到函数以进行处理的请求的最长期限。  
类型：整数  
有效范围：最小值为 60。最大值为 21600。

 ** [MaximumRetryAttempts](#API_PutFunctionEventInvokeConfig_ResponseSyntax) **   <a name="lambda-PutFunctionEventInvokeConfig-response-MaximumRetryAttempts"></a>
在函数返回错误时重试的最大次数。  
类型：整数  
有效范围：最小值为 0。最大值为 2。

## 错误
<a name="API_PutFunctionEventInvokeConfig_Errors"></a>

有关所有操作返回的常见错误的信息，请参阅 [常见错误](CommonErrors.md)。

 ** InvalidParameterValueException **   
请求中的参数之一无效。  
HTTP 状态代码：400

 ** ResourceConflictException **   
资源已存在，或者其他操作正在进行中。  
HTTP 状态代码：409

 ** ResourceNotFoundException **   
请求中指定的资源不存在。  
HTTP 状态代码：404

 ** ServiceException **   
AWS Lambda 服务遇到了内部错误。  
HTTP 状态代码：500

 ** TooManyRequestsException **   
超出了请求吞吐量限制。有关更多信息，请参阅 [Lambda 限额](https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests)。  
HTTP 状态代码：429

## 另请参阅
<a name="API_PutFunctionEventInvokeConfig_SeeAlso"></a>

有关在特定语言的 AWS SDK 中使用此 API 的更多信息，请参阅以下内容：
+  [AWS 命令行界面](https://docs.aws.amazon.com/goto/aws-cli/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 .NET 的 AWS SDK](https://docs.aws.amazon.com/goto/DotNetSDKV3/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 C\$1\$1 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForCpp/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 Go 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForGoV1/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 Java V2 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForJavaV2/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [AWS 适用于 JavaScript 的开发工具包 V3](https://docs.aws.amazon.com/goto/SdkForJavaScriptV3/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 PHP V3 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForPHPV3/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 Python 的 AWS SDK](https://docs.aws.amazon.com/goto/boto3/lambda-2015-03-31/PutFunctionEventInvokeConfig) 
+  [适用于 Ruby V3 的 AWS SDK](https://docs.aws.amazon.com/goto/SdkForRubyV3/lambda-2015-03-31/PutFunctionEventInvokeConfig) 