publish_layer_version

Lambda.Client.publish_layer_version(**kwargs)

Creates an 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.

See also: AWS API Documentation

Request Syntax

response = client.publish_layer_version(
    LayerName='string',
    Description='string',
    Content={
        'S3Bucket': 'string',
        'S3Key': 'string',
        'S3ObjectVersion': 'string',
        'ZipFile': b'bytes'
    },
    CompatibleRuntimes=[
        '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',
    ],
    LicenseInfo='string',
    CompatibleArchitectures=[
        'x86_64'|'arm64',
    ]
)
Parameters
  • LayerName (string) --

    [REQUIRED]

    The name or Amazon Resource Name (ARN) of the layer.

  • Description (string) -- The description of the version.
  • Content (dict) --

    [REQUIRED]

    The function layer archive.

    • S3Bucket (string) --

      The Amazon S3 bucket of the layer archive.

    • S3Key (string) --

      The Amazon S3 key of the layer archive.

    • S3ObjectVersion (string) --

      For versioned objects, the version of the layer archive object to use.

    • ZipFile (bytes) --

      The base64-encoded contents of the layer archive. Amazon Web Services SDK and Amazon Web Services CLI clients handle the encoding for you.

  • CompatibleRuntimes (list) --

    A list of compatible function runtimes. Used for filtering with ListLayers and ListLayerVersions.

    • (string) --
  • LicenseInfo (string) --

    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.
  • CompatibleArchitectures (list) --

    A list of compatible instruction set architectures.

    • (string) --
Return type

dict

Returns

Response Syntax

{
    'Content': {
        'Location': 'string',
        'CodeSha256': 'string',
        'CodeSize': 123,
        'SigningProfileVersionArn': 'string',
        'SigningJobArn': 'string'
    },
    'LayerArn': 'string',
    'LayerVersionArn': 'string',
    'Description': 'string',
    'CreatedDate': 'string',
    'Version': 123,
    'CompatibleRuntimes': [
        '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',
    ],
    'LicenseInfo': 'string',
    'CompatibleArchitectures': [
        'x86_64'|'arm64',
    ]
}

Response Structure

  • (dict) --

    • Content (dict) --

      Details about the layer version.

      • Location (string) --

        A link to the layer archive in Amazon S3 that is valid for 10 minutes.

      • CodeSha256 (string) --

        The SHA-256 hash of the layer archive.

      • CodeSize (integer) --

        The size of the layer archive in bytes.

      • SigningProfileVersionArn (string) --

        The Amazon Resource Name (ARN) for a signing profile version.

      • SigningJobArn (string) --

        The Amazon Resource Name (ARN) of a signing job.

    • LayerArn (string) --

      The ARN of the layer.

    • LayerVersionArn (string) --

      The ARN of the layer version.

    • Description (string) --

      The description of the version.

    • CreatedDate (string) --

      The date that the layer version was created, in ISO-8601 format (YYYY-MM-DDThh:mm:ss.sTZD).

    • Version (integer) --

      The version number.

    • CompatibleRuntimes (list) --

      The layer's compatible runtimes.

      • (string) --
    • LicenseInfo (string) --

      The layer's software license.

    • CompatibleArchitectures (list) --

      A list of compatible instruction set architectures.

      • (string) --

Exceptions

  • Lambda.Client.exceptions.ServiceException
  • Lambda.Client.exceptions.ResourceNotFoundException
  • Lambda.Client.exceptions.TooManyRequestsException
  • Lambda.Client.exceptions.InvalidParameterValueException
  • Lambda.Client.exceptions.CodeStorageExceededException

Examples

The following example creates a new Python library layer version. The command retrieves the layer content a file named layer.zip in the specified S3 bucket.

response = client.publish_layer_version(
    CompatibleRuntimes=[
        'python3.6',
        'python3.7',
    ],
    Content={
        'S3Bucket': 'lambda-layers-us-west-2-123456789012',
        'S3Key': 'layer.zip',
    },
    Description='My Python layer',
    LayerName='my-layer',
    LicenseInfo='MIT',
)

print(response)

Expected Output:

{
    'CompatibleRuntimes': [
        'python3.6',
        'python3.7',
    ],
    'Content': {
        'CodeSha256': 'tv9jJO+rPbXUUXuRKi7CwHzKtLDkDRJLB3cC3Z/ouXo=',
        'CodeSize': 169,
        'Location': 'https://awslambda-us-west-2-layers.s3.us-west-2.amazonaws.com/snapshots/123456789012/my-layer-4aaa2fbb-ff77-4b0a-ad92-5b78a716a96a?versionId=27iWyA73cCAYqyH...',
    },
    'CreatedDate': '2018-11-14T23:03:52.894+0000',
    'Description': 'My Python layer',
    'LayerArn': 'arn:aws:lambda:us-west-2:123456789012:layer:my-layer',
    'LayerVersionArn': 'arn:aws:lambda:us-west-2:123456789012:layer:my-layer:1',
    'LicenseInfo': 'MIT',
    'Version': 1,
    'ResponseMetadata': {
        '...': '...',
    },
}