Skip to content

create_capacity_provider

create_capacity_provider(
    capacity_provider_name: CapacityProviderName,
    vpc_config: CapacityProviderVpcConfig,
    permissions_config: CapacityProviderPermissionsConfig,
    *,
    config_overrides: Optional[LambdaClientConfig] = None,
    instance_requirements: Optional[InstanceRequirements] = None,
    capacity_provider_scaling_config: Optional[CapacityProviderScalingConfig] = None,
    kms_key_arn: Optional[KMSKeyArnNonEmpty] = None,
    tags: Optional[Tags] = None,
    propagate_tags: Optional[PropagateTags] = None,
    telemetry_config: Optional[CapacityProviderTelemetryConfig] = None,
) -> CreateCapacityProviderResponse

Creates a capacity provider that manages compute resources for Lambda Event Functions

Parameters:

  • capacity_provider_name (CapacityProviderName) –

    The name of the capacity provider.

  • vpc_config (CapacityProviderVpcConfig) –

    The VPC configuration for the capacity provider, including subnet IDs and security group IDs where compute instances will be launched.

  • permissions_config (CapacityProviderPermissionsConfig) –

    The permissions configuration that specifies the IAM role ARN used by the capacity provider to manage compute resources.

  • instance_requirements (Optional[InstanceRequirements], default: None ) –

    The instance requirements that specify the compute instance characteristics, including architectures and allowed or excluded instance types.

  • capacity_provider_scaling_config (Optional[CapacityProviderScalingConfig], default: None ) –

    The scaling configuration that defines how the capacity provider scales compute instances, including maximum vCPU count and scaling policies.

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

    The ARN of the KMS key used to encrypt data associated with the capacity provider.

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

    A list of tags to associate with the capacity provider.

  • propagate_tags (Optional[PropagateTags], default: None ) –

    The tag propagation configuration for the capacity provider. Specifies tags to apply to managed resources at launch.

  • telemetry_config (Optional[CapacityProviderTelemetryConfig], default: None ) –

    The telemetry configuration for the capacity provider. Specifies logging settings for managed resources.

Raises:

Source code in docs_src/capo_lambda/_services/_lambda.py
def create_capacity_provider(
    self,
    capacity_provider_name: "capo_lambda.types.capacity_provider_name.CapacityProviderName",
    vpc_config: "capo_lambda.types.capacity_provider_vpc_config.CapacityProviderVpcConfig",
    permissions_config: "capo_lambda.types.capacity_provider_permissions_config.CapacityProviderPermissionsConfig",
    *,
    config_overrides: Optional[LambdaClientConfig] = None,
    instance_requirements: Optional[
        "capo_lambda.types.instance_requirements.InstanceRequirements"
    ] = None,
    capacity_provider_scaling_config: Optional[
        "capo_lambda.types.capacity_provider_scaling_config.CapacityProviderScalingConfig"
    ] = None,
    kms_key_arn: Optional[
        "capo_lambda.types.kms_key_arn_non_empty.KMSKeyArnNonEmpty"
    ] = None,
    tags: Optional["capo_lambda.types.tags.Tags"] = None,
    propagate_tags: Optional[
        "capo_lambda.types.propagate_tags.PropagateTags"
    ] = None,
    telemetry_config: Optional[
        "capo_lambda.types.capacity_provider_telemetry_config.CapacityProviderTelemetryConfig"
    ] = None,
) -> "capo_lambda.types.create_capacity_provider_response.CreateCapacityProviderResponse":
    """<p>Creates a capacity provider that manages compute resources for Lambda Event Functions</p>

    Args:
        capacity_provider_name: <p>The name of the capacity provider. </p>
        vpc_config: <p>The VPC configuration for the capacity provider, including subnet IDs and security group IDs where compute instances will be launched.</p>
        permissions_config: <p>The permissions configuration that specifies the IAM role ARN used by the capacity provider to manage compute resources.</p>
        instance_requirements: <p>The instance requirements that specify the compute instance characteristics, including architectures and allowed or excluded instance types.</p>
        capacity_provider_scaling_config: <p>The scaling configuration that defines how the capacity provider scales compute instances, including maximum vCPU count and scaling policies.</p>
        kms_key_arn: <p>The ARN of the KMS key used to encrypt data associated with the capacity provider.</p>
        tags: <p>A list of tags to associate with the capacity provider.</p>
        propagate_tags: <p>The tag propagation configuration for the capacity provider. Specifies tags to apply to managed resources at launch.</p>
        telemetry_config: <p>The telemetry configuration for the capacity provider. Specifies logging settings for managed resources.</p>

    Raises:
        capo_lambda.errors.capacity_provider_limit_exceeded_exception.CapacityProviderLimitExceededException: <p>The maximum number of capacity providers for your account has been exceeded. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html">Lambda quotas</a> </p>
        capo_lambda.errors.invalid_parameter_value_exception.InvalidParameterValueException: <p>One of the parameters in the request is not valid.</p>
        capo_lambda.errors.resource_conflict_exception.ResourceConflictException: <p>The resource already exists, or another operation is in progress.</p>
        capo_lambda.errors.service_exception.ServiceException: <p>The Lambda service encountered an internal error.</p>
        capo_lambda.errors.too_many_requests_exception.TooManyRequestsException: <p>The request throughput limit was exceeded. For more information, see <a href="https://docs.aws.amazon.com/lambda/latest/dg/gettingstarted-limits.html#api-requests">Lambda quotas</a>.</p>
        capo_lambda.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_lambda.types.create_capacity_provider_request.CreateCapacityProviderRequest]",
    ) -> OperationResponse[
        "capo_lambda.types.create_capacity_provider_response.CreateCapacityProviderResponse"
    ]:
        import capo_lambda._operations.aws_gir_api_service.create_capacity_provider

        output, http_response = (
            capo_lambda._operations.aws_gir_api_service.create_capacity_provider.create_capacity_provider(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    interceptors_, options_ = self.operation_options(
        config_overrides, OperationLogging("CreateCapacityProvider")
    )
    input_: capo_lambda.types.create_capacity_provider_request.CreateCapacityProviderRequest = {
        "capacity_provider_name": capacity_provider_name,
        "vpc_config": vpc_config,
        "permissions_config": permissions_config,
    }
    if instance_requirements is not None:
        input_["instance_requirements"] = instance_requirements
    if capacity_provider_scaling_config is not None:
        input_["capacity_provider_scaling_config"] = (
            capacity_provider_scaling_config
        )
    if kms_key_arn is not None:
        input_["kms_key_arn"] = kms_key_arn
    if tags is not None:
        input_["tags"] = tags
    if propagate_tags is not None:
        input_["propagate_tags"] = propagate_tags
    if telemetry_config is not None:
        input_["telemetry_config"] = telemetry_config

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