Package com.pulumi.aws.lambda
Class FunctionEventInvokeConfig
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.lambda.FunctionEventInvokeConfig
-
public class FunctionEventInvokeConfig extends com.pulumi.resources.CustomResourceManages 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.
### Error Handling Onlypackage 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()); } }
### Configuration for Lambda Aliaspackage 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 Published Versionpackage 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 Latest Versionpackage 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()); } }
### Multiple Destination Typespackage 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()); } }
## 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 ```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()); } }
-
-
Constructor Summary
Constructors Constructor Description FunctionEventInvokeConfig(java.lang.String name)FunctionEventInvokeConfig(java.lang.String name, FunctionEventInvokeConfigArgs args)FunctionEventInvokeConfig(java.lang.String name, FunctionEventInvokeConfigArgs args, com.pulumi.resources.CustomResourceOptions options)
-
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 FunctionEventInvokeConfigget(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()
-
-
-
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
-
destinationConfig
public com.pulumi.core.Output<java.util.Optional<FunctionEventInvokeConfigDestinationConfig>> destinationConfig()
- Returns:
- Configuration block with destination configuration. See below.
-
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.
-
-