Skip to content

Commit d5fb6f5

Browse files
committed
fix: sns topic subscription change
1 parent 40f216a commit d5fb6f5

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

src/index.ts

+13-6
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@ import * as cdk from 'aws-cdk-lib';
44
import * as events from 'aws-cdk-lib/aws-events';
55
import * as targets from 'aws-cdk-lib/aws-events-targets';
66
import * as sns from 'aws-cdk-lib/aws-sns';
7-
import * as subscriptions from 'aws-cdk-lib/aws-sns-subscriptions';
87
import * as sfn from 'aws-cdk-lib/aws-stepfunctions';
98
import * as tasks from 'aws-cdk-lib/aws-stepfunctions-tasks';
109
import { Construct } from 'constructs';
@@ -35,18 +34,26 @@ export class CodePipelineExecutionStateChangeNotificationStack extends cdk.Stack
3534
.digest('hex');
3635

3736
// 👇 SNS Topic for notifications
38-
const topic: sns.Topic = new sns.Topic(this, 'CodePipelineNotificationTopic', {
39-
topicName: `codepipeline-execution-state-change-notification-${random}-topic`,
37+
const topic: sns.Topic = new sns.Topic(this, 'NotificationTopic', {
38+
topicName: `codepipeline-execution-state-notification-change-${random}-topic`,
4039
displayName: 'CodePipeline Execution state change Notification Topic',
4140
});
4241

42+
// const secret = cdk.SecretValue.secretsManager('my-email-array-secret');
43+
// const emails = JSON.parse(secret.unsafeUnwrap()) as string[];
44+
4345
// Subscribe an email endpoint to the topic
44-
for (const email of props.notifications.emails ?? []) {
45-
topic.addSubscription(new subscriptions.EmailSubscription(email));
46+
const emails = props.notifications.emails ?? [];
47+
for (const [index, value] of emails.entries()) {
48+
new sns.Subscription(this, `SubscriptionEmail${index.toString().padStart(3, '0')}`, {
49+
topic,
50+
protocol: sns.SubscriptionProtocol.EMAIL,
51+
endpoint: value,
52+
});
4653
}
4754

4855
// Subscribe a HTTP endpoint (Slack Webhook) to the topic
49-
//topic.addSubscription(new subs.UrlSubscription('https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK'));
56+
// topic.addSubscription(new subs.UrlSubscription('https://hooks.slack.com/services/YOUR/SLACK/WEBHOOK'));
5057

5158
const initPipelineStateEmojisDefinition: sfn.Pass = new sfn.Pass(this, 'InitPipelineStateEmojiDefinition', {
5259
result: sfn.Result.fromObject([

0 commit comments

Comments
 (0)