Skip to content

create_web_function

create_web_function(
    function_name: FunctionName,
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    revision_config: Optional[RevisionConfig] = None,
    endpoint_config: Optional[EndpointConfig] = None,
    tags: Optional[Tags] = None,
) -> CreateWebFunctionResponse

Creates a web function with an initial revision and endpoint. To create a web function, you provide the function name, revision configuration (code and service settings), and endpoint configuration.

To use this operation, you must have the CreateWebFunction permission on the web function. You don't need separate permissions for the initial revision or endpoint.

Parameters:

  • function_name (FunctionName) –

    The name of the web function. The name can contain letters, numbers, hyphens (-), and underscores (_), and can't begin or end with a hyphen or an underscore. The name is limited to 64 characters in length.

  • revision_config (Optional[RevisionConfig], default: None ) –

    The configuration for the initial revision of the web function, including code and service settings.

  • endpoint_config (Optional[EndpointConfig], default: None ) –

    The configuration for the initial endpoint of the web function.

  • tags (Optional[Tags], default: None ) –

    A map of tag keys and values to apply to the web function.

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(
    self,
    function_name: "capo_lambda_web.types.function_name.FunctionName",
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    revision_config: Optional[
        "capo_lambda_web.types.revision_config.RevisionConfig"
    ] = None,
    endpoint_config: Optional[
        "capo_lambda_web.types.endpoint_config.EndpointConfig"
    ] = None,
    tags: Optional["capo_lambda_web.types.tags.Tags"] = None,
) -> "capo_lambda_web.types.create_web_function_response.CreateWebFunctionResponse":
    """<p>Creates a web function with an initial revision and endpoint. To create a web function, you provide the function name, revision configuration (code and service settings), and endpoint configuration.</p> <p>To use this operation, you must have the <code>CreateWebFunction</code> permission on the web function. You don't need separate permissions for the initial revision or endpoint.</p>

    Args:
        function_name: <p>The name of the web function. The name can contain letters, numbers, hyphens (-), and underscores (_), and can't begin or end with a hyphen or an underscore. The name is limited to 64 characters in length.</p>
        revision_config: <p>The configuration for the initial revision of the web function, including code and service settings.</p>
        endpoint_config: <p>The configuration for the initial endpoint of the web function.</p>
        tags: <p>A map of tag keys and values to apply to the web function.</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_request.CreateWebFunctionRequest]",
    ) -> OperationResponse[
        "capo_lambda_web.types.create_web_function_response.CreateWebFunctionResponse"
    ]:
        import capo_lambda_web._operations.lambda_web.create_web_function

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

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

        return capo_lambda_web.types.create_web_function_request.redact_sensitive(
            input_
        )

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("CreateWebFunction", redact_input=_redact_input),
    )
    input_: capo_lambda_web.types.create_web_function_request.CreateWebFunctionRequest = {
        "function_name": function_name
    }
    if revision_config is not None:
        input_["revision_config"] = revision_config
    if endpoint_config is not None:
        input_["endpoint_config"] = endpoint_config
    if tags is not None:
        input_["tags"] = tags

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