PublishVersion - AWS Lambda

PublishVersion

从一个函数的当前代码和配置创建一个版本。使用版本创建不会更改的函数代码和配置的快照。

如果该函数的配置和代码自上一个版本以来没有更改,则 AWS Lambda 不会发布版本。使用 UpdateFunctionCodeUpdateFunctionConfiguration 在发布版本之前更新函数。

客户端可以直接调用版本或使用别名调用版本。要创建别名,请使用 CreateAlias

请求语法

POST /2015-03-31/functions/FunctionName/versions HTTP/1.1 Content-type: application/json { "CodeSha256": "string", "Description": "string", "RevisionId": "string" }

URI 请求参数

请求使用以下 URI 参数。

FunctionName

Lambda 函数的名称。

名称格式
  • 函数名称 - MyFunction

  • 函数 ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction

  • 部分 ARN - 123456789012:function:MyFunction

长度约束仅适用于完整 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 格式的以下数据。

CodeSha256

仅当哈希值与指定的值匹配时才发布版本。如果自上次更新后函数代码发生更改,请使用此选项以避免发布版本。您可以从 UpdateFunctionCode 的输出获得您上载的版本的哈希值。

类型:字符串

必需:否

Description

用于覆盖函数配置中的描述的版本描述。

类型:字符串

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

必需:否

RevisionId

仅当修订版 ID 与指定的 ID 匹配时才更新函数。如果自上次更新后函数配置发生了更改,请使用此选项以避免发布版本。

类型:字符串

必需:否

响应语法

HTTP/1.1 201 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 201 响应。

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

Architectures

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

类型:字符串数组

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

有效值:x86_64 | arm64

CodeSha256

函数部署包的 SHA256 哈希。

类型:字符串

CodeSize

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

类型:长整型

DeadLetterConfig

函数的死信队列。

类型:DeadLetterConfig 对象

Description

函数说明。

类型:字符串

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

Environment

函数环境变量。在 AWS 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

用于加密函数的环境变量的 AWS 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

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

类型:TracingConfigResponse 对象

Version

Lambda 函数的版本。

类型:字符串

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

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

VpcConfig

函数的网络配置。

类型:VpcConfigResponse 对象

错误

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

CodeStorageExceededException

您的 AWS 账户 已超出最大总代码大小。有关更多信息,请参阅 Lambda 限额

HTTP 状态代码:400

InvalidParameterValueException

请求中的参数之一无效。

HTTP 状态代码:400

PreconditionFailedException

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

HTTP 状态代码:412

ResourceConflictException

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

HTTP 状态代码:409

ResourceNotFoundException

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

HTTP 状态代码:404

ServiceException

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

HTTP 状态代码:500

TooManyRequestsException

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

HTTP 状态代码:429

另请参阅

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