in packages/app/src/cloudwatch.ts [34:64]
export async function subscribeGroups(
cloudwatchLogs: CloudWatchLogs,
groups: LogGroup[],
filterName: string,
targetLambda: string,
): Promise<void> {
await Promise.all(
groups.map(async (group) => {
const subscriptions = await getSubscriptions(
cloudwatchLogs,
group.logGroupName!,
filterName,
);
const subscriptionExists = subscriptions.some(
(sub) =>
sub.filterName === filterName && sub.destinationArn === targetLambda,
);
if (!subscriptionExists) {
console.log(
`Adding subscription for ${group.logGroupName!} with name ${filterName}`,
);
await putSubscription(
cloudwatchLogs,
group.logGroupName!,
filterName,
targetLambda,
);
}
}),
);
}