in lambda/facia-responder/src/facia-notifications.ts [26:59]
export async function notifyFaciaTool(
event: PublicationStatusEvent,
faciaPublicationStatusTopicArn: string,
faciaPublicationStatusRoleArn: string,
): Promise<void> {
const payload = JSON.stringify({ event } as PublicationStatusEventEnvelope);
console.log(
`Publishing publish event to SNS: ${payload} to ${faciaPublicationStatusTopicArn} via ${faciaPublicationStatusRoleArn}`,
);
const sns = new SNSClient({
region: 'eu-west-1',
credentials: fromTemporaryCredentials({
params: {
RoleArn: faciaPublicationStatusRoleArn,
RoleSessionName: 'recipes-backend-assume-role-access-for-sns',
},
}),
});
try {
const sendStatus = await sns.send(
new PublishCommand({
TopicArn: faciaPublicationStatusTopicArn,
Message: payload,
}),
);
console.log(`SNS status publish response: ${JSON.stringify(sendStatus)}`);
} catch (e) {
console.error(`Failed to publish to SNS: ${getErrorMessage(e)}`);
}
}