updateFunctionConfiguration method
- required String functionName,
- DeadLetterConfig? deadLetterConfig,
- String? description,
- Environment? environment,
- List<
FileSystemConfig> ? fileSystemConfigs, - String? handler,
- ImageConfig? imageConfig,
- String? kMSKeyArn,
- List<
String> ? layers, - int? memorySize,
- String? revisionId,
- String? role,
- Runtime? runtime,
- int? timeout,
- TracingConfig? tracingConfig,
- VpcConfig? vpcConfig,
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 Function
States.
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 account or AWS service, use AddPermission.
May throw ServiceException. May throw ResourceNotFoundException. May throw InvalidParameterValueException. May throw TooManyRequestsException. May throw ResourceConflictException. May throw PreconditionFailedException. May throw CodeVerificationFailedException. May throw InvalidCodeSignatureException. May throw CodeSigningConfigNotFoundException.
Parameter functionName
:
The name of the Lambda function.
Name formats
-
Function name -
my-function
. -
Function ARN -
arn:aws:lambda:us-west-2:123456789012:function:my-function
. -
Partial ARN -
123456789012:function:my-function
.
Parameter deadLetterConfig
:
A dead letter queue configuration that specifies the queue or topic where
Lambda sends asynchronous events when they fail processing. For more
information, see Dead
Letter Queues.
Parameter description
:
A description of the function.
Parameter environment
:
Environment variables that are accessible from function code during
execution.
Parameter fileSystemConfigs
:
Connection settings for an Amazon EFS file system.
Parameter handler
:
The name of the method within your code that Lambda calls to execute your
function. The format includes the file name. It can also include
namespaces and other qualifiers, depending on the runtime. For more
information, see Programming
Model.
Parameter imageConfig
:
Configuration values that override the container image Dockerfile.
Parameter kMSKeyArn
:
The ARN of the AWS Key Management Service (AWS KMS) key that's used to
encrypt your function's environment variables. If it's not provided, AWS
Lambda uses a default service key.
Parameter layers
:
A list of function
layers to add to the function's execution environment. Specify each
layer by its ARN, including the version.
Parameter memorySize
:
The amount of memory available to the function at runtime. Increasing the
function's memory also increases its CPU allocation. The default value is
128 MB. The value can be any multiple of 1 MB.
Parameter revisionId
:
Only update the function 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.
Parameter role
:
The Amazon Resource Name (ARN) of the function's execution role.
Parameter runtime
:
The identifier of the function's runtime.
Parameter timeout
:
The amount of time that Lambda allows a function to run before stopping
it. The default is 3 seconds. The maximum allowed value is 900 seconds.
Parameter tracingConfig
:
Set Mode
to Active
to sample and trace a subset
of incoming requests with AWS X-Ray.
Parameter vpcConfig
:
For network connectivity to AWS resources in a VPC, specify a list of
security groups and subnets in the VPC. When you connect a function to a
VPC, it can only access resources and the internet through that VPC. For
more information, see VPC
Settings.
Implementation
Future<FunctionConfiguration> updateFunctionConfiguration({
required String functionName,
DeadLetterConfig? deadLetterConfig,
String? description,
Environment? environment,
List<FileSystemConfig>? fileSystemConfigs,
String? handler,
ImageConfig? imageConfig,
String? kMSKeyArn,
List<String>? layers,
int? memorySize,
String? revisionId,
String? role,
Runtime? runtime,
int? timeout,
TracingConfig? tracingConfig,
VpcConfig? vpcConfig,
}) async {
ArgumentError.checkNotNull(functionName, 'functionName');
_s.validateStringLength(
'functionName',
functionName,
1,
140,
isRequired: true,
);
_s.validateStringLength(
'description',
description,
0,
256,
);
_s.validateStringLength(
'handler',
handler,
0,
128,
);
_s.validateNumRange(
'memorySize',
memorySize,
128,
10240,
);
_s.validateNumRange(
'timeout',
timeout,
1,
1152921504606846976,
);
final $payload = <String, dynamic>{
if (deadLetterConfig != null) 'DeadLetterConfig': deadLetterConfig,
if (description != null) 'Description': description,
if (environment != null) 'Environment': environment,
if (fileSystemConfigs != null) 'FileSystemConfigs': fileSystemConfigs,
if (handler != null) 'Handler': handler,
if (imageConfig != null) 'ImageConfig': imageConfig,
if (kMSKeyArn != null) 'KMSKeyArn': kMSKeyArn,
if (layers != null) 'Layers': layers,
if (memorySize != null) 'MemorySize': memorySize,
if (revisionId != null) 'RevisionId': revisionId,
if (role != null) 'Role': role,
if (runtime != null) 'Runtime': runtime.toValue(),
if (timeout != null) 'Timeout': timeout,
if (tracingConfig != null) 'TracingConfig': tracingConfig,
if (vpcConfig != null) 'VpcConfig': vpcConfig,
};
final response = await _protocol.send(
payload: $payload,
method: 'PUT',
requestUri:
'/2015-03-31/functions/${Uri.encodeComponent(functionName)}/configuration',
exceptionFnMap: _exceptionFns,
);
return FunctionConfiguration.fromJson(response);
}