---
title: "PUT /2015-03-31/functions/{FunctionName}/configuration"
method: PUT
path: "/2015-03-31/functions/{FunctionName}/configuration"
---

# PUT /2015-03-31/functions/{FunctionName}/configuration

`PUT /2015-03-31/functions/{FunctionName}/configuration`

Modify the version-specific settings of a Lambda function.

When you update a function, Lambda provisions an instance of the function and its supporting resources. If your function connects to a VPC, this process can take a minute. During this time, you can't modify the function, but you can still invoke it. The `LastUpdateStatus`, `LastUpdateStatusReason`, and `LastUpdateStatusReasonCode` fields in the response from GetFunctionConfiguration indicate when the update is complete and the function is processing events with the new configuration. For more information, see [Lambda function states](https://docs.aws.amazon.com/lambda/latest/dg/functions-states.html).

These settings can vary between versions of a function and are locked when you publish a version. You can't modify the configuration of a published version, only the unpublished version.

To configure function concurrency, use PutFunctionConcurrency. To grant invoke permissions to an Amazon Web Services account or Amazon Web Service, use AddPermission.

## Path parameters

- `FunctionName` string, required

## Request body

- object
  - `Role` string — The Amazon Resource Name (ARN) of the function's execution role.
  - `Handler` string — The name of the method within your code that Lambda calls to run your function. Handler is required if the deployment package is a .zip file archive. The format includes the file name. It can also include namespaces and other qualifiers, depending on the runtime. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/foundation-progmodel.html">Lambda programming model</a>.
  - `Description` string — A description of the function.
  - `Timeout` integer — The amount of time (in seconds) that Lambda allows a function to run before stopping it. The default is 3 seconds. The maximum allowed value is 900 seconds. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/runtimes-context.html">Lambda execution environment</a>.
  - `MemorySize` integer — The amount of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-memory-console">memory available to the function</a> at runtime. Increasing the function memory also increases its CPU allocation. The default value is 128 MB. The value can be any multiple of 1 MB.
  - `VpcConfig` object — The VPC security groups and subnets that are attached to a Lambda function. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-vpc.html">Configuring a Lambda function to access resources in a VPC</a>.
    - `SubnetIds` SubnetId[] — A list of VPC subnet IDs.
    - `SecurityGroupIds` SecurityGroupId[] — A list of VPC security group IDs.
  - `Environment` object — A function's environment variable settings. You can use environment variables to adjust your function's behavior without updating code. An environment variable is a pair of strings that are stored in a function's version-specific configuration.
    - `Variables` object — Environment variable key-value pairs. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">Using Lambda environment variables</a>.
  - `Runtime` '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' — <p>The identifier of the function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime</a>. Runtime is required if the deployment package is a .zip file archive.</p> <p>The following list includes deprecated runtimes. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy">Runtime deprecation policy</a>.</p>
  - `DeadLetterConfig` object — The <a href="https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#dlq">dead-letter queue</a> for failed asynchronous invocations.
    - `TargetArn` string — The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.
  - `KMSKeyArn` string — The ARN of the Key Management Service (KMS) customer managed key that's used to encrypt your function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption">environment variables</a>. When <a href="https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html">Lambda SnapStart</a> is activated, this key is also used to encrypt your function's snapshot. If you don't provide a customer managed key, Lambda uses a default service key.
  - `TracingConfig` object — The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/services-xray.html">X-Ray</a> tracing configuration. To sample and record incoming requests, set <code>Mode</code> to <code>Active</code>.
    - `Mode` 'Active' | 'PassThrough' — The tracing mode.
  - `RevisionId` string — Update the function only if the revision ID matches the ID that's specified. Use this option to avoid modifying a function that has changed since you last read it.
  - `Layers` LayerVersionArn[] — A list of <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">function layers</a> to add to the function's execution environment. Specify each layer by its ARN, including the version.
  - `FileSystemConfigs` FileSystemConfig[] — Connection settings for an Amazon EFS file system.
    - `Arn` string, required — The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system.
    - `LocalMountPath` string, required — The path where the function can access the file system, starting with <code>/mnt/</code>.
  - `ImageConfig` object — Configuration values that override the container image Dockerfile settings. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/images-create.html#images-parms">Container image settings</a>.
    - `EntryPoint` String[] — Specifies the entry point to their application, which is typically the location of the runtime executable.
    - `Command` String[] — Specifies parameters that you want to pass in with ENTRYPOINT.
    - `WorkingDirectory` string — Specifies the working directory.
  - `EphemeralStorage` object — The size of the function's <code>/tmp</code> directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
    - `Size` integer — The size of the function's <code>/tmp</code> directory.
  - `SnapStart` object — <p>The function's Lambda SnapStart setting. Set <code>ApplyOn</code> to <code>PublishedVersions</code> to create a snapshot of the initialized execution environment when you publish a function version.</p> <p>SnapStart is supported with the <code>java11</code> runtime. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html">Improving startup performance with Lambda SnapStart</a>.</p>
    - `ApplyOn` 'PublishedVersions' | 'None' — Set to <code>PublishedVersions</code> to create a snapshot of the initialized execution environment when you publish a function version.

## Response `200`

Success

- FunctionConfiguration — Details about a function's configuration.
  - `FunctionName` string — The name of the function.
  - `FunctionArn` string — The function's Amazon Resource Name (ARN).
  - `Runtime` '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' — <p>The identifier of the function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html">runtime</a>. Runtime is required if the deployment package is a .zip file archive.</p> <p>The following list includes deprecated runtimes. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html#runtime-support-policy">Runtime deprecation policy</a>.</p>
  - `Role` string — The function's execution role.
  - `Handler` string — The function that Lambda calls to begin running your function.
  - `CodeSize` integer — The size of the function's deployment package, in bytes.
  - `Description` string — The function's description.
  - `Timeout` integer — The amount of time in seconds that Lambda allows a function to run before stopping it.
  - `MemorySize` integer — The amount of memory available to the function at runtime.
  - `LastModified` string — The date and time that the function was last updated, in <a href="https://www.w3.org/TR/NOTE-datetime">ISO-8601 format</a> (YYYY-MM-DDThh:mm:ss.sTZD).
  - `CodeSha256` string — The SHA256 hash of the function's deployment package.
  - `Version` string — The version of the Lambda function.
  - `VpcConfig` object — The function's networking configuration.
    - `SubnetIds` SubnetId[] — A list of VPC subnet IDs.
    - `SecurityGroupIds` SecurityGroupId[] — A list of VPC security group IDs.
    - `VpcId` string — The ID of the VPC.
  - `DeadLetterConfig` object — The function's dead letter queue.
    - `TargetArn` string — The Amazon Resource Name (ARN) of an Amazon SQS queue or Amazon SNS topic.
  - `Environment` object — The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html">environment variables</a>. Omitted from CloudTrail logs.
    - `Variables` object — Environment variable key-value pairs. Omitted from CloudTrail logs.
    - `Error` object — Error messages for environment variables that couldn't be applied.
      - `ErrorCode` string — The error code.
      - `Message` string, password — The error message.
  - `KMSKeyArn` string — The KMS key that's used to encrypt the function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-envvars.html#configuration-envvars-encryption">environment variables</a>. When <a href="https://docs.aws.amazon.com/lambda/latest/dg/snapstart-security.html">Lambda SnapStart</a> is activated, this key is also used to encrypt the function's snapshot. This key is returned only if you've configured a customer managed key.
  - `TracingConfig` object — The function's X-Ray tracing configuration.
    - `Mode` 'Active' | 'PassThrough' — The tracing mode.
  - `MasterArn` string — For Lambda@Edge functions, the ARN of the main function.
  - `RevisionId` string — The latest updated revision of the function or alias.
  - `Layers` Layer[] — The function's <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-layers.html">layers</a>.
    - `Arn` string — The Amazon Resource Name (ARN) of the function layer.
    - `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.
  - `State` 'Pending' | 'Active' | 'Inactive' | 'Failed' — The current state of the function. When the state is <code>Inactive</code>, you can reactivate the function by invoking it.
  - `StateReason` string — The reason for the function's current state.
  - `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' — The reason code for the function's current state. When the code is <code>Creating</code>, you can't invoke or modify the function.
  - `LastUpdateStatus` 'Successful' | 'Failed' | 'InProgress' — The status of the last update that was performed on the function. This is first set to <code>Successful</code> after function creation completes.
  - `LastUpdateStatusReason` string — The reason for the last update that was performed on the function.
  - `LastUpdateStatusReasonCode` 'EniLimitExceeded' | 'InsufficientRolePermissions' | 'InvalidConfiguration' | 'InternalError' | 'SubnetOutOfIPAddresses' | 'InvalidSubnet' | 'InvalidSecurityGroup' | 'ImageDeleted' | 'ImageAccessDenied' | 'InvalidImage' | 'KMSKeyAccessDenied' | 'KMSKeyNotFound' | 'InvalidStateKMSKey' | 'DisabledKMSKey' | 'EFSIOError' | 'EFSMountConnectivityError' | 'EFSMountFailure' | 'EFSMountTimeout' | 'InvalidRuntime' | 'InvalidZipFileException' | 'FunctionError' — The reason code for the last update that was performed on the function.
  - `FileSystemConfigs` FileSystemConfig[] — Connection settings for an <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-filesystem.html">Amazon EFS file system</a>.
    - `Arn` string, required — The Amazon Resource Name (ARN) of the Amazon EFS access point that provides access to the file system.
    - `LocalMountPath` string, required — The path where the function can access the file system, starting with <code>/mnt/</code>.
  - `PackageType` 'Zip' | 'Image' — The type of deployment package. Set to <code>Image</code> for container image and set <code>Zip</code> for .zip file archive.
  - `ImageConfigResponse` object — The function's image configuration values.
    - `ImageConfig` object — Configuration values that override the container image Dockerfile.
      - `EntryPoint` String[] — Specifies the entry point to their application, which is typically the location of the runtime executable.
      - `Command` String[] — Specifies parameters that you want to pass in with ENTRYPOINT.
      - `WorkingDirectory` string — Specifies the working directory.
    - `Error` object — Error response to <code>GetFunctionConfiguration</code>.
      - `ErrorCode` string — Error code.
      - `Message` string, password — Error message.
  - `SigningProfileVersionArn` string — The ARN of the signing profile version.
  - `SigningJobArn` string — The ARN of the signing job.
  - `Architectures` Architecture[] — The instruction set architecture that the function supports. Architecture is a string array with one of the valid values. The default architecture value is <code>x86_64</code>.
  - `EphemeralStorage` object — The size of the function’s <code>/tmp</code> directory in MB. The default value is 512, but it can be any whole number between 512 and 10,240 MB.
    - `Size` integer, required — The size of the function's <code>/tmp</code> directory.
  - `SnapStart` object — Set <code>ApplyOn</code> to <code>PublishedVersions</code> to create a snapshot of the initialized execution environment when you publish a function version. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/snapstart.html">Improving startup performance with Lambda SnapStart</a>.
    - `ApplyOn` 'PublishedVersions' | 'None' — When set to <code>PublishedVersions</code>, Lambda creates a snapshot of the execution environment when you publish a function version.
    - `OptimizationStatus` 'On' | 'Off' — When you provide a <a href="https://docs.aws.amazon.com/lambda/latest/dg/configuration-versions.html#versioning-versions-using">qualified Amazon Resource Name (ARN)</a>, this response element indicates whether SnapStart is activated for the specified function version.
  - `RuntimeVersionConfig` object — The ARN of the runtime and any errors that occured.
    - `RuntimeVersionArn` string — The ARN of the runtime version you want the function to use.
    - `Error` object — Error response when Lambda is unable to retrieve the runtime version for a function.
      - `ErrorCode` string — The error code.
      - `Message` string, password — The error message.

## Other responses

- `480` — ServiceException
- `481` — ResourceNotFoundException
- `482` — InvalidParameterValueException
- `483` — TooManyRequestsException
- `484` — ResourceConflictException
- `485` — PreconditionFailedException
- `486` — CodeVerificationFailedException
- `487` — InvalidCodeSignatureException
- `488` — CodeSigningConfigNotFoundException

---

[API](https://skmtc.net/aws/apis/lambda.md) · [All operations](https://skmtc.net/aws/apis/lambda/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/aws/lambda/versions/2d9fde023ce9/schema)
