UpdateFunctionConfiguration - Amazon Lambda
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

UpdateFunctionConfiguration

修改 Lambda 函数的版本特定设置。

更新函数时,Lambda 会预置该函数及其支持资源的实例。如果您的函数连接到 VPC,则此过程可能需要一分钟时间。在此期间,您无法修改函数,但仍可以调用函数。来自 GetFunctionConfiguration 响应的 LastUpdateStatusLastUpdateStatusReasonLastUpdateStatusReasonCode 字段指示更新何时完成,且函数正在处理具有新配置的事件。有关更多信息,请参阅 Lambda 函数状态

这些设置可能因函数的版本而异,并且在发布版本时会被锁定。您无法修改已发布版本的配置,只能修改未发布版本的配置。

要配置函数并发,请使用 PutFunctionConcurrency。要向 Amazon Web Services 账户 或 Amazon Web Services 服务 授予调用权限,请使用 AddPermission

请求语法

PUT /2015-03-31/functions/FunctionName/configuration HTTP/1.1 Content-type: application/json { "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Variables": { "string" : "string" } }, "EphemeralStorage": { "Size": number }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "Handler": "string", "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" }, "KMSKeyArn": "string", "Layers": [ "string" ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MemorySize": number, "RevisionId": "string", "Role": "string", "Runtime": "string", "SnapStart": { "ApplyOn": "string" }, "Timeout": number, "TracingConfig": { "Mode": "string" }, "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ] } }

URI 请求参数

请求使用以下 URI 参数。

FunctionName

Lambda 函数的名称。

名称格式
  • 函数名称my-function

  • 函数 ARNarn:aws:lambda:us-west-2:123456789012:function:my-function

  • 部分 ARN123456789012: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-_]+))?

必需:是

请求体

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

DeadLetterConfig

死信队列配置,用于指定 Lambda 在处理失败时发送异步事件的队列或主题。有关更多信息,请参阅死信队列

类型:DeadLetterConfig 对象

必需:否

Description

该函数的描述。

类型:字符串

长度约束:最小长度为 0。长度上限为 256。

必需:否

Environment

执行期间可从函数代码访问的环境变量。

类型:Environment 对象

必需:否

EphemeralStorage

函数的 /tmp 目录大小(以 MB 为单位)。默认值为 512,但可以是介于 512 到 10240 MB 之间的任意整数。有关更多信息,请参阅配置短暂存储(控制台)

类型:EphemeralStorage 对象

必需:否

FileSystemConfigs

Amazon EFS 文件系统的连接设置。

类型:FileSystemConfig 对象数组

数组成员:最多 1 个物品。

必需:否

Handler

代码中方法的名称,Lambda 可调用该方法来运行您的函数。如果部署包是 .zip 文件归档,则需要使用处理程序。该格式包括文件名,也可以包括命名空间和其他限定符,具体取决于运行时。有关更多信息,请参阅 Lambda 编程模型

类型:字符串

长度限制:最大长度为 128。

模式:[^\s]+

必需:否

ImageConfig

覆盖容器镜像 Docker 文件中的值的容器镜像配置值

类型:ImageConfig 对象

必需:否

KMSKeyArn

Amazon Key Management Service (Amazon KMS) 客户托管密钥的 ARN,用于加密函数的环境变量。激活 Lambda SnapStart 后,Lambda 还使用此密钥对函数的快照进行加密。如果您使用容器映像部署函数,Lambda 还会在部署函数后使用此密钥对其进行加密。请注意,此密钥与在 Amazon Elastic Container Registry(Amazon ECR)中用于保护容器映像的密钥不同。如果您未提供客户托管密钥,Lambda 将使用默认服务密钥。

类型:字符串

