UNPKG

aws-cdk-lib

Version:

Version 2 of the AWS Cloud Development Kit library

2 lines (1 loc) 1.34 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.handler=void 0;const aws_sdk_1=require("aws-sdk");async function handler(event){const resourceProps=event.ResourceProperties;if(event.RequestType!=="Create")return;const route53=new aws_sdk_1.Route53({apiVersion:"2013-04-01"}),existingRecord=(await route53.listResourceRecordSets({HostedZoneId:resourceProps.HostedZoneId,StartRecordName:resourceProps.RecordName,StartRecordType:resourceProps.RecordType}).promise()).ResourceRecordSets.find(r=>r.Name===resourceProps.RecordName&&r.Type===resourceProps.RecordType);if(!existingRecord)return;const changeResourceRecordSets=await route53.changeResourceRecordSets({HostedZoneId:resourceProps.HostedZoneId,ChangeBatch:{Changes:[{Action:"DELETE",ResourceRecordSet:removeUndefinedAndEmpty({Name:existingRecord.Name,Type:existingRecord.Type,TTL:existingRecord.TTL,AliasTarget:existingRecord.AliasTarget,ResourceRecords:existingRecord.ResourceRecords})}]}}).promise();return await route53.waitFor("resourceRecordSetsChanged",{Id:changeResourceRecordSets.ChangeInfo.Id}).promise(),{PhysicalResourceId:`${existingRecord.Name}-${existingRecord.Type}`}}exports.handler=handler;function removeUndefinedAndEmpty(obj){const ret={};for(const[k,v]of Object.entries(obj))v&&(!Array.isArray(v)||v.length!==0)&&(ret[k]=v);return ret}