Skip to content

Commit

Permalink
Correct load balancer logicalID name for target group alarms
Browse files Browse the repository at this point in the history
- Create integration test for HTTPCode_Target_5XX_Count metric
  • Loading branch information
direnakkoc committed Oct 4, 2022
1 parent 81cf80e commit 5816eb8
Show file tree
Hide file tree
Showing 3 changed files with 14 additions and 10 deletions.
13 changes: 7 additions & 6 deletions serverless-plugin/alarms-alb-target-group.js
Expand Up @@ -24,12 +24,12 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
for (const tgLogicalId of Object.keys(targetGroupResources)) {
const loadBalancerLogicalIds = findLoadBalancersForTargetGroup(tgLogicalId, cfTemplate)
for (const loadBalancerLogicalId of loadBalancerLogicalIds) {
const loadBalancerFullName = `\${${loadBalancerLogicalId}.LoadBalancerFullName}`
// const loadBalancerFullName = resolveLoadBalancerFullNameForSub(loadBalancerLogicalId)
if (albTargetAlarmConfig.HTTPCode_Target_5XX_Count && albTargetAlarmConfig.HTTPCode_Target_5XX_Count.enabled) {
const httpCodeTarget5XXCount = createHTTPCodeTarget5XXCountAlarm(
targetGroupResourceName,
targetGroupResource,
loadBalancerFullName,
loadBalancerLogicalId,
albTargetAlarmConfig.HTTPCode_Target_5XX_Count
)
cfTemplate.addResource(httpCodeTarget5XXCount.resourceName, httpCodeTarget5XXCount.resource)
Expand All @@ -38,7 +38,7 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
const unHealthyHostCount = createUnHealthyHostCountAlarm(
targetGroupResourceName,
targetGroupResource,
loadBalancerFullName,
loadBalancerLogicalId,
albTargetAlarmConfig.UnHealthyHostCount
)
cfTemplate.addResource(unHealthyHostCount.resourceName, unHealthyHostCount.resource)
Expand All @@ -47,7 +47,7 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
const lambdaInternalError = createLambdaInternalErrorAlarm(
targetGroupResourceName,
targetGroupResource,
loadBalancerFullName,
loadBalancerLogicalId,
albTargetAlarmConfig.LambdaInternalError
)
cfTemplate.addResource(lambdaInternalError.resourceName, lambdaInternalError.resource)
Expand All @@ -56,7 +56,7 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
const lambdaUserError = createLambdaUserErrorAlarm(
targetGroupResourceName,
targetGroupResource,
loadBalancerFullName,
loadBalancerLogicalId,
albTargetAlarmConfig.LambdaUserError
)
cfTemplate.addResource(lambdaUserError.resourceName, lambdaUserError.resource)
Expand All @@ -70,7 +70,7 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
alarmName,
alarmDescription,
targetGroupResourceName, // Logical ID of the CloudFormation Target Group Resource
loadBalancerFullName,
loadBalancerLogicalId,
comparisonOperator,
threshold,
metricName,
Expand All @@ -81,6 +81,7 @@ module.exports = function ALBTargetAlarms (albTargetAlarmConfig, context) {
treatMissingData
) {
const targetGroupFullName = { 'Fn::GetAtt': [targetGroupResourceName, 'TargetGroupFullName'] }
const loadBalancerFullName = { 'Fn::GetAtt': [loadBalancerLogicalId, 'LoadBalancerFullName'] }
const metricProperties = {
Dimensions: [{ Name: 'TargetGroup', Value: targetGroupFullName }, { Name: 'LoadBalancer', Value: loadBalancerFullName }],
MetricName: metricName,
Expand Down
3 changes: 1 addition & 2 deletions serverless-plugin/tests/alarms-alb-target-group.test.js
Expand Up @@ -74,8 +74,7 @@ test('ALB Target Group alarms are created', (t) => {
},
{
Name: 'LoadBalancer',
// eslint-disable-next-line no-template-curly-in-string
Value: '${alb.LoadBalancerFullName}'
Value: { 'Fn::GetAtt': ['alb', 'LoadBalancerFullName'] }
}
])
}
Expand Down
8 changes: 6 additions & 2 deletions serverless-test-project-alb/alb-handler.js
Expand Up @@ -9,9 +9,13 @@ async function handleALB (event, context) {
const body = JSON.parse(event.body || '{}')
console.log(body)
if (body.triggerError) {
throw new Error('Error triggered')
throw new Error('Error triggered by lambda')
} else if (event.triggerError) {
throw new Error('Error triggered by Lambda')
throw new Error('Error triggered by ALB')
} else if (event.sendHttpError) {
return {
statusCode: event.sendHttpError
}
} else {
console.log('Successful event delivery')
return {
Expand Down

0 comments on commit 5816eb8

Please sign in to comment.