Skip to content

Creates a version from the current code and configuration of a function

Description

Creates a version from the current code and configuration of a function. Use versions to create a snapshot of your function code and configuration that doesn't change.

Lambda doesn't publish a version if the function's configuration and code haven't changed since the last version. Use update_function_code or update_function_configuration to update the function before publishing a version.

Clients can invoke versions directly or with an alias. To create an alias, use create_alias.

Usage

lambda_publish_version(FunctionName, CodeSha256, Description,
  RevisionId, PublishTo)

Arguments

  • FunctionName

    [required] The name or ARN of the Lambda function.

    Name formats

    • Function name - MyFunction.
    • Function ARN - arn:aws:lambda:us-west-2:123456789012:function:MyFunction.
    • Partial ARN - 123456789012:function:MyFunction.

    The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.

  • CodeSha256

    Only publish a version if the hash value matches the value that's specified. Use this option to avoid publishing a version if the function code has changed since you last updated it. You can get the hash for the version that you uploaded from the output of update_function_code.

  • Description

    A description for the version to override the description in the function configuration.

  • RevisionId

    Only update the function if the revision ID matches the ID that's specified. Use this option to avoid publishing a version if the function configuration has changed since you last updated it.

  • PublishTo

    Specifies where to publish the function version or configuration.

Value

A list with the following syntax:

