publishVersion method

Future<FunctionConfiguration> publishVersion({
  1. required String functionName,
  2. String? codeSha256,
  3. String? description,
  4. String? revisionId,
})

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.

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

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

May throw ServiceException. May throw ResourceNotFoundException. May throw InvalidParameterValueException. May throw TooManyRequestsException. May throw CodeStorageExceededException. May throw PreconditionFailedException. May throw ResourceConflictException.

Parameter functionName : The name 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.

Parameter 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 UpdateFunctionCode.

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

Parameter 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.

Implementation

Future<FunctionConfiguration> publishVersion({
  required String functionName,
  String? codeSha256,
  String? description,
  String? revisionId,
}) async {
  ArgumentError.checkNotNull(functionName, 'functionName');
  _s.validateStringLength(
    'functionName',
    functionName,
    1,
    140,
    isRequired: true,
  );
  _s.validateStringLength(
    'description',
    description,
    0,
    256,
  );
  final $payload = <String, dynamic>{
    if (codeSha256 != null) 'CodeSha256': codeSha256,
    if (description != null) 'Description': description,
    if (revisionId != null) 'RevisionId': revisionId,
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri:
        '/2015-03-31/functions/${Uri.encodeComponent(functionName)}/versions',
    exceptionFnMap: _exceptionFns,
  );
  return FunctionConfiguration.fromJson(response);
}