INNER CODE UNIT · Go
handler
brexhq/substation · cmd/aws/lambda/autoscale/main.go:104
func handler(ctx context.Context, snsEvent events.SNSEvent) error {
payload := snsEvent.Records[0].SNS
topicArn := payload.TopicArn
message := payload.Message
alarmName := gjson.Get(message, "AlarmName").String()
triggerMetrics := gjson.Get(message, "Trigger.Metrics")
log.WithField("alarm", alarmName).Debug("Received autoscale notification.")
var stream string
for _, v := range triggerMetrics.Array() {
id := gjson.Get(v.String(), "Id").String()
if id == "m1" || id == "m2" {
stream = gjson.Get(v.String(), "MetricStat.Metric.Dimensions.0.value").String()
break
}
}