UNPKG

@riddance/deploy

Version:

39 lines 8.1 kB
import { jsonResponse } from '@riddance/fetch'; import { awsFormRequest } from '../lite.js'; export async function syncTopics(context, functions, prefix, service, reflection, region, account) { await Promise.all(reflection.events.map(async (e) => { const fullName = `${prefix}-${e.topic}-${e.type}`; await createTopic(context, prefix, e.topic, e.type, fullName); const lambdaArn = functions.find(f => f.name === e.name)?.id ?? ''; await subscribe(context, region, account, prefix, service, lambdaArn, e.topic, e.type, fullName); })); } async function createTopic(context, prefix, name, type, fullName) { context.log.trace(`creating ${name} topic for ${type}`); await jsonResponse(awsFormRequest(context, 'POST', 'sns', '', new URLSearchParams({ Action: 'CreateTopic', Version: '2010-03-31', Name: fullName, 'Tags.member.1.Key': 'framework', 'Tags.member.1.Value': 'riddance', 'Tags.member.2.Key': 'environment', 'Tags.member.2.Value': prefix, })), 'Error creating topic.'); } async function subscribe(context, region, account, prefix, service, lambdaArn, name, type, fullName) { context.log.trace(`subscribing to ${name} ${type}`); await jsonResponse(awsFormRequest(context, 'POST', 'sns', '', new URLSearchParams({ Action: 'Subscribe', Version: '2010-03-31', TopicArn: `arn:aws:sns:${region}:${account}:${fullName}`, Protocol: 'lambda', Endpoint: lambdaArn, 'Tags.member.1.Key': 'framework', 'Tags.member.1.Value': 'riddance', 'Tags.member.2.Key': 'environment', 'Tags.member.2.Value': prefix, 'Tags.member.3.Key': 'service', 'Tags.member.3.Value': service, })), 'Error creating topic.'); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUU5QyxPQUFPLEVBQWdCLGNBQWMsRUFBRSxNQUFNLFlBQVksQ0FBQTtBQUV6RCxNQUFNLENBQUMsS0FBSyxVQUFVLFVBQVUsQ0FDNUIsT0FBZ0IsRUFDaEIsU0FBeUMsRUFDekMsTUFBYyxFQUNkLE9BQWUsRUFDZixVQUFzQixFQUN0QixNQUFjLEVBQ2QsT0FBZTtJQUVmLE1BQU0sT0FBTyxDQUFDLEdBQUcsQ0FDYixVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUMsQ0FBQyxFQUFDLEVBQUU7UUFDNUIsTUFBTSxRQUFRLEdBQUcsR0FBRyxNQUFNLElBQUksQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7UUFDakQsTUFBTSxXQUFXLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLENBQUE7UUFDN0QsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUE7UUFDbEUsTUFBTSxTQUFTLENBQ1gsT0FBTyxFQUNQLE1BQU0sRUFDTixPQUFPLEVBQ1AsTUFBTSxFQUNOLE9BQU8sRUFDUCxTQUFTLEVBQ1QsQ0FBQyxDQUFDLEtBQUssRUFDUCxDQUFDLENBQUMsSUFBSSxFQUNOLFFBQVEsQ0FDWCxDQUFBO0lBQ0wsQ0FBQyxDQUFDLENBQ0wsQ0FBQTtBQUNMLENBQUM7QUFFRCxLQUFLLFVBQVUsV0FBVyxDQUN0QixPQUFnQixFQUNoQixNQUFjLEVBQ2QsSUFBWSxFQUNaLElBQVksRUFDWixRQUFnQjtJQUVoQixPQUFPLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxZQUFZLElBQUksY0FBYyxJQUFJLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZELE1BQU0sWUFBWSxDQUNkLGNBQWMsQ0FDVixPQUFPLEVBQ1AsTUFBTSxFQUNOLEtBQUssRUFDTCxFQUFFLEVBQ0YsSUFBSSxlQUFlLENBQUM7UUFDaEIsTUFBTSxFQUFFLGFBQWE7UUFDckIsT0FBTyxFQUFFLFlBQVk7UUFDckIsSUFBSSxFQUFFLFFBQVE7UUFDZCxtQkFBbUIsRUFBRSxXQUFXO1FBQ2hDLHFCQUFxQixFQUFFLFVBQVU7UUFDakMsbUJBQW1CLEVBQUUsYUFBYTtRQUNsQyxxQkFBcUIsRUFBRSxNQUFNO0tBQ2hDLENBQUMsQ0FDTCxFQUNELHVCQUF1QixDQUMxQixDQUFBO0FBQ0wsQ0FBQztBQUVELEtBQUssVUFBVSxTQUFTLENBQ3BCLE9BQWdCLEVBQ2hCLE1BQWMsRUFDZCxPQUFlLEVBQ2YsTUFBYyxFQUNkLE9BQWUsRUFDZixTQUFpQixFQUNqQixJQUFZLEVBQ1osSUFBWSxFQUNaLFFBQWdCO0lBRWhCLE9BQU8sQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLGtCQUFrQixJQUFJLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNuRCxNQUFNLFlBQVksQ0FDZCxjQUFjLENBQ1YsT0FBTyxFQUNQLE1BQU0sRUFDTixLQUFLLEVBQ0wsRUFBRSxFQUNGLElBQUksZUFBZSxDQUFDO1FBQ2hCLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE9BQU8sRUFBRSxZQUFZO1FBQ3JCLFFBQVEsRUFBRSxlQUFlLE1BQU0sSUFBSSxPQUFPLElBQUksUUFBUSxFQUFFO1FBQ3hELFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFFBQVEsRUFBRSxTQUFTO1FBQ25CLG1CQUFtQixFQUFFLFdBQVc7UUFDaEMscUJBQXFCLEVBQUUsVUFBVTtRQUNqQyxtQkFBbUIsRUFBRSxhQUFhO1FBQ2xDLHFCQUFxQixFQUFFLE1BQU07UUFDN0IsbUJBQW1CLEVBQUUsU0FBUztRQUM5QixxQkFBcUIsRUFBRSxPQUFPO0tBQ2pDLENBQUMsQ0FDTCxFQUNELHVCQUF1QixDQUMxQixDQUFBO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpzb25SZXNwb25zZSB9IGZyb20gJ0ByaWRkYW5jZS9mZXRjaCdcbmltcG9ydCB0eXBlIHsgUmVmbGVjdGlvbiB9IGZyb20gJ0ByaWRkYW5jZS9ob3N0L3JlZmxlY3QnXG5pbXBvcnQgeyB0eXBlIENvbnRleHQsIGF3c0Zvcm1SZXF1ZXN0IH0gZnJvbSAnLi4vbGl0ZS5qcydcblxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHN5bmNUb3BpY3MoXG4gICAgY29udGV4dDogQ29udGV4dCxcbiAgICBmdW5jdGlvbnM6IHsgaWQ6IHN0cmluZzsgbmFtZTogc3RyaW5nIH1bXSxcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBzZXJ2aWNlOiBzdHJpbmcsXG4gICAgcmVmbGVjdGlvbjogUmVmbGVjdGlvbixcbiAgICByZWdpb246IHN0cmluZyxcbiAgICBhY2NvdW50OiBzdHJpbmcsXG4pIHtcbiAgICBhd2FpdCBQcm9taXNlLmFsbChcbiAgICAgICAgcmVmbGVjdGlvbi5ldmVudHMubWFwKGFzeW5jIGUgPT4ge1xuICAgICAgICAgICAgY29uc3QgZnVsbE5hbWUgPSBgJHtwcmVmaXh9LSR7ZS50b3BpY30tJHtlLnR5cGV9YFxuICAgICAgICAgICAgYXdhaXQgY3JlYXRlVG9waWMoY29udGV4dCwgcHJlZml4LCBlLnRvcGljLCBlLnR5cGUsIGZ1bGxOYW1lKVxuICAgICAgICAgICAgY29uc3QgbGFtYmRhQXJuID0gZnVuY3Rpb25zLmZpbmQoZiA9PiBmLm5hbWUgPT09IGUubmFtZSk/LmlkID8/ICcnXG4gICAgICAgICAgICBhd2FpdCBzdWJzY3JpYmUoXG4gICAgICAgICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICAgICAgICByZWdpb24sXG4gICAgICAgICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICAgICAgICBwcmVmaXgsXG4gICAgICAgICAgICAgICAgc2VydmljZSxcbiAgICAgICAgICAgICAgICBsYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgZS50b3BpYyxcbiAgICAgICAgICAgICAgICBlLnR5cGUsXG4gICAgICAgICAgICAgICAgZnVsbE5hbWUsXG4gICAgICAgICAgICApXG4gICAgICAgIH0pLFxuICAgIClcbn1cblxuYXN5bmMgZnVuY3Rpb24gY3JlYXRlVG9waWMoXG4gICAgY29udGV4dDogQ29udGV4dCxcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBuYW1lOiBzdHJpbmcsXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIGZ1bGxOYW1lOiBzdHJpbmcsXG4pIHtcbiAgICBjb250ZXh0LmxvZy50cmFjZShgY3JlYXRpbmcgJHtuYW1lfSB0b3BpYyBmb3IgJHt0eXBlfWApXG4gICAgYXdhaXQganNvblJlc3BvbnNlKFxuICAgICAgICBhd3NGb3JtUmVxdWVzdChcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAnUE9TVCcsXG4gICAgICAgICAgICAnc25zJyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnQ3JlYXRlVG9waWMnLFxuICAgICAgICAgICAgICAgIFZlcnNpb246ICcyMDEwLTAzLTMxJyxcbiAgICAgICAgICAgICAgICBOYW1lOiBmdWxsTmFtZSxcbiAgICAgICAgICAgICAgICAnVGFncy5tZW1iZXIuMS5LZXknOiAnZnJhbWV3b3JrJyxcbiAgICAgICAgICAgICAgICAnVGFncy5tZW1iZXIuMS5WYWx1ZSc6ICdyaWRkYW5jZScsXG4gICAgICAgICAgICAgICAgJ1RhZ3MubWVtYmVyLjIuS2V5JzogJ2Vudmlyb25tZW50JyxcbiAgICAgICAgICAgICAgICAnVGFncy5tZW1iZXIuMi5WYWx1ZSc6IHByZWZpeCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgICAnRXJyb3IgY3JlYXRpbmcgdG9waWMuJyxcbiAgICApXG59XG5cbmFzeW5jIGZ1bmN0aW9uIHN1YnNjcmliZShcbiAgICBjb250ZXh0OiBDb250ZXh0LFxuICAgIHJlZ2lvbjogc3RyaW5nLFxuICAgIGFjY291bnQ6IHN0cmluZyxcbiAgICBwcmVmaXg6IHN0cmluZyxcbiAgICBzZXJ2aWNlOiBzdHJpbmcsXG4gICAgbGFtYmRhQXJuOiBzdHJpbmcsXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHR5cGU6IHN0cmluZyxcbiAgICBmdWxsTmFtZTogc3RyaW5nLFxuKSB7XG4gICAgY29udGV4dC5sb2cudHJhY2UoYHN1YnNjcmliaW5nIHRvICR7bmFtZX0gJHt0eXBlfWApXG4gICAgYXdhaXQganNvblJlc3BvbnNlKFxuICAgICAgICBhd3NGb3JtUmVxdWVzdChcbiAgICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgICAnUE9TVCcsXG4gICAgICAgICAgICAnc25zJyxcbiAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICAgICAgQWN0aW9uOiAnU3Vic2NyaWJlJyxcbiAgICAgICAgICAgICAgICBWZXJzaW9uOiAnMjAxMC0wMy0zMScsXG4gICAgICAgICAgICAgICAgVG9waWNBcm46IGBhcm46YXdzOnNuczoke3JlZ2lvbn06JHthY2NvdW50fToke2Z1bGxOYW1lfWAsXG4gICAgICAgICAgICAgICAgUHJvdG9jb2w6ICdsYW1iZGEnLFxuICAgICAgICAgICAgICAgIEVuZHBvaW50OiBsYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgJ1RhZ3MubWVtYmVyLjEuS2V5JzogJ2ZyYW1ld29yaycsXG4gICAgICAgICAgICAgICAgJ1RhZ3MubWVtYmVyLjEuVmFsdWUnOiAncmlkZGFuY2UnLFxuICAgICAgICAgICAgICAgICdUYWdzLm1lbWJlci4yLktleSc6ICdlbnZpcm9ubWVudCcsXG4gICAgICAgICAgICAgICAgJ1RhZ3MubWVtYmVyLjIuVmFsdWUnOiBwcmVmaXgsXG4gICAgICAgICAgICAgICAgJ1RhZ3MubWVtYmVyLjMuS2V5JzogJ3NlcnZpY2UnLFxuICAgICAgICAgICAgICAgICdUYWdzLm1lbWJlci4zLlZhbHVlJzogc2VydmljZSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICAgICAnRXJyb3IgY3JlYXRpbmcgdG9waWMuJyxcbiAgICApXG59XG4iXX0=