Skip to content

Commit ff9f21e

Browse files
committed
Fix deployment group tagging
1 parent 349ec5c commit ff9f21e

2 files changed

Lines changed: 21 additions & 16 deletions

File tree

packages/cdk-blue-green-container-deployment/src/ecs-deployment-group.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ export class EcsDeploymentGroup extends Resource implements IEcsDeploymentGroup,
125125
'codeDeploy:UpdateDeploymentGroup',
126126
'codeDeploy:DeleteDeploymentGroup',
127127
'codeDeploy:TagResource',
128+
'codeDeploy:UntagResource',
128129
],
129130
resources: ['*'],
130131
}),

packages/cdk-blue-green-container-deployment/src/lambdas/ecs-deployment-group/index.ts

Lines changed: 20 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -157,22 +157,26 @@ export const handleUpdate: OnUpdateHandler = async (event): Promise<ResourceHand
157157
})
158158
.promise();
159159

160-
const newTagKeys: string[] = newProps.tags.map((t: any) => t.Key);
161-
const removableTagKeys: string[] = oldProps.tags.map((t: any) => t.Key).filter((t) => !newTagKeys.includes(t));
162-
163-
await codeDeploy
164-
.untagResource({
165-
ResourceArn: newProps.arnForDeploymentGroup,
166-
TagKeys: removableTagKeys,
167-
})
168-
.promise();
169-
170-
await codeDeploy
171-
.tagResource({
172-
ResourceArn: newProps.arnForDeploymentGroup,
173-
Tags: newProps.tags,
174-
})
175-
.promise();
160+
const newTagKeys: string[] = (newProps.tags || []).map((t: any) => t.Key);
161+
const removableTagKeys: string[] = (oldProps.tags || []).map((t: any) => t.Key).filter((t) => !newTagKeys.includes(t));
162+
163+
if (removableTagKeys.length > 0) {
164+
await codeDeploy
165+
.untagResource({
166+
ResourceArn: newProps.arnForDeploymentGroup,
167+
TagKeys: removableTagKeys,
168+
})
169+
.promise();
170+
}
171+
172+
if (newProps.tags.length > 0) {
173+
await codeDeploy
174+
.tagResource({
175+
ResourceArn: newProps.arnForDeploymentGroup,
176+
Tags: newProps.tags,
177+
})
178+
.promise();
179+
}
176180

177181
return {
178182
physicalResourceId: newProps.deploymentGroupName,

0 commit comments

Comments
 (0)