
Product
Introducing Socket Scanning for OpenVSX Extensions
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.
@aws-solutions-constructs/aws-eventbridge-sns
Advanced tools
CDK Constructs for deploying AWS Events Rule that invokes AWS SNS
| Reference Documentation: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
|---|
| Language | Package |
|---|---|
Python | aws_solutions_constructs.aws_eventbridge_sns |
Typescript | @aws-solutions-constructs/aws-eventbridge-sns |
Java | software.amazon.awsconstructs.services.eventbridgesns |
This AWS Solutions Construct implements an AWS Events rule and an AWS SNS Topic.
Here is a minimal deployable pattern definition:
Typescript
import { Construct } from 'constructs';
import { Stack, StackProps, Duration } from 'aws-cdk-lib';
import * as events from 'aws-cdk-lib/aws-events';
import * as iam from 'aws-cdk-lib/aws-iam';
import { EventbridgeToSnsProps, EventbridgeToSns } from "@aws-solutions-constructs/aws-eventbridge-sns";
const constructProps: EventbridgeToSnsProps = {
eventRuleProps: {
schedule: events.Schedule.rate(Duration.minutes(5))
}
};
const constructStack = new EventbridgeToSns(this, 'test-construct', constructProps);
// Grant yourself permissions to use the Customer Managed KMS Key
const policyStatement = new iam.PolicyStatement({
actions: ["kms:Encrypt", "kms:Decrypt"],
effect: iam.Effect.ALLOW,
principals: [new iam.AccountRootPrincipal()],
resources: ["*"]
});
constructStack.encryptionKey?.addToResourcePolicy(policyStatement);
Python
from aws_solutions_constructs.aws_eventbridge_sns import EventbridgeToSns, EventbridgeToSnsProps
from aws_cdk import (
aws_events as events,
aws_iam as iam,
Duration,
Stack
)
from constructs import Construct
construct_stack = EventbridgeToSns(self, 'test-construct',
event_rule_props=events.RuleProps(
schedule=events.Schedule.rate(
Duration.minutes(5))
))
# Grant yourself permissions to use the Customer Managed KMS Key
policy_statement = iam.PolicyStatement(
actions=["kms:Encrypt", "kms:Decrypt"],
effect=iam.Effect.ALLOW,
principals=[iam.AccountRootPrincipal()],
resources=["*"]
)
construct_stack.encryption_key.add_to_resource_policy(policy_statement)
Java
import software.constructs.Construct;
import java.util.List;
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.iam.*;
import software.amazon.awsconstructs.services.eventbridgesns.*;
final EventbridgeToSns constructStack = new EventbridgeToSns(this, "test-construct",
new EventbridgeToSnsProps.Builder()
.eventRuleProps(new RuleProps.Builder()
.schedule(Schedule.rate(Duration.minutes(5)))
.build())
.build());
// Grant yourself permissions to use the Customer Managed KMS Key
final PolicyStatement policyStatement = PolicyStatement.Builder.create()
.actions(List.of("kms:Encrypt", "kms:Decrypt"))
.effect(Effect.ALLOW)
.principals(List.of(new AccountRootPrincipal()))
.resources(List.of("*"))
.build();
constructStack.getEncryptionKey().addToResourcePolicy(policyStatement);
| Name | Type | Description |
|---|---|---|
| eventRuleProps | events.RuleProps | User provided eventRuleProps to override the defaults. |
| existingTopicObj? | sns.Topic | Existing instance of SNS Topic object, providing both this and topicProps will cause an error. |
| topicProps? | sns.TopicProps | User provided props to override the default props for the SNS Topic. |
| 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. |
| enableEncryptionWithCustomerManagedKey? | boolean | If no key is provided, this flag determines whether the SNS Topic is encrypted with a new CMK or an AWS managed key. This flag is ignored if any of the following are defined: topicProps.masterKey, encryptionKey or encryptionKeyProps. |
| encryptionKey? | kms.Key | An optional, imported encryption key to encrypt the SNS Topic with. |
| encryptionKeyProps? | kms.KeyProps | Optional user provided properties to override the default properties for the KMS encryption key used to encrypt the SNS Topic with. |
| 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 |
| snsTopic | sns.Topic | Returns an instance of sns.Topic created by the construct |
| encryptionKey? | kms.Key | Returns an instance of kms Key used for the SNS Topic. |
Out of the box implementation of the Construct without any override will set the following defaults:

© Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
FAQs
CDK Constructs for deploying AWS Events Rule that invokes AWS SNS
We found that @aws-solutions-constructs/aws-eventbridge-sns demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Product
Socket now scans OpenVSX extensions, giving teams early detection of risky behaviors, hidden capabilities, and supply chain threats in developer tools.

Product
Bringing supply chain security to the next generation of JavaScript package managers

Product
A safer, faster way to eliminate vulnerabilities without updating dependencies