CapacityProvider class

Manages an AWS Lambda Capacity Provider.

Example Usage

Basic Usage

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.lambda.CapacityProvider("example", {
    vpcConfig: {
        subnetIds: exampleAwsSubnet.map(__item => __item.id),
        securityGroupIds: [exampleAwsSecurityGroup.id],
    },
    permissionsConfig: {
        capacityProviderOperatorRoleArn: exampleAwsIamRole.arn,
    },
    name: "example",
});
import pulumi
import pulumi_aws as aws

example = aws.lambda_.CapacityProvider("example",
    vpc_config={
        "subnet_ids": [__item["id"] for __item in example_aws_subnet],
        "security_group_ids": [example_aws_security_group["id"]],
    },
    permissions_config={
        "capacity_provider_operator_role_arn": example_aws_iam_role["arn"],
    },
    name="example")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = new Aws.Lambda.CapacityProvider("example", new()
    {
        VpcConfig = new Aws.Lambda.Inputs.CapacityProviderVpcConfigArgs
        {
            SubnetIds = exampleAwsSubnet.Select(__item => __item.Id).ToList(),
            SecurityGroupIds = new[]
            {
                exampleAwsSecurityGroup.Id,
            },
        },
        PermissionsConfig = new Aws.Lambda.Inputs.CapacityProviderPermissionsConfigArgs
        {
            CapacityProviderOperatorRoleArn = exampleAwsIamRole.Arn,
        },
        Name = "example",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lambda.NewCapacityProvider(ctx, "example", &lambda.CapacityProviderArgs{
VpcConfig: &lambda.CapacityProviderVpcConfigArgs{
SubnetIds: pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:2,24-46)),
SecurityGroupIds: pulumi.StringArray{
exampleAwsSecurityGroup.Id,
},
},
PermissionsConfig: &lambda.CapacityProviderPermissionsConfigArgs{
CapacityProviderOperatorRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
},
Name: pulumi.String("example"),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

resource "aws_lambda_capacityprovider" "example" {
  vpc_config = {
    subnet_ids         = exampleAwsSubnet[*].id
    security_group_ids = [exampleAwsSecurityGroup.id]
  }
  permissions_config = {
    capacity_provider_operator_role_arn = exampleAwsIamRole.arn
  }
  name = "example"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.CapacityProvider;
import com.pulumi.aws.lambda.CapacityProviderArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderVpcConfigArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderPermissionsConfigArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new CapacityProvider("example", CapacityProviderArgs.builder()
            .vpcConfig(CapacityProviderVpcConfigArgs.builder()
                .subnetIds(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                .securityGroupIds(exampleAwsSecurityGroup.id())
                .build())
            .permissionsConfig(CapacityProviderPermissionsConfigArgs.builder()
                .capacityProviderOperatorRoleArn(exampleAwsIamRole.arn())
                .build())
            .name("example")
            .build());

    }
}

Manual Scaling with Specific Instance Types

import * as pulumi from "@pulumi/pulumi";
import * as aws from "@pulumi/aws";

const example = new aws.lambda.CapacityProvider("example", {
    vpcConfig: {
        subnetIds: exampleAwsSubnet.map(__item => __item.id),
        securityGroupIds: [exampleAwsSecurityGroup.id],
    },
    permissionsConfig: {
        capacityProviderOperatorRoleArn: exampleAwsIamRole.arn,
    },
    capacityProviderScalingConfigs: [{
        scalingMode: "Manual",
        scalingPolicies: [{
            predefinedMetricType: "LambdaCapacityProviderAverageCPUUtilization",
            targetValue: 50,
        }],
    }],
    instanceRequirements: [{
        architectures: ["x86_64"],
        allowedInstanceTypes: [
            "c6i.2xlarge",
            "c7i.2xlarge",
        ],
    }],
    name: "example",
});
import pulumi
import pulumi_aws as aws

example = aws.lambda_.CapacityProvider("example",
    vpc_config={
        "subnet_ids": [__item["id"] for __item in example_aws_subnet],
        "security_group_ids": [example_aws_security_group["id"]],
    },
    permissions_config={
        "capacity_provider_operator_role_arn": example_aws_iam_role["arn"],
    },
    capacity_provider_scaling_configs=[{
        "scaling_mode": "Manual",
        "scaling_policies": [{
            "predefined_metric_type": "LambdaCapacityProviderAverageCPUUtilization",
            "target_value": float(50),
        }],
    }],
    instance_requirements=[{
        "architectures": ["x86_64"],
        "allowed_instance_types": [
            "c6i.2xlarge",
            "c7i.2xlarge",
        ],
    }],
    name="example")
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using Aws = Pulumi.Aws;

return await Deployment.RunAsync(() =>
{
    var example = new Aws.Lambda.CapacityProvider("example", new()
    {
        VpcConfig = new Aws.Lambda.Inputs.CapacityProviderVpcConfigArgs
        {
            SubnetIds = exampleAwsSubnet.Select(__item => __item.Id).ToList(),
            SecurityGroupIds = new[]
            {
                exampleAwsSecurityGroup.Id,
            },
        },
        PermissionsConfig = new Aws.Lambda.Inputs.CapacityProviderPermissionsConfigArgs
        {
            CapacityProviderOperatorRoleArn = exampleAwsIamRole.Arn,
        },
        CapacityProviderScalingConfigs = new[]
        {
            new Aws.Lambda.Inputs.CapacityProviderCapacityProviderScalingConfigArgs
            {
                ScalingMode = "Manual",
                ScalingPolicies = new[]
                {
                    new Aws.Lambda.Inputs.CapacityProviderCapacityProviderScalingConfigScalingPolicyArgs
                    {
                        PredefinedMetricType = "LambdaCapacityProviderAverageCPUUtilization",
                        TargetValue = 50,
                    },
                },
            },
        },
        InstanceRequirements = new[]
        {
            new Aws.Lambda.Inputs.CapacityProviderInstanceRequirementArgs
            {
                Architectures = new[]
                {
                    "x86_64",
                },
                AllowedInstanceTypes = new[]
                {
                    "c6i.2xlarge",
                    "c7i.2xlarge",
                },
            },
        },
        Name = "example",
    });

});
package main

import (
	"github.com/pulumi/pulumi-aws/sdk/v7/go/aws/lambda"
	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := lambda.NewCapacityProvider(ctx, "example", &lambda.CapacityProviderArgs{
VpcConfig: &lambda.CapacityProviderVpcConfigArgs{
SubnetIds: pulumi.StringArray(%!v(PANIC=Format method: fatal: A failure has occurred: unlowered splat expression @ example.pp:2,24-46)),
SecurityGroupIds: pulumi.StringArray{
exampleAwsSecurityGroup.Id,
},
},
PermissionsConfig: &lambda.CapacityProviderPermissionsConfigArgs{
CapacityProviderOperatorRoleArn: pulumi.Any(exampleAwsIamRole.Arn),
},
CapacityProviderScalingConfigs: lambda.CapacityProviderCapacityProviderScalingConfigArray{
&lambda.CapacityProviderCapacityProviderScalingConfigArgs{
ScalingMode: pulumi.String("Manual"),
ScalingPolicies: lambda.CapacityProviderCapacityProviderScalingConfigScalingPolicyArray{
&lambda.CapacityProviderCapacityProviderScalingConfigScalingPolicyArgs{
PredefinedMetricType: pulumi.String("LambdaCapacityProviderAverageCPUUtilization"),
TargetValue: pulumi.Float64(50),
},
},
},
},
InstanceRequirements: lambda.CapacityProviderInstanceRequirementArray{
&lambda.CapacityProviderInstanceRequirementArgs{
Architectures: pulumi.StringArray{
pulumi.String("x86_64"),
},
AllowedInstanceTypes: pulumi.StringArray{
pulumi.String("c6i.2xlarge"),
pulumi.String("c7i.2xlarge"),
},
},
},
Name: pulumi.String("example"),
})
if err != nil {
return err
}
return nil
})
}
pulumi {
  required_providers {
    aws = {
      source = "pulumi/aws"
    }
  }
}

