

# 配置 Lambda 函数超时
<a name="configuration-timeout"></a>

在超时之前，Lambda 会在设定的时间内运行您的代码。*超时*是 Lambda 函数可以运行的最大时间量（以秒为单位）。此设置的默认值为 3 秒，但您可以按照 1 秒增量调整此值，最大值为 900 秒（15 分钟）。

本页介绍如何以及何时更新 Lambda 函数的超时设置。

**Topics**
+ [确定 Lambda 函数的适当超时值](#configuration-timeout-use-cases)
+ [配置超时（控制台）](#configuration-timeout-console)
+ [配置超时（AWS CLI）](#configuration-timeout-cli)
+ [配置超时（AWS SAM）](#configuration-timeout-sam)

## 确定 Lambda 函数的适当超时值
<a name="configuration-timeout-use-cases"></a>

如果超时值接近函数的平均持续时间，则该函数意外超时的风险较高。函数的持续时间可能因数据传输和处理量以及与该函数交互的任何服务的延迟而不同。导致超时的一些常见原因包括：
+ Amazon Simple Storage Service（Amazon S3）下载量大于平均水平或需要的时间更长。
+ 一个函数向另一项服务发出请求，这需要更长的时间才能响应。
+ 提供给函数的参数要求函数具有更高的计算复杂度，这会导致调用花费更长的时间。

在测试应用程序时，请确保您的测试准确反映数据的大小和数量以及真实的参数值。为方便起见，测试通常使用少量样本，但您应该在您的工作负载合理预期值的上限使用数据集。

## 配置超时（控制台）
<a name="configuration-timeout-console"></a>

您可以在 Lambda 控制台中配置函数的超时时间。

**修改函数的超时时间**

1. 打开 Lamba 控制台的[函数](https://console.aws.amazon.com/lambda/home#/functions)页面。

1. 选择函数。

1. 选择**配置**选项卡，然后选择**常规配置**。  
![\[\]](http://docs.aws.amazon.com/zh_cn/lambda/latest/dg/images/configuration-tab.png)

1. 在**常规配置**下，选择**编辑**。

1. 对于**超时**，设置一个介于 1 到 900 秒（15 分钟）之间的值。

1. 选择**保存**。

## 配置超时（AWS CLI）
<a name="configuration-timeout-cli"></a>

您可以使用 [update-function-configuration](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lambda/update-function-configuration.html) 命令来配置超时值，以秒为单位。以下示例命令将函数超时增加到 120 秒（2 分钟）。

**Example**  

```
aws lambda update-function-configuration \
  --function-name my-function \
  --timeout 120
```

## 配置超时（AWS SAM）
<a name="configuration-timeout-sam"></a>

您可以使用 [AWS Serverless Application Model](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/serverless-getting-started.html ) 来配置函数的超时值。更新 `template.yaml` 文件中的 [Timeout](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-resource-function.html#sam-function-timeout) 属性，然后运行 [sam deploy](https://docs.aws.amazon.com//serverless-application-model/latest/developerguide/sam-cli-command-reference-sam-deploy.html)。

**Example template.yaml**  

```
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: An AWS Serverless Application Model template describing your function.
Resources:
  my-function:
    Type: AWS::Serverless::Function
    Properties:
      CodeUri: .
      Description: ''
      MemorySize: 128
      Timeout: 120
      # Other function properties...
```