:doc:`Lambda <../../lambda>` / Client / publish_layer_version

*********************
publish_layer_version
*********************



.. py:method:: Lambda.Client.publish_layer_version(**kwargs)

  

  Creates an `Lambda layer <https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html>`__ 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 <https://docs.aws.amazon.com/goto/WebAPI/lambda-2015-03-31/PublishLayerVersion>`_  


  **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'|'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'|'nodejs24.x'|'python3.14'|'java25'|'dotnet10',
        ],
        LicenseInfo='string',
        CompatibleArchitectures=[
            'x86_64'|'arm64',
        ]
    )
    
  :type LayerName: string
  :param LayerName: **[REQUIRED]** 

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

    

  
  :type Description: string
  :param Description: 

    The description of the version.

    

  
  :type Content: dict
  :param Content: **[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.

      

    
  
  :type CompatibleRuntimes: list
  :param CompatibleRuntimes: 

    A list of compatible `function runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html>`__. Used for filtering with  ListLayers and  ListLayerVersions.

     

    The following list includes deprecated runtimes. For more information, see `Runtime deprecation policy <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy>`__.

    

  
    - *(string) --* 

    

  :type LicenseInfo: string
  :param LicenseInfo: 

    The layer's software license. It can be any of the following:

     

    
    * An `SPDX license identifier <https://spdx.org/licenses/>`__. 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 CompatibleArchitectures: list
  :param CompatibleArchitectures: 

    A list of compatible `instruction set architectures <https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html>`__.

    

  
    - *(string) --* 

    

  
  :rtype: 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'|'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'|'nodejs24.x'|'python3.14'|'java25'|'dotnet10',
          ],
          '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 <https://www.w3.org/TR/NOTE-datetime>`__ (YYYY-MM-DDThh:mm:ss.sTZD).

        
      

      - **Version** *(integer) --* 

        The version number.

        
      

      - **CompatibleRuntimes** *(list) --* 

        The layer's compatible runtimes.

         

        The following list includes deprecated runtimes. For more information, see `Runtime use after deprecation <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-deprecation-levels>`__.

         

        For a list of all currently supported runtimes, see `Supported runtimes <https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtimes-supported>`__.

        
        

        - *(string) --* 
    
      

      - **LicenseInfo** *(string) --* 

        The layer's software license.

        
      

      - **CompatibleArchitectures** *(list) --* 

        A list of compatible `instruction set architectures <https://docs.aws.amazon.com/lambda/latest/dg/foundation-arch.html>`__.

        
        

        - *(string) --* 
    
  
  **Exceptions**
  
  *   :py:class:`Lambda.Client.exceptions.InvalidParameterValueException`

  
  *   :py:class:`Lambda.Client.exceptions.ServiceException`

  
  *   :py:class:`Lambda.Client.exceptions.TooManyRequestsException`

  
  *   :py:class:`Lambda.Client.exceptions.ResourceNotFoundException`

  
  *   :py:class:`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': {
            '...': '...',
        },
    }

  