模式:(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

必需:否

Layers

要添加到函数执行环境中的函数层列表。通过 ARN 指定每一层,包括版本。

类型:字符串数组

长度限制:最小长度为 1。长度上限为 140。

模式:arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+

必需:否

LoggingConfig

该函数的 Amazon CloudWatch Logs 配置设置。

类型:LoggingConfig 对象

必需:否

MemorySize

在运行时 可用于函数的内存 量。提高该函数的内存也会增加它的 CPU 分配。默认值为 128 MB。该值可以是 1 MB 的任意倍数。

类型:整数

有效范围:最小值为 128。最大值为 10240。

必需:否

RevisionId

仅当修订版 ID 与指定的 ID 匹配时才更新函数。使用此选项以避免修改自上次读取后发生更改的函数。

类型:字符串

必需:否

Role

函数的执行角色的 Amazon Resource Name (ARN)。

类型:字符串

模式:arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

必需:否

Runtime

函数的运行时的标识符。如果部署包是 .zip 文件归档,则需要使用运行时。

以下列表包括已弃用的运行时。有关更多信息,请参阅运行时弃用策略

类型:字符串

有效值:nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

必需:否

SnapStart

函数的 SnapStart 设置。

类型:SnapStart 对象

必需:否

Timeout

Lambda 在停止函数前允许其运行的时长(以秒为单位)。默认值为 3 秒。允许的最大值为 900 秒。有关更多信息,请参阅 Lambda 执行环境

类型:整数

有效范围:最小值为 1。

必需:否

TracingConfig

Mode 设置为 Active,以使用 X-Ray 对传入请求的子集进行采样和跟踪。

类型:TracingConfig 对象

必需:否

VpcConfig

对于与 VPC 中的Amazon资源的网络连接,指定 VPC 中的安全组和子网列表。当您将函数连接到 VPC 时,它只能通过该 VPC 访问资源和互联网。有关更多信息,请参阅配置 Lambda 函数以访问 VPC 中的资源

类型:VpcConfig 对象

必需:否

响应语法

HTTP/1.1 200 Content-type: application/json { "Architectures": [ "string" ], "CodeSha256": "string", "CodeSize": number, "DeadLetterConfig": { "TargetArn": "string" }, "Description": "string", "Environment": { "Error": { "ErrorCode": "string", "Message": "string" }, "Variables": { "string" : "string" } }, "EphemeralStorage": { "Size": number }, "FileSystemConfigs": [ { "Arn": "string", "LocalMountPath": "string" } ], "FunctionArn": "string", "FunctionName": "string", "Handler": "string", "ImageConfigResponse": { "Error": { "ErrorCode": "string", "Message": "string" }, "ImageConfig": { "Command": [ "string" ], "EntryPoint": [ "string" ], "WorkingDirectory": "string" } }, "KMSKeyArn": "string", "LastModified": "string", "LastUpdateStatus": "string", "LastUpdateStatusReason": "string", "LastUpdateStatusReasonCode": "string", "Layers": [ { "Arn": "string", "CodeSize": number, "SigningJobArn": "string", "SigningProfileVersionArn": "string" } ], "LoggingConfig": { "ApplicationLogLevel": "string", "LogFormat": "string", "LogGroup": "string", "SystemLogLevel": "string" }, "MasterArn": "string", "MemorySize": number, "PackageType": "string", "RevisionId": "string", "Role": "string", "Runtime": "string", "RuntimeVersionConfig": { "Error": { "ErrorCode": "string", "Message": "string" }, "RuntimeVersionArn": "string" }, "SigningJobArn": "string", "SigningProfileVersionArn": "string", "SnapStart": { "ApplyOn": "string", "OptimizationStatus": "string" }, "State": "string", "StateReason": "string", "StateReasonCode": "string", "Timeout": number, "TracingConfig": { "Mode": "string" }, "Version": "string", "VpcConfig": { "Ipv6AllowedForDualStack": boolean, "SecurityGroupIds": [ "string" ], "SubnetIds": [ "string" ], "VpcId": "string" } }

响应元素

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

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

Architectures

该函数支持的指令集架构。架构是具有有效值之一的字符串数组。默认架构值是 x86_64

类型:字符串数组

数组成员:固定数量为 1 项。

有效值:x86_64 | arm64

CodeSha256

函数部署包的 SHA256 哈希。

类型:字符串

CodeSize

函数部署包的大小(以字节为单位)。

类型:长整型

DeadLetterConfig

函数的死信队列。

类型:DeadLetterConfig 对象

Description

函数说明。

类型:字符串

长度约束:最小长度为 0。长度上限为 256。

Environment

函数环境变量。在 Amazon CloudTrail 日志中被忽略。

类型:EnvironmentResponse 对象

EphemeralStorage

函数的 /tmp 目录大小(以 MB 为单位)。默认值为 512,但可以是介于 512 到 10240 MB 之间的任意整数。有关更多信息,请参阅配置短暂存储(控制台)

类型:EphemeralStorage 对象

FileSystemConfigs

Amazon EFS 文件系统的连接设置。

类型:FileSystemConfig 对象数组

数组成员:最多 1 个物品。

FunctionArn

函数的 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-_]+))?

FunctionName

函数的名称。

类型:字符串

长度限制:最小长度为 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-_]+))?

Handler

Lambda 为开始运行您的函数而调用的函数。

类型:字符串

长度限制:最大长度为 128。

模式:[^\s]+

ImageConfigResponse

函数的镜像配置值。

类型:ImageConfigResponse 对象

KMSKeyArn

用于加密函数的环境变量的 Amazon KMS key。激活 Lambda SnapStart 时,此密钥还用于加密您的函数的快照。仅当您配置了客户托管密钥时,才会返回此密钥。

类型:字符串

模式:(arn:(aws[a-zA-Z-]*)?:[a-z0-9-.]+:.*)|()

LastModified

该函数上次更新的日期和时间,采用 ISO-8601 格式 (YYYY-MM-DDThh:mm:ss.sTZD)。

类型:字符串

LastUpdateStatus

上次对函数执行的更新的状态。函数创建完成后,首先设置为 Successful

类型:字符串

有效值:Successful | Failed | InProgress

LastUpdateStatusReason

上次对函数执行更新的原因。

类型:字符串

LastUpdateStatusReasonCode

函数上次更新的原因代码。

类型:字符串

有效值:EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Layers

