Skip to content

update_web_function_endpoint

update_web_function_endpoint(
    function_name: FunctionName,
    endpoint_name: EndpointName,
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    description: Optional[Description] = None,
    auth_type: Optional[AuthType] = None,
    auto_deployment_mode: Optional[AutoDeploymentMode] = None,
    revision_weights: Optional[RevisionWeightList] = None,
    scaling_config: Optional[ScalingConfig] = None,
    throttle_config: Optional[ThrottleConfig] = None,
) -> UpdateWebFunctionEndpointResponse

Updates the configuration of a web function endpoint. You can modify the authorization type, auto-deployment mode, revision weights, scaling, and throttling settings.

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.

  • endpoint_name (EndpointName) –

    The endpoint to update.

    You can specify either of the following:

    • The endpoint name, for example my-endpoint.

    • The endpoint ARN.

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

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

    A description of the endpoint. Omit this field to keep the current description.

  • auth_type (Optional[AuthType], default: None ) –

    The authorization type for the endpoint. Omit this field to keep the current authorization type.

    Valid values:

    • ApplicationManaged – Your application handles authorization.

    • IamAuth – Lambda uses IAM to authorize requests, which must be signed with Signature Version 4 (SigV4).

  • auto_deployment_mode (Optional[AutoDeploymentMode], default: None ) –

    The auto-deployment mode for the endpoint. Omit this field to keep the current auto-deployment mode.

    Valid values:

    • LatestRevision – The endpoint automatically serves the newest revision.

    • Disabled – Revision routing stays fixed until you change it.

  • revision_weights (Optional[RevisionWeightList], default: None ) –

    A list of revision weights that determine how traffic is distributed across revisions.

  • scaling_config (Optional[ScalingConfig], default: None ) –

    The scaling configuration for the endpoint. Omit this field to keep the current scaling configuration. To clear a previously set maxEnvironments value, specify an empty object.

  • throttle_config (Optional[ThrottleConfig], default: None ) –

    The throttling configuration for the endpoint. Omit this field to keep the current throttling configuration. To clear a previously set rateLimit value, specify an empty object.

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 update_web_function_endpoint(
    self,
    function_name: "capo_lambda_web.types.function_name.FunctionName",
    endpoint_name: "capo_lambda_web.types.endpoint_name.EndpointName",
    *,
    config_overrides: Optional[LambdaWebClientConfig] = None,
    description: Optional["capo_lambda_web.types.description.Description"] = None,
    auth_type: Optional["capo_lambda_web.types.auth_type.AuthType"] = None,
    auto_deployment_mode: Optional[
        "capo_lambda_web.types.auto_deployment_mode.AutoDeploymentMode"
    ] = None,
    revision_weights: Optional[
        "capo_lambda_web.types.revision_weight_list.RevisionWeightList"
    ] = None,
    scaling_config: Optional[
        "capo_lambda_web.types.scaling_config.ScalingConfig"
    ] = None,
    throttle_config: Optional[
        "capo_lambda_web.types.throttle_config.ThrottleConfig"
    ] = None,
) -> "capo_lambda_web.types.update_web_function_endpoint_response.UpdateWebFunctionEndpointResponse":
    """<p>Updates the configuration of a web function endpoint. You can modify the authorization type, auto-deployment mode, revision weights, scaling, and throttling settings.</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>
        endpoint_name: <p>The endpoint to update.</p> <p>You can specify either of the following:</p> <ul> <li> <p>The endpoint name, for example <code>my-endpoint</code>.</p> </li> <li> <p>The endpoint ARN.</p> </li> </ul> <p>The length constraint applies only to the full ARN. If you specify only the endpoint name, it is limited to 64 characters in length.</p>
        description: <p>A description of the endpoint. Omit this field to keep the current description.</p>
        auth_type: <p>The authorization type for the endpoint. Omit this field to keep the current authorization type.</p> <p>Valid values:</p> <ul> <li> <p> <code>ApplicationManaged</code> – Your application handles authorization.</p> </li> <li> <p> <code>IamAuth</code> – Lambda uses IAM to authorize requests, which must be signed with Signature Version 4 (SigV4).</p> </li> </ul>
        auto_deployment_mode: <p>The auto-deployment mode for the endpoint. Omit this field to keep the current auto-deployment mode.</p> <p>Valid values:</p> <ul> <li> <p> <code>LatestRevision</code> – The endpoint automatically serves the newest revision.</p> </li> <li> <p> <code>Disabled</code> – Revision routing stays fixed until you change it.</p> </li> </ul>
        revision_weights: <p>A list of revision weights that determine how traffic is distributed across revisions.</p>
        scaling_config: <p>The scaling configuration for the endpoint. Omit this field to keep the current scaling configuration. To clear a previously set <code>maxEnvironments</code> value, specify an empty object.</p>
        throttle_config: <p>The throttling configuration for the endpoint. Omit this field to keep the current throttling configuration. To clear a previously set <code>rateLimit</code> value, specify an empty object.</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.update_web_function_endpoint_request.UpdateWebFunctionEndpointRequest]",
    ) -> OperationResponse[
        "capo_lambda_web.types.update_web_function_endpoint_response.UpdateWebFunctionEndpointResponse"
    ]:
        import capo_lambda_web._operations.lambda_web.update_web_function_endpoint

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

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("UpdateWebFunctionEndpoint")
    )
    input_: capo_lambda_web.types.update_web_function_endpoint_request.UpdateWebFunctionEndpointRequest = {
        "function_name": function_name,
        "endpoint_name": endpoint_name,
    }
    if description is not None:
        input_["description"] = description
    if auth_type is not None:
        input_["auth_type"] = auth_type
    if auto_deployment_mode is not None:
        input_["auto_deployment_mode"] = auto_deployment_mode
    if revision_weights is not None:
        input_["revision_weights"] = revision_weights
    if scaling_config is not None:
        input_["scaling_config"] = scaling_config
    if throttle_config is not None:
        input_["throttle_config"] = throttle_config

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