list(
  FunctionName = "string",
  FunctionArn = "string",
  Runtime = "nodejs"|"nodejs4.3"|"nodejs6.10"|"nodejs8.10"|"nodejs10.x"|"nodejs12.x"|"nodejs14.x"|"nodejs16.x"|"nodejs18.x"|"nodejs20.x"|"nodejs22.x"|"nodejs24.x"|"java8"|"java8.al2"|"java11"|"java17"|"java21"|"java25"|"python2.7"|"python3.6"|"python3.7"|"python3.8"|"python3.9"|"python3.10"|"python3.11"|"python3.12"|"python3.13"|"python3.14"|"dotnetcore1.0"|"dotnetcore2.0"|"dotnetcore2.1"|"dotnetcore3.1"|"dotnet6"|"dotnet8"|"dotnet10"|"nodejs4.3-edge"|"go1.x"|"ruby2.5"|"ruby2.7"|"ruby3.2"|"ruby3.3"|"ruby3.4"|"ruby4.0"|"provided"|"provided.al2"|"provided.al2023"|"nodejs26.x"|"python3.15"|"java8.al2023"|"java11.al2023"|"java17.al2023",
  Role = "string",
  Handler = "string",
  CodeSize = 123,
  Description = "string",
  Timeout = 123,
  MemorySize = 123,
  LastModified = "string",
  CodeSha256 = "string",
  Version = "string",
  VpcConfig = list(
    SubnetIds = list(
      "string"
    ),
    SecurityGroupIds = list(
      "string"
    ),
    VpcId = "string",
    Ipv6AllowedForDualStack = TRUE|FALSE
  ),
  DeadLetterConfig = list(
    TargetArn = "string"
  ),
  Environment = list(
    Variables = list(
      "string"
    ),
    Error = list(
      ErrorCode = "string",
      Message = "string"
    )
  ),
  KMSKeyArn = "string",
  TracingConfig = list(
    Mode = "Active"|"PassThrough"
  ),
  MasterArn = "string",
  RevisionId = "string",
  Layers = list(
    list(
      Arn = "string",
      CodeSize = 123,
      SigningProfileVersionArn = "string",
      SigningJobArn = "string"
    )
  ),
  State = "Pending"|"Active"|"Inactive"|"Failed"|"Deactivating"|"Deactivated"|"ActiveNonInvocable"|"Deleting",
  StateReason = "string",
  StateReasonCode = "Idle"|"Creating"|"Restoring"|"EniLimitExceeded"|"InsufficientRolePermissions"|"InvalidConfiguration"|"InternalError"|"SubnetOutOfIPAddresses"|"InvalidSubnet"|"InvalidSecurityGroup"|"ImageDeleted"|"ImageAccessDenied"|"InvalidImage"|"KMSKeyAccessDenied"|"KMSKeyNotFound"|"InvalidStateKMSKey"|"DisabledKMSKey"|"EFSIOError"|"EFSMountConnectivityError"|"EFSMountFailure"|"EFSMountTimeout"|"InvalidRuntime"|"InvalidZipFileException"|"FunctionError"|"ServiceQuotaExceededException"|"VcpuLimitExceeded"|"CapacityProviderScalingLimitExceeded"|"InsufficientCapacity"|"EC2RequestLimitExceeded"|"FunctionError.InitTimeout"|"FunctionError.RuntimeInitError"|"FunctionError.ExtensionInitError"|"FunctionError.InvalidEntryPoint"|"FunctionError.InvalidWorkingDirectory"|"FunctionError.PermissionDenied"|"FunctionError.TooManyExtensions"|"FunctionError.InitResourceExhausted"|"DisallowedByVpcEncryptionControl"|"DrainingDurableExecutions"|"DependencyError",
  LastUpdateStatus = "Successful"|"Failed"|"InProgress",
  LastUpdateStatusReason = "string",
  LastUpdateStatusReasonCode = "EniLimitExceeded"|"InsufficientRolePermissions"|"InvalidConfiguration"|"InternalError"|"SubnetOutOfIPAddresses"|"InvalidSubnet"|"InvalidSecurityGroup"|"ImageDeleted"|"ImageAccessDenied"|"InvalidImage"|"KMSKeyAccessDenied"|"KMSKeyNotFound"|"InvalidStateKMSKey"|"DisabledKMSKey"|"EFSIOError"|"EFSMountConnectivityError"|"EFSMountFailure"|"EFSMountTimeout"|"InvalidRuntime"|"InvalidZipFileException"|"FunctionError"|"ServiceQuotaExceededException"|"VcpuLimitExceeded"|"CapacityProviderScalingLimitExceeded"|"InsufficientCapacity"|"EC2RequestLimitExceeded"|"FunctionError.InitTimeout"|"FunctionError.RuntimeInitError"|"FunctionError.ExtensionInitError"|"FunctionError.InvalidEntryPoint"|"FunctionError.InvalidWorkingDirectory"|"FunctionError.PermissionDenied"|"FunctionError.TooManyExtensions"|"FunctionError.InitResourceExhausted"|"DisallowedByVpcEncryptionControl"|"DependencyError",
  FileSystemConfigs = list(
    list(
      Arn = "string",
      LocalMountPath = "string",
      S3FilesConfig = list(
        DirectS3Read = "ENABLED"|"DISABLED"|"AUTO"
      )
    )
  ),
  SigningProfileVersionArn = "string",
  SigningJobArn = "string",
  PackageType = "Zip"|"Image",
  ImageConfigResponse = list(
    ImageConfig = list(
      EntryPoint = list(
        "string"
      ),
      Command = list(
        "string"
      ),
      WorkingDirectory = "string"
    ),
    Error = list(
      ErrorCode = "string",
      Message = "string"
    )
  ),
  Architectures = list(
    "x86_64"|"arm64"
  ),
  EphemeralStorage = list(
    Size = 123
  ),
  SnapStart = list(
    ApplyOn = "PublishedVersions"|"None",
    OptimizationStatus = "On"|"Off"
  ),
  RuntimeVersionConfig = list(
    RuntimeVersionArn = "string",
    Error = list(
      ErrorCode = "string",
      Message = "string"
    )
  ),
  LoggingConfig = list(
    LogFormat = "JSON"|"Text",
    ApplicationLogLevel = "TRACE"|"DEBUG"|"INFO"|"WARN"|"ERROR"|"FATAL",
    SystemLogLevel = "DEBUG"|"INFO"|"WARN",
    LogGroup = "string"
  ),
  TenancyConfig = list(
    TenantIsolationMode = "PER_TENANT"
  ),
  CapacityProviderConfig = list(
    LambdaManagedInstancesCapacityProviderConfig = list(
      CapacityProviderArn = "string",
      PerExecutionEnvironmentMaxConcurrency = 123,
      ExecutionEnvironmentMemoryGiBPerVCpu = 123.0
    )
  ),
  ConfigSha256 = "string",
  DurableConfig = list(
    KMSKeyArn = "string",
    RetentionPeriodInDays = 123,
    ExecutionTimeout = 123
  )
)

Request syntax

svc$publish_version(
  FunctionName = "string",
  CodeSha256 = "string",
  Description = "string",
  RevisionId = "string",
  PublishTo = "LATEST_PUBLISHED"
)

Examples

# This operation publishes a version of a Lambda function
svc$publish_version(
  CodeSha256 = "",
  Description = "",
  FunctionName = "myFunction"
)