Skip to content

create_web_function_revision

create_web_function_revision(
    function_name: FunctionName,
    build_config: BuildConfig,
    service_config: ServiceConfig,
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    description: Optional[Description] = None,
    kms_key_arn: Optional[KmsKeyArn] = None,
) -> CreateWebFunctionRevisionResponse

Creates an immutable revision for a web function. A revision represents a specific version of the function code and configuration.

To use this operation, you must have the CreateWebFunctionRevision permission on the web function, not on the revision being created.

Parameters:

  • function_name (FunctionName) –

    The web function.

    You can specify either of the following:

    • The function name, for example my-function.

    • The function ARN.

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

  • description (Optional[Description], default: None ) –

    A description of the revision.

  • kms_key_arn (Optional[KmsKeyArn], default: None ) –

    The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key used to encrypt the revision's code and environment variables.

  • build_config (BuildConfig) –

    The build configuration for the revision, including code location and runtime settings.

  • service_config (ServiceConfig) –

    The service configuration for the revision, including execution role, timeout, and concurrency settings.

Raises:

  • AccessDeniedException –

    You don't have permission to perform this operation. Check the IAM policies for your identity and any resource-based policy on the web function.

  • ConflictException –

    The request conflicts with the current state of the resource. For example, the resource is being modified by another request, you tried to delete a revision that is serving traffic on an endpoint, or the policy revision ID that you specified doesn't match the current policy. Resolve the conflict and try again.

  • InternalServerException –

    The request failed because of an internal error in the service. Retry the request. If the error persists, open a support case.

  • ResourceNotFoundException –

    The specified web function, revision, endpoint, or resource-based policy doesn't exist. Verify the resource identifier and try again.

  • ServiceQuotaExceededException –

    The request would exceed a service quota, such as the maximum number of web functions in your account or the maximum number of revisions or endpoints per web function. Request a quota increase or reduce usage and try again.

  • ThrottlingException –

    The request was denied because it exceeded the request rate that Lambda allows for your account. Reduce the frequency of requests and retry with exponential backoff.

  • ValidationException –

    The request failed validation because a parameter was missing, malformed, or outside the allowed range. Check the request parameters and try again.

  • UnknownServiceError –

    The service returned an error code this client does not model.

Source code in docs_src/capo_lambda_web/_services/lambda_web.py
def create_web_function_revision(
    self,
    function_name: "capo_lambda_web.types.function_name.FunctionName",
    build_config: "capo_lambda_web.types.build_config.BuildConfig",
    service_config: "capo_lambda_web.types.service_config.ServiceConfig",
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    description: Optional["capo_lambda_web.types.description.Description"] = None,
    kms_key_arn: Optional["capo_lambda_web.types.kms_key_arn.KmsKeyArn"] = None,
) -> "capo_lambda_web.types.create_web_function_revision_response.CreateWebFunctionRevisionResponse":
    """<p>Creates an immutable revision for a web function. A revision represents a specific version of the function code and configuration.</p> <p>To use this operation, you must have the <code>CreateWebFunctionRevision</code> permission on the web function, not on the revision being created.</p>

    Args:
        function_name: <p>The web function.</p> <p>You can specify either of the following:</p> <ul> <li> <p>The function name, for example <code>my-function</code>.</p> </li> <li> <p>The function ARN.</p> </li> </ul> <p>The length constraint applies only to the full ARN. If you specify only the function name, it is limited to 64 characters in length.</p>
        description: <p>A description of the revision.</p>
        kms_key_arn: <p>The Amazon Resource Name (ARN) of the AWS Key Management Service (AWS KMS) key used to encrypt the revision's code and environment variables.</p>
        build_config: <p>The build configuration for the revision, including code location and runtime settings.</p>
        service_config: <p>The service configuration for the revision, including execution role, timeout, and concurrency settings.</p>

    Raises:
        capo_lambda_web.errors.access_denied_exception.AccessDeniedException: <p>You don't have permission to perform this operation. Check the IAM policies for your identity and any resource-based policy on the web function.</p>
        capo_lambda_web.errors.conflict_exception.ConflictException: <p>The request conflicts with the current state of the resource. For example, the resource is being modified by another request, you tried to delete a revision that is serving traffic on an endpoint, or the policy revision ID that you specified doesn't match the current policy. Resolve the conflict and try again.</p>
        capo_lambda_web.errors.internal_server_exception.InternalServerException: <p>The request failed because of an internal error in the service. Retry the request. If the error persists, open a support case.</p>
        capo_lambda_web.errors.resource_not_found_exception.ResourceNotFoundException: <p>The specified web function, revision, endpoint, or resource-based policy doesn't exist. Verify the resource identifier and try again.</p>
        capo_lambda_web.errors.service_quota_exceeded_exception.ServiceQuotaExceededException: <p>The request would exceed a service quota, such as the maximum number of web functions in your account or the maximum number of revisions or endpoints per web function. Request a quota increase or reduce usage and try again.</p>
        capo_lambda_web.errors.throttling_exception.ThrottlingException: <p>The request was denied because it exceeded the request rate that Lambda allows for your account. Reduce the frequency of requests and retry with exponential backoff.</p>
        capo_lambda_web.errors.validation_exception.ValidationException: <p>The request failed validation because a parameter was missing, malformed, or outside the allowed range. Check the request parameters and try again.</p>
        capo_lambda_web.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_lambda_web.types.create_web_function_revision_request.CreateWebFunctionRevisionRequest]",
    ) -> OperationResponse[
        "capo_lambda_web.types.create_web_function_revision_response.CreateWebFunctionRevisionResponse"
    ]:
        import capo_lambda_web._operations.lambda_web.create_web_function_revision

        output, http_response = (
            capo_lambda_web._operations.lambda_web.create_web_function_revision.create_web_function_revision(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_input(
        input_: "capo_lambda_web.types.create_web_function_revision_request.CreateWebFunctionRevisionRequest",
    ) -> dict[str, Any]:
        import capo_lambda_web.types.create_web_function_revision_request

        return capo_lambda_web.types.create_web_function_revision_request.redact_sensitive(
            input_
        )

    def _redact_output(
        output: "capo_lambda_web.types.create_web_function_revision_response.CreateWebFunctionRevisionResponse",
    ) -> dict[str, Any]:
        import capo_lambda_web.types.create_web_function_revision_response

        return capo_lambda_web.types.create_web_function_revision_response.redact_sensitive(
            output
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging(
            "CreateWebFunctionRevision",
            redact_input=_redact_input,
            redact_output=_redact_output,
        ),
    )
    input_: capo_lambda_web.types.create_web_function_revision_request.CreateWebFunctionRevisionRequest = {
        "function_name": function_name,
        "build_config": build_config,
        "service_config": service_config,
    }
    if description is not None:
        input_["description"] = description
    if kms_key_arn is not None:
        input_["kms_key_arn"] = kms_key_arn

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output