PublishVersion
从一个函数的当前代码和配置创建一个版本。使用版本创建不会更改的函数代码和配置的快照。
如果该函数的配置和代码自上一个版本以来没有更改,则 AWS Lambda 不会发布版本。使用 UpdateFunctionCode 或 UpdateFunctionConfiguration 在发布版本之前更新函数。
客户端可以直接调用版本或使用别名调用版本。要创建别名,请使用 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 不匹配。调用
GetFunction
或GetAlias
API 操作来检索您的资源的最新 RevisionId。HTTP 状态代码:412
- ResourceConflictException
-
资源已存在,或者其他操作正在进行中。
HTTP 状态代码:409
- ResourceNotFoundException
-
请求中指定的资源不存在。
HTTP 状态代码:404
- ServiceException
-
AWS Lambda 服务遇到了内部错误。
HTTP 状态代码:500
- TooManyRequestsException
-
超出了请求吞吐量限制。有关更多信息,请参阅 Lambda 限额。
HTTP 状态代码:429
另请参阅
有关在特定语言的 AWS SDK 中使用此 API 的更多信息,请参阅以下内容: