PublishLayerVersion
Creates an AWS Lambda layer from a ZIP archive. Each time you call PublishLayerVersion with the same layer name, a new version is created.
Add layers to your function with CreateFunction or UpdateFunctionConfiguration.
Request Syntax
POST /2018-10-31/layers/LayerName/versions HTTP/1.1 Content-type: application/json { "CompatibleArchitectures": [ "string" ], "CompatibleRuntimes": [ "string" ], "Content": { "S3Bucket": "string", "S3Key": "string", "S3ObjectVersion": "string", "ZipFile": blob }, "Description": "string", "LicenseInfo": "string" }URI Request Parameters
The request uses the following URI parameters.
- LayerName
-  The name or Amazon Resource Name (ARN) of the layer. Length Constraints: Minimum length of 1. Maximum length of 140. Pattern: (arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+)|[a-zA-Z0-9-_]+Required: Yes 
Request Body
The request accepts the following data in JSON format.
- CompatibleArchitectures
-  A list of compatible instruction set architectures. Type: Array of strings Array Members: Minimum number of 0 items. Maximum number of 2 items. Valid Values: x86_64 | arm64Required: No 
- CompatibleRuntimes
-  A list of compatible function runtimes. Used for filtering with ListLayers and ListLayerVersions. The following list includes deprecated runtimes. For more information, see Runtime deprecation policy. Type: Array of strings Array Members: Minimum number of 0 items. Maximum number of 15 items. Valid Values: 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 | dotnet8 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | ruby3.3 | ruby3.4 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21 | python3.13 | nodejs22.xRequired: No 
- Content
-  The function layer archive. Type: LayerVersionContentInput object Required: Yes 
- Description
-  The description of the version. Type: String Length Constraints: Minimum length of 0. Maximum length of 256. Required: No 
- LicenseInfo
-  The layer's software license. It can be any of the following: -  An SPDX license identifier . For example, MIT.
-  The URL of a license hosted on the internet. For example, https://opensource.org/licenses/MIT.
-  The full text of the license. 
 Type: String Length Constraints: Minimum length of 0. Maximum length of 512. Required: No 
-  
Response Syntax
HTTP/1.1 201 Content-type: application/json { "CompatibleArchitectures": [ "string" ], "CompatibleRuntimes": [ "string" ], "Content": { "CodeSha256": "string", "CodeSize": number, "Location": "string", "SigningJobArn": "string", "SigningProfileVersionArn": "string" }, "CreatedDate": "string", "Description": "string", "LayerArn": "string", "LayerVersionArn": "string", "LicenseInfo": "string", "Version": number }Response Elements
If the action is successful, the service sends back an HTTP 201 response.
The following data is returned in JSON format by the service.
- CompatibleArchitectures
-  A list of compatible instruction set architectures. Type: Array of strings Array Members: Minimum number of 0 items. Maximum number of 2 items. Valid Values: x86_64 | arm64
- CompatibleRuntimes
-  The layer's compatible runtimes. The following list includes deprecated runtimes. For more information, see Runtime use after deprecation. For a list of all currently supported runtimes, see Supported runtimes. Type: Array of strings Array Members: Minimum number of 0 items. Maximum number of 15 items. Valid Values: 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 | dotnet8 | nodejs4.3-edge | go1.x | ruby2.5 | ruby2.7 | provided | provided.al2 | nodejs18.x | python3.10 | java17 | ruby3.2 | ruby3.3 | ruby3.4 | python3.11 | nodejs20.x | provided.al2023 | python3.12 | java21 | python3.13 | nodejs22.x
- Content
-  Details about the layer version. Type: LayerVersionContentOutput object 
- CreatedDate
-  The date that the layer version was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD). Type: String 
- Description
-  The description of the version. Type: String Length Constraints: Minimum length of 0. Maximum length of 256. 
- LayerArn
-  The ARN of the layer. Type: String Length Constraints: Minimum length of 1. Maximum length of 140. Pattern: arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+
- LayerVersionArn
-  The ARN of the layer version. Type: String Length Constraints: Minimum length of 1. Maximum length of 140. Pattern: arn:[a-zA-Z0-9-]+:lambda:[a-zA-Z0-9-]+:\d{12}:layer:[a-zA-Z0-9-_]+:[0-9]+
- LicenseInfo
-  The layer's software license. Type: String Length Constraints: Minimum length of 0. Maximum length of 512. 
- Version
-  The version number. Type: Long 
Errors
For information about the errors that are common to all actions, see Common Errors.
- CodeStorageExceededException
-  Your AWS account has exceeded its maximum total code size. For more information, see Lambda quotas. - Type
-  The exception type. 
 HTTP Status Code: 400 
- InvalidParameterValueException
-  One of the parameters in the request is not valid. - message
-  The exception message. 
- Type
-  The exception type. 
 HTTP Status Code: 400 
- ResourceNotFoundException
-  The resource specified in the request does not exist. HTTP Status Code: 404 
- ServiceException
-  The AWS Lambda service encountered an internal error. HTTP Status Code: 500 
- TooManyRequestsException
-  The request throughput limit was exceeded. For more information, see Lambda quotas. - retryAfterSeconds
-  The number of seconds the caller should wait before retrying. 
 HTTP Status Code: 429 
See Also
For more information about using this API in one of the language-specific AWS SDKs, see the following: