Class FunctionEventInvokeConfig


  • public class FunctionEventInvokeConfig
    extends com.pulumi.resources.CustomResource
    Manages an AWS Lambda Function Event Invoke Config. Use this resource to configure error handling and destinations for asynchronous Lambda function invocations. More information about asynchronous invocations and the configurable values can be found in the [Lambda Developer Guide](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html). ## Example Usage ### Complete Error Handling and Destinations > **Note:** Ensure the Lambda Function IAM Role has necessary permissions for the destination, such as `sqs:SendMessage` or `sns:Publish`, otherwise the API will return a generic `InvalidParameterValueException: The destination ARN arn:PARTITION:SERVICE:REGION:ACCOUNT:RESOURCE is invalid.` error.
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.sqs.Queue;
     import com.pulumi.aws.sqs.QueueArgs;
     import com.pulumi.aws.sns.Topic;
     import com.pulumi.aws.sns.TopicArgs;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnFailureArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnSuccessArgs;
     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) {
             // SQS queue for failed invocations
             var dlq = new Queue("dlq", QueueArgs.builder()
                 .name("lambda-dlq")
                 .tags(Map.ofEntries(
                     Map.entry("Environment", "production"),
                     Map.entry("Purpose", "lambda-error-handling")
                 ))
                 .build());
     
             // SNS topic for successful invocations
             var success = new Topic("success", TopicArgs.builder()
                 .name("lambda-success-notifications")
                 .tags(Map.ofEntries(
                     Map.entry("Environment", "production"),
                     Map.entry("Purpose", "lambda-success-notifications")
                 ))
                 .build());
     
             // Complete event invoke configuration
             var example = new FunctionEventInvokeConfig("example", FunctionEventInvokeConfigArgs.builder()
                 .destinationConfig(FunctionEventInvokeConfigDestinationConfigArgs.builder()
                     .onFailure(FunctionEventInvokeConfigDestinationConfigOnFailureArgs.builder()
                         .destination(dlq.arn())
                         .build())
                     .onSuccess(FunctionEventInvokeConfigDestinationConfigOnSuccessArgs.builder()
                         .destination(success.arn())
                         .build())
                     .build())
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .maximumEventAgeInSeconds(300)
                 .maximumRetryAttempts(1)
                 .build());
     
         }
     }
     
     
    ### Error Handling Only
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     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 FunctionEventInvokeConfig("example", FunctionEventInvokeConfigArgs.builder()
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .maximumEventAgeInSeconds(60)
                 .maximumRetryAttempts(0)
                 .build());
     
         }
     }
     
     
    ### Configuration for Lambda Alias
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lambda.Alias;
     import com.pulumi.aws.lambda.AliasArgs;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnFailureArgs;
     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 Alias("example", AliasArgs.builder()
                 .name("production")
                 .description("Production alias")
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .functionVersion(exampleAwsLambdaFunction.version())
                 .build());
     
             var exampleFunctionEventInvokeConfig = new FunctionEventInvokeConfig("exampleFunctionEventInvokeConfig", FunctionEventInvokeConfigArgs.builder()
                 .destinationConfig(FunctionEventInvokeConfigDestinationConfigArgs.builder()
                     .onFailure(FunctionEventInvokeConfigDestinationConfigOnFailureArgs.builder()
                         .destination(productionDlq.arn())
                         .build())
                     .build())
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .qualifier(example.name())
                 .maximumEventAgeInSeconds(1800)
                 .maximumRetryAttempts(2)
                 .build());
     
         }
     }
     
     
    ### Configuration for Published Version
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnFailureArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnSuccessArgs;
     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 FunctionEventInvokeConfig("example", FunctionEventInvokeConfigArgs.builder()
                 .destinationConfig(FunctionEventInvokeConfigDestinationConfigArgs.builder()
                     .onFailure(FunctionEventInvokeConfigDestinationConfigOnFailureArgs.builder()
                         .destination(versionDlq.arn())
                         .build())
                     .onSuccess(FunctionEventInvokeConfigDestinationConfigOnSuccessArgs.builder()
                         .destination(versionSuccess.arn())
                         .build())
                     .build())
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .qualifier(exampleAwsLambdaFunction.version())
                 .maximumEventAgeInSeconds(21600)
                 .maximumRetryAttempts(2)
                 .build());
     
         }
     }
     
     
    ### Configuration for Latest Version
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnFailureArgs;
     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 FunctionEventInvokeConfig("example", FunctionEventInvokeConfigArgs.builder()
                 .destinationConfig(FunctionEventInvokeConfigDestinationConfigArgs.builder()
                     .onFailure(FunctionEventInvokeConfigDestinationConfigOnFailureArgs.builder()
                         .destination(devDlq.arn())
                         .build())
                     .build())
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .qualifier("$LATEST")
                 .maximumEventAgeInSeconds(120)
                 .maximumRetryAttempts(0)
                 .build());
     
         }
     }
     
     
    ### Multiple Destination Types
     
     package generated_program;
     
     import com.pulumi.Context;
     import com.pulumi.Pulumi;
     import com.pulumi.core.Output;
     import com.pulumi.aws.s3.Bucket;
     import com.pulumi.aws.s3.BucketArgs;
     import com.pulumi.aws.cloudwatch.EventBus;
     import com.pulumi.aws.cloudwatch.EventBusArgs;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfig;
     import com.pulumi.aws.lambda.FunctionEventInvokeConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnFailureArgs;
     import com.pulumi.aws.lambda.inputs.FunctionEventInvokeConfigDestinationConfigOnSuccessArgs;
     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) {
             // S3 bucket for archiving successful events
             var lambdaSuccessArchive = new Bucket("lambdaSuccessArchive", BucketArgs.builder()
                 .bucket(String.format("lambda-success-archive-%s", bucketSuffix.hex()))
                 .build());
     
             // EventBridge custom bus for failed events
             var lambdaFailures = new EventBus("lambdaFailures", EventBusArgs.builder()
                 .name("lambda-failure-events")
                 .build());
     
             var example = new FunctionEventInvokeConfig("example", FunctionEventInvokeConfigArgs.builder()
                 .destinationConfig(FunctionEventInvokeConfigDestinationConfigArgs.builder()
                     .onFailure(FunctionEventInvokeConfigDestinationConfigOnFailureArgs.builder()
                         .destination(lambdaFailures.arn())
                         .build())
                     .onSuccess(FunctionEventInvokeConfigDestinationConfigOnSuccessArgs.builder()
                         .destination(lambdaSuccessArchive.arn())
                         .build())
                     .build())
                 .functionName(exampleAwsLambdaFunction.functionName())
                 .build());
     
         }
     }
     
     
    ## Import ARN with qualifier: Name without qualifier (all versions and aliases): Name with qualifier: For backwards compatibility, the following legacy `pulumi import` commands are also supported: Using ARN without qualifier: ```sh $ pulumi import aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig example arn:aws:lambda:us-east-1:123456789012:function:example ``` Using ARN with qualifier: ```sh $ pulumi import aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig example arn:aws:lambda:us-east-1:123456789012:function:example:production ``` Name without qualifier (all versions and aliases): ```sh $ pulumi import aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig example example ``` Name with qualifier: ```sh $ pulumi import aws:lambda/functionEventInvokeConfig:FunctionEventInvokeConfig example example:production ```
    • 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.util.Optional<FunctionEventInvokeConfigDestinationConfig>> destinationConfig()  
      com.pulumi.core.Output<java.lang.String> functionName()  
      static FunctionEventInvokeConfig get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, FunctionEventInvokeConfigState 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.util.Optional<java.lang.Integer>> maximumEventAgeInSeconds()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> maximumRetryAttempts()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> qualifier()  
      com.pulumi.core.Output<java.lang.String> region()  
      • 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

      • FunctionEventInvokeConfig

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

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

        public FunctionEventInvokeConfig​(java.lang.String name,
                                         FunctionEventInvokeConfigArgs 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

      • functionName

        public com.pulumi.core.Output<java.lang.String> functionName()
        Returns:
        Name or ARN of the Lambda Function, omitting any version or alias qualifier. The following arguments are optional:
      • maximumEventAgeInSeconds

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> maximumEventAgeInSeconds()
        Returns:
        Maximum age of a request that Lambda sends to a function for processing in seconds. Valid values between 60 and 21600.
      • maximumRetryAttempts

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> maximumRetryAttempts()
        Returns:
        Maximum number of times to retry when the function returns an error. Valid values between 0 and 2. Defaults to 2.
      • qualifier

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> qualifier()
        Returns:
        Lambda Function published version, `$LATEST`, or Lambda Alias name.
      • 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 FunctionEventInvokeConfig get​(java.lang.String name,
                                                    com.pulumi.core.Output<java.lang.String> id,
                                                    @Nullable
                                                    FunctionEventInvokeConfigState 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.