constructor()

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],
      }),
    );
  }