Class FunctionScalingConfig


  • public class FunctionScalingConfig
    extends com.pulumi.resources.CustomResource
    Manages the scaling configuration for an AWS Lambda function. The scaling configuration defines the minimum and maximum number of execution environments that can be provisioned for the function, allowing you to control scaling behavior and resource allocation. > **NOTE:** This resource only works with Lambda functions that have a capacity provider configuration. > **NOTE:** Per common practice, this resource waits for the scaling configuration to converge before apply completes. It determines the min and max execution environments have settled using Requested and Applied scaling configs returned by Lambda. The [API documentation](https://docs.aws.amazon.com/lambda/latest/api/API_GetFunctionScalingConfig.html) is ambiguous about how these behave. From observation, Requested is only returned prior to settlement whereas Applied may be partially returned until settlement when it is fully returned. Should the observed behavior change, this resource will need to be updated to match. ## Example Usage ### Basic Usage
     
     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.Function;
     import com.pulumi.aws.lambda.FunctionArgs;
     import com.pulumi.aws.lambda.inputs.FunctionCapacityProviderConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionCapacityProviderConfigLambdaManagedInstancesCapacityProviderConfigArgs;
     import com.pulumi.aws.lambda.FunctionScalingConfig;
     import com.pulumi.aws.lambda.FunctionScalingConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionScalingConfigFunctionScalingConfigArgs;
     import com.pulumi.asset.FileArchive;
     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());
     
             var exampleFunction = new Function("exampleFunction", FunctionArgs.builder()
                 .capacityProviderConfig(FunctionCapacityProviderConfigArgs.builder()
                     .lambdaManagedInstancesCapacityProviderConfig(FunctionCapacityProviderConfigLambdaManagedInstancesCapacityProviderConfigArgs.builder()
                         .capacityProviderArn(example.arn())
                         .build())
                     .build())
                 .code(new FileArchive("lambda_function.zip"))
                 .name("example")
                 .role(exampleAwsIamRole.arn())
                 .handler("index.handler")
                 .runtime("python3.14")
                 .memorySize(32768)
                 .publish(true)
                 .publishTo("LATEST_PUBLISHED")
                 .build());
     
             var exampleFunctionScalingConfig = new FunctionScalingConfig("exampleFunctionScalingConfig", FunctionScalingConfigArgs.builder()
                 .functionScalingConfig(FunctionScalingConfigFunctionScalingConfigArgs.builder()
                     .minExecutionEnvironments(3)
                     .maxExecutionEnvironments(100)
                     .build())
                 .functionName(exampleFunction.name())
                 .qualifier("$LATEST.PUBLISHED")
                 .build());
     
         }
     }
     
     
    ## Import ### Identity Schema #### Required * `functionName` (String) Name or ARN of the Lambda function. * `qualifier` (String) Qualifier for the scaling configuration. #### Optional * `accountId` (String) AWS Account where this resource is managed. * `region` (String) Region where this resource is managed. Using `pulumi import`, import Lambda Function Scaling Config using the `functionName` and `qualifier` separated by a comma (`,`). For example: ```sh $ pulumi import aws:lambda/functionScalingConfig:FunctionScalingConfig example my-function,$LATEST.PUBLISHED ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.lang.String> functionArn()  
      com.pulumi.core.Output<java.lang.String> functionName()  
      com.pulumi.core.Output<FunctionScalingConfigFunctionScalingConfig> functionScalingConfig()  
      com.pulumi.core.Output<java.lang.String> functionState()  
      static FunctionScalingConfig get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, FunctionScalingConfigState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.lang.String> qualifier()  
      com.pulumi.core.Output<java.lang.String> region()  
      com.pulumi.core.Output<java.util.Optional<FunctionScalingConfigTimeouts>> timeouts()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • FunctionScalingConfig

        public FunctionScalingConfig​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • FunctionScalingConfig

        public FunctionScalingConfig​(java.lang.String name,
                                     FunctionScalingConfigArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • FunctionScalingConfig

        public FunctionScalingConfig​(java.lang.String name,
                                     FunctionScalingConfigArgs args,
                                     @Nullable
                                     com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • functionArn

        public com.pulumi.core.Output<java.lang.String> functionArn()
        Returns:
        ARN of the Lambda function.
      • functionName

        public com.pulumi.core.Output<java.lang.String> functionName()
        Returns:
        Name or ARN of the Lambda function. Changing this forces a new resource.
      • functionState

        public com.pulumi.core.Output<java.lang.String> functionState()
        Returns:
        State of the function after the scaling configuration was applied. This reflects the state reported by the most recent create or update and is not refreshed on read.
      • qualifier

        public com.pulumi.core.Output<java.lang.String> qualifier()
        Returns:
        Qualifier for the scaling configuration. Valid values: `$LATEST.PUBLISHED` to target the latest published version, or a specific numeric version number (e.g., `1`). Changing this forces a new resource. The following arguments are optional:
      • region

        public com.pulumi.core.Output<java.lang.String> region()
        Returns:
        Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
      • get

        public static FunctionScalingConfig get​(java.lang.String name,
                                                com.pulumi.core.Output<java.lang.String> id,
                                                @Nullable
                                                FunctionScalingConfigState state,
                                                @Nullable
                                                com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.