| 88 | }; |
| 89 | |
| 90 | var handleCodeDeploy = function(event, context) { |
| 91 | var subject = "AWS CodeDeploy Notification"; |
| 92 | var timestamp = (new Date(event.Records[0].Sns.Timestamp)).getTime()/1000; |
| 93 | var snsSubject = event.Records[0].Sns.Subject; |
| 94 | var message; |
| 95 | var fields = []; |
| 96 | var color = "warning"; |
| 97 | |
| 98 | try { |
| 99 | message = JSON.parse(event.Records[0].Sns.Message); |
| 100 | |
| 101 | if(message.status === "SUCCEEDED"){ |
| 102 | color = "good"; |
| 103 | } else if(message.status === "FAILED"){ |
| 104 | color = "danger"; |
| 105 | } |
| 106 | fields.push({ "title": "Message", "value": snsSubject, "short": false }); |
| 107 | fields.push({ "title": "Deployment Group", "value": message.deploymentGroupName, "short": true }); |
| 108 | fields.push({ "title": "Application", "value": message.applicationName, "short": true }); |
| 109 | fields.push({ |
| 110 | "title": "Status Link", |
| 111 | "value": "https://console.aws.amazon.com/codedeploy/home?region=" + message.region + "#/deployments/" + message.deploymentId, |
| 112 | "short": false |
| 113 | }); |
| 114 | } |
| 115 | catch(e) { |
| 116 | color = "good"; |
| 117 | message = event.Records[0].Sns.Message; |
| 118 | fields.push({ "title": "Message", "value": snsSubject, "short": false }); |
| 119 | fields.push({ "title": "Detail", "value": message, "short": false }); |
| 120 | } |
| 121 | |
| 122 | |
| 123 | var slackMessage = { |
| 124 | text: "*" + subject + "*", |
| 125 | attachments: [ |
| 126 | { |
| 127 | "color": color, |
| 128 | "fields": fields, |
| 129 | "ts": timestamp |
| 130 | } |
| 131 | ] |
| 132 | }; |
| 133 | |
| 134 | return _.merge(slackMessage, baseSlackMessage); |
| 135 | }; |
| 136 | |
| 137 | var handleCodePipeline = function(event, context) { |
| 138 | var subject = "AWS CodePipeline Notification"; |