函数的

类型:Layer 对象数组

LoggingConfig

该函数的 Amazon CloudWatch Logs 配置设置。

类型:LoggingConfig 对象

MasterArn

对于 Lambda@Edge 函数,为主函数的 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-_]+))?

MemorySize

在运行时 可用于函数的内存 量。

类型:整数

有效范围:最小值为 128。最大值为 10240。

PackageType

部署程序包的类型。将容器映像设置为 Image,然后将 .zip 文件存档设置为 Zip

类型:字符串

有效值:Zip | Image

RevisionId

函数或别名的最新更新版本。

类型:字符串

Role

函数的执行角色。

类型:字符串

模式:arn:(aws[a-zA-Z-]*)?:iam::\d{12}:role/?[a-zA-Z_0-9+=,.@\-_/]+

Runtime

函数的运行时的标识符。如果部署包是 .zip 文件归档,则需要使用运行时。

以下列表包括已弃用的运行时。有关更多信息,请参阅运行时弃用策略

类型:字符串

有效值:nodejs | nodejs4.3 | nodejs6.10 | nodejs8.10 | nodejs10.x | nodejs12.x | nodejs14.x | nodejs16.x | java8 | java8.al2 | java11 | python2.7 | python3.6 | python3.7 | python3.8 | python3.9 | dotnetcore1.0 | dotnetcore2.0 | dotnetcore2.1 | dotnetcore3.1 | dotnet6 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21

RuntimeVersionConfig

运行时的 ARN 和发生的任何错误。

类型:RuntimeVersionConfig 对象

SigningJobArn

签名任务的 ARN。

类型:字符串

模式:arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SigningProfileVersionArn

签名配置文件版本的 ARN。

类型:字符串

模式:arn:(aws[a-zA-Z0-9-]*):([a-zA-Z0-9\-])+:([a-z]{2}(-gov)?-[a-z]+-\d{1})?:(\d{12})?:(.*)

SnapStart

发布函数版本时,将 ApplyOn 设置为 PublishedVersions 以创建初始化执行环境的快照。有关更多信息,请参阅 Improving startup performance with Lambda SnapStart(使用 Lambda SnapStart 提高启动性能)。

类型:SnapStartResponse 对象

State

函数的当前状态。当状态为 Inactive,您可以通过调用函数来重新激活该函数。

类型:字符串

有效值:Pending | Active | Inactive | Failed

StateReason

函数当前状态的原因。

类型:字符串

StateReasonCode

函数当前状态的原因代码。当代码为 Creating 时,无法调用或修改该函数。

类型:字符串

有效值:Idle | Creating | Restoring | EniLimitExceeded | InsufficientRolePermissions | InvalidConfiguration | InternalError | SubnetOutOfIPAddresses | InvalidSubnet | InvalidSecurityGroup | ImageDeleted | ImageAccessDenied | InvalidImage | KMSKeyAccessDenied | KMSKeyNotFound | InvalidStateKMSKey | DisabledKMSKey | EFSIOError | EFSMountConnectivityError | EFSMountFailure | EFSMountTimeout | InvalidRuntime | InvalidZipFileException | FunctionError

Timeout

Lambda 在停止函数前允许其运行的时长(以秒为单位)。

类型:整数

有效范围:最小值为 1。

TracingConfig

函数的 Amazon X-Ray 跟踪配置。

类型:TracingConfigResponse 对象

Version

Lambda 函数的版本。

类型:字符串

长度限制:最小长度为 1。长度上限为 1024。

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

VpcConfig

函数的网络配置。

类型:VpcConfigResponse 对象

错误

有关所有操作返回的常见错误的信息,请参阅 常见错误

CodeSigningConfigNotFoundException

指定的代码签名配置不存在。

HTTP 状态代码:404

CodeVerificationFailedException

代码签名失败,一个或多个签名验证检查不匹配或过期,并且代码签名策略设置为“ENFORCE”。Lambda 阻止部署。

HTTP 状态代码:400

InvalidCodeSignatureException

代码签名未通过完整性检查。如果完整性检查失败,Lambda 会阻止部署,即使代码签名策略设置为 WARN 也是如此。

HTTP 状态代码:400

InvalidParameterValueException

请求中的参数之一无效。

HTTP 状态代码:400

PreconditionFailedException

提供的 RevisionId 与 Lambda 函数或别名的最新 RevisionId 不匹配。调用 GetFunctionGetAlias API 操作来检索您的资源的最新 RevisionId。

HTTP 状态代码:412

ResourceConflictException

资源已存在,或者其他操作正在进行中。

HTTP 状态代码:409

ResourceNotFoundException

请求中指定的资源不存在。

HTTP 状态代码:404

ServiceException

Amazon Lambda 服务遇到了内部错误。

HTTP 状态代码:500

TooManyRequestsException

超出了请求吞吐量限制。有关更多信息,请参阅 Lambda 限额

HTTP 状态代码:429

另请参阅

有关在特定语言的 Amazon SDK 中使用此 API 的更多信息,请参阅以下内容: