Skip to main content

CDK Constructs for deploying AWS Events Rule that inveokes AWS Lambda

Project description

aws-eventbridge-lambda module

---

Stability: Stable


Reference Documentation: https://docs.aws.amazon.com/solutions/latest/constructs/
Language Package
Python Logo Python aws_solutions_constructs.aws_eventbridge_lambda
Typescript Logo Typescript @aws-solutions-constructs/aws-eventbridge-lambda
Java Logo Java software.amazon.awsconstructs.services.eventbridgelambda

Overview

This AWS Solutions Construct implements an AWS EventBridge rule and an AWS Lambda function.

Here is a minimal deployable pattern definition:

Typescript

import { Construct } from 'constructs';
import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import { EventbridgeToLambdaProps, EventbridgeToLambda } from '@aws-solutions-constructs/aws-eventbridge-lambda';
import * as lambda from 'aws-cdk-lib/aws-lambda';
import * as events from 'aws-cdk-lib/aws-events';

const constructProps: EventbridgeToLambdaProps = {
  lambdaFunctionProps: {
    code: lambda.Code.fromAsset(`lambda`),
    runtime: lambda.Runtime.NODEJS_16_X,
    handler: 'index.handler'
  },
  eventRuleProps: {
    schedule: events.Schedule.rate(Duration.minutes(5))
  }
};

new EventbridgeToLambda(this, 'test-eventbridge-lambda', constructProps);

Python

from aws_solutions_constructs.aws_eventbridge_lambda import EventbridgeToLambda, EventbridgeToLambdaProps
from aws_cdk import (
    aws_lambda as _lambda,
    aws_events as events,
    Duration,
    Stack
)
from constructs import Construct

EventbridgeToLambda(self, 'test-eventbridge-lambda',
                    lambda_function_props=_lambda.FunctionProps(
                        code=_lambda.Code.from_asset('lambda'),
                        runtime=_lambda.Runtime.PYTHON_3_9,
                        handler='index.handler'
                    ),
                    event_rule_props=events.RuleProps(
                        schedule=events.Schedule.rate(
                            Duration.minutes(5))
                    ))

Java

import software.constructs.Construct;

import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.Duration;
import software.amazon.awscdk.services.events.*;
import software.amazon.awscdk.services.lambda.*;
import software.amazon.awscdk.services.lambda.Runtime;
import software.amazon.awsconstructs.services.eventbridgelambda.*;

new EventbridgeToLambda(this, "test-eventbridge-lambda",
        new EventbridgeToLambdaProps.Builder()
                .lambdaFunctionProps(new FunctionProps.Builder()
                        .runtime(Runtime.NODEJS_16_X)
                        .code(Code.fromAsset("lambda"))
                        .handler("index.handler")
                        .build())
                .eventRuleProps(new RuleProps.Builder()
                        .schedule(Schedule.rate(Duration.minutes(5)))
                        .build())
                .build());

Pattern Construct Props

Name Type Description
existingLambdaObj? lambda.Function Existing instance of Lambda Function object, providing both this and lambdaFunctionProps will cause an error.
lambdaFunctionProps? lambda.FunctionProps User provided props to override the default props for the Lambda function.
existingEventBusInterface? events.IEventBus Optional user-provided custom EventBus for construct to use. Providing both this and eventBusProps results an error.
eventBusProps? events.EventBusProps Optional user-provided properties to override the default properties when creating a custom EventBus. Setting this value to {} will create a custom EventBus using all default properties. If neither this nor existingEventBusInterface is provided the construct will use the default EventBus. Providing both this and existingEventBusInterface results an error.
eventRuleProps events.RuleProps User provided eventRuleProps to override the defaults

Pattern Properties

Name Type Description
eventBus? events.IEventBus Returns the instance of events.IEventBus used by the construct
eventsRule events.Rule Returns an instance of events.Rule created by the construct
lambdaFunction lambda.Function Returns an instance of lambda.Function created by the construct

Default settings

Out of the box implementation of the Construct without any override will set the following defaults:

Amazon EventBridge Rule

  • Grant least privilege permissions to EventBridge rule to trigger the Lambda Function

AWS Lambda Function

  • Configure limited privilege access IAM role for Lambda function
  • Enable reusing connections with Keep-Alive for NodeJs Lambda function
  • Enable X-Ray Tracing
  • Set Environment Variables
  • AWS_NODEJS_CONNECTION_REUSE_ENABLED (for Node 10.x and higher functions)

Architecture

Architecture Diagram


© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.

Project details


Release history Release notifications | RSS feed

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Built Distribution

File details

Details for the file aws-solutions-constructs.aws-eventbridge-lambda-2.64.0.tar.gz.

File metadata

File hashes

Hashes for aws-solutions-constructs.aws-eventbridge-lambda-2.64.0.tar.gz
Algorithm Hash digest
SHA256 9e5cb235323bc938abdc46202f63a48f08d15e92e7942ed2a2fbde100ed91b92
MD5 fe293c8df6c3ec76a4e6ab24c327fdd4
BLAKE2b-256 184e5e5f23cca4fcfbf11a7e955a230b2ff352ab8c92083a8cfccb2d4da58304

See more details on using hashes here.

File details

Details for the file aws_solutions_constructs.aws_eventbridge_lambda-2.64.0-py3-none-any.whl.

File metadata

File hashes

Hashes for aws_solutions_constructs.aws_eventbridge_lambda-2.64.0-py3-none-any.whl
Algorithm Hash digest
SHA256 51dd7e35ef178986a9e841d694f97f6304a1b3e6e353b7a69ef726d6ada9ca50
MD5 c850b896349bc4e89548a9008206e51f
BLAKE2b-256 45110f00222a978ae36fe83a63c7cfa9df98d8ea68726f0fc90a7822c6b38a28

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page