in usecases/guest-webapp-sample/lib/blea-monitor-alarm-stack.ts [12:33]
constructor(scope: cdk.Construct, id: string, props: BLEAMonitorAlarmStackProps) {
super(scope, id, props);
// SNS Topic for Monitoring Alarm
const topic = new sns.Topic(this, 'MonitorAlarmTopic');
new sns.Subscription(this, 'MonitorAlarmEmail', {
endpoint: props.notifyEmail,
protocol: sns.SubscriptionProtocol.EMAIL,
topic: topic,
});
this.alarmTopic = topic;
// Allow to publish message from CloudWatch
topic.addToResourcePolicy(
new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
principals: [new iam.ServicePrincipal('cloudwatch.amazonaws.com')],
actions: ['sns:Publish'],
resources: [topic.topicArn],
}),
);
}