From d0bfa06bc3115bd4559cb1552ff65a1b75544a07 Mon Sep 17 00:00:00 2001 From: hoonoh <2078254+hoonoh@users.noreply.github.com> Date: Thu, 15 Dec 2022 20:17:52 +0900 Subject: [PATCH] fix(core): cross region ssm writer update skip ssm.deleteParameters if no parameters are to be deleted --- .../cross-region-ssm-writer-handler/index.ts | 10 +++++++--- .../cross-region-ssm-writer-handler.test.ts | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/packages/@aws-cdk/core/lib/custom-resource-provider/cross-region-export-providers/cross-region-ssm-writer-handler/index.ts b/packages/@aws-cdk/core/lib/custom-resource-provider/cross-region-export-providers/cross-region-ssm-writer-handler/index.ts index 84d0e4fe679b1..9f1f2d62d7b99 100644 --- a/packages/@aws-cdk/core/lib/custom-resource-provider/cross-region-export-providers/cross-region-ssm-writer-handler/index.ts +++ b/packages/@aws-cdk/core/lib/custom-resource-provider/cross-region-export-providers/cross-region-ssm-writer-handler/index.ts @@ -30,9 +30,13 @@ export async function handler(event: AWSLambda.CloudFormationCustomResourceEvent const removedExports = except(oldExports, exports); await throwIfAnyInUse(ssm, removedExports); // if the ones we are removing are not in use then delete them - await ssm.deleteParameters({ - Names: Object.keys(removedExports), - }).promise(); + // skip if no export names are to be deleted + const removedExportsNames = Object.keys(removedExports); + if (removedExportsNames.length > 0) { + await ssm.deleteParameters({ + Names: removedExportsNames, + }).promise(); + } // also throw an error if we are creating a new export that already exists for some reason await throwIfAnyInUse(ssm, newExports); diff --git a/packages/@aws-cdk/core/test/custom-resource-provider/cross-region-ssm-writer-handler.test.ts b/packages/@aws-cdk/core/test/custom-resource-provider/cross-region-ssm-writer-handler.test.ts index 17ee6b3c26a31..e5079668b3b8c 100644 --- a/packages/@aws-cdk/core/test/custom-resource-provider/cross-region-ssm-writer-handler.test.ts +++ b/packages/@aws-cdk/core/test/custom-resource-provider/cross-region-ssm-writer-handler.test.ts @@ -177,6 +177,7 @@ describe('cross-region-ssm-writer entrypoint', () => { }); expect(mockPutParameter).toHaveBeenCalledTimes(1); expect(mocklistTagsForResource).toHaveBeenCalledTimes(1); + expect(mockDeleteParameters).toHaveBeenCalledTimes(0); }); test('removed exports are deleted', async () => {