resource "aws_lambda_capacityprovider" "example" {
  vpc_config = {
    subnet_ids         = exampleAwsSubnet[*].id
    security_group_ids = [exampleAwsSecurityGroup.id]
  }
  permissions_config = {
    capacity_provider_operator_role_arn = exampleAwsIamRole.arn
  }
  capacity_provider_scaling_configs {
    scaling_mode = "Manual"
    scaling_policies {
      predefined_metric_type = "LambdaCapacityProviderAverageCPUUtilization"
      target_value           = 50
    }
  }
  instance_requirements {
    architectures          = ["x86_64"]
    allowed_instance_types = ["c6i.2xlarge", "c7i.2xlarge"]
  }
  name = "example"
}
package generated_program;

import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.aws.lambda.CapacityProvider;
import com.pulumi.aws.lambda.CapacityProviderArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderVpcConfigArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderPermissionsConfigArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderCapacityProviderScalingConfigArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderCapacityProviderScalingConfigScalingPolicyArgs;
import com.pulumi.aws.lambda.inputs.CapacityProviderInstanceRequirementArgs;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;

public class App {
    public static void main(String[] args) {
        Pulumi.run(App::stack);
    }

    public static void stack(Context ctx) {
        var example = new CapacityProvider("example", CapacityProviderArgs.builder()
            .vpcConfig(CapacityProviderVpcConfigArgs.builder()
                .subnetIds(exampleAwsSubnet.stream().map(element -> element.id()).collect(toList()))
                .securityGroupIds(exampleAwsSecurityGroup.id())
                .build())
            .permissionsConfig(CapacityProviderPermissionsConfigArgs.builder()
                .capacityProviderOperatorRoleArn(exampleAwsIamRole.arn())
                .build())
            .capacityProviderScalingConfigs(CapacityProviderCapacityProviderScalingConfigArgs.builder()
                .scalingMode("Manual")
                .scalingPolicies(CapacityProviderCapacityProviderScalingConfigScalingPolicyArgs.builder()
                    .predefinedMetricType("LambdaCapacityProviderAverageCPUUtilization")
                    .targetValue(50.0)
                    .build())
                .build())
            .instanceRequirements(CapacityProviderInstanceRequirementArgs.builder()
                .architectures("x86_64")
                .allowedInstanceTypes(
                    "c6i.2xlarge",
                    "c7i.2xlarge")
                .build())
            .name("example")
            .build());

    }
}

Import

Identity Schema

Required

  • name (String) Name of the Lambda capacity provider.

Optional

  • accountId (String) AWS Account where this resource is managed.
  • region (String) Region where this resource is managed.

Using pulumi import, import Lambda Capacity Provider using the name. For example:

$ pulumi import aws:lambda/capacityProvider:CapacityProvider example example

Constructors

CapacityProvider(String name, {CapacityProviderArgs? args, CustomResourceOptions? options})
Creates a new CapacityProvider. name The Pulumi resource name. args Arguments used to configure this CapacityProvider. The set of arguments for CapacityProvider. options Resource options controlling this resource's behavior.
CapacityProvider.reference(String urn)
Creates a typed reference to an existing CapacityProvider resource.

Properties

arn ↔ Output<String>
ARN of the Capacity Provider.
latefinal
capacityProviderScalingConfigs ↔ Output<List<CapacityProviderCapacityProviderScalingConfig>>
Configuration block for scaling policy settings. See Capacity Provider Scaling Config below.
latefinal
childResources Set<Resource>
finalinherited
completionSources Map<String, IOutputCompletionSource>
latefinalinherited
hashCode int
The hash code for this object.
no setterinherited
id ↔ Output<String>
getter/setter pairinherited
instanceRequirements ↔ Output<List<CapacityProviderInstanceRequirement>>
Configuration block for instance requirements settings. See Instance Requirements below.
latefinal
isCustom bool
Returns whether this resource is provider-managed.
no setterinherited
isProtected bool
Returns whether this resource is protected from deletion.
no setterinherited
isRemote bool
Whether this resource is registered as remote.
no setterinherited
isResourceReference bool
Whether this instance represents a resource value returned over RPC.
finalinherited
kmsKeyArn ↔ Output<String?>
ARN of the KMS key used to encrypt the Capacity Provider.
latefinal
name ↔ Output<String>
Name of the Capacity Provider.
latefinal
permissionsConfig ↔ Output<CapacityProviderPermissionsConfig>
Configuration block for permissions settings. See Permissions Config below.
latefinal
region ↔ Output<String>
Region where this resource will be managed. Defaults to the Region set in the provider configuration.
latefinal
resourceTransforms List<ResourceTransform>
Inherited/explicit async transforms.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
tags ↔ Output<Map<String, String>?>
Map of tags assigned to the resource. If configured with a provider defaultTags configuration block present, tags with matching keys will overwrite those defined at the provider-level.
latefinal
tagsAll ↔ Output<Map<String, String>>
Map of tags assigned to the resource, including those inherited from the provider defaultTags configuration block.
latefinal
timeouts ↔ Output<CapacityProviderTimeouts?>
latefinal
transformations List<ResourceTransformation>
Inherited/explicit legacy transformations.
no setterinherited
urn ↔ Output<String>
latefinalinherited
vpcConfig ↔ Output<CapacityProviderVpcConfig>
Configuration block for VPC settings. See VPC Config below.
latefinal

Methods

failId(Object error) → void
Completes this resource ID with an error when registration fails.
inherited
failOutputs(Object error) → void
Completes all output properties with error.
inherited
failUrn(Object error) → void
Completes this resource URN with an error when registration fails.
inherited
getProvider(String moduleMember) → ProviderResource?
Returns provider for moduleMember's package, if configured.
inherited
getResourceName() String
Returns this resource's logical name.
inherited
getResourceType() String
Returns this resource's Pulumi type token.
inherited
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
registerOutput<T>(String propertyName, {Object? decoder(Object?)?, bool isSecret = false}) → Output<T>
Registers a dynamic output property for this resource.
inherited
resolveId(String? value, {required bool isKnown}) → void
Resolves the provider-assigned ID for this resource.
inherited
resolveOutputs(Struct outputs) → void
Resolves all output properties from a monitor response payload.
inherited
resolveUrn(String value) → void
Resolves this resource's URN once assigned by the engine.
inherited
serializeProperties(Map<String, dynamic> properties) Future<Struct>
Serializes resource properties for RPC transmission.
inherited
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited

Static Methods

get(String name, Input<String> id, {CapacityProviderState? state, CustomResourceOptions? options}) CapacityProvider
Gets an existing CapacityProvider resource's state with the given name and id.