I have been experimenting with lambda backed custom resources.Iam trying to trigger the Lambda function with Custom Resource. On Stack creation, Custom resource is hanging on CREATE_IN_PROGRESS, but Iam able to get the email and also when trying to delete the Stack, it stucking on DELETE_IN_PROGRESS.
Now I have five stacks hanging on DELETE_IN_PROGRESS. Where are the Custom Resources created?
"SendEmailNotification" : {
"Type": "AWS::Lambda::Function",
"Properties": {
"Handler": "index.handler",
"Role": { "Fn::GetAtt" : ["LambdaExecutionRole", "Arn"] },
"Code": {
"ZipFile": { "Fn::Join": ["", [
"var aws = require('aws-sdk');\n",
"var response = require('cfn-response');",
"var ses = new aws.SES({\n",
"region:'us-east-1'\n",
"});\n",
"exports.handler = function(event, context) {\n",
"console.log('Incoming: ', event);\n",
"var eParams = {\n",
"Destination: {\n" ,
{"Fn::Join" : ["",["ToAddresses: ['",{ "Ref" : "EmailId" },"']\n"]]},
"},\n",
"Message: {\n",
"Body: {\n",
"Text: {\n",
{"Fn::Join" : ["",["Data: '", { "Fn::ImportValue" : "DNSName" },"'\n"]]},
"}\n",
"},\n",
"Subject: {\n",
"Data: 'Route53 Hosted Zone'\n",
"}\n",
"},\n",
{"Fn::Join" : ["",["Source: '",{ "Ref" : "EmailId" },"'\n"]]},
"};\n",
"console.log('SENDING EMAIL');\n",
"var email = ses.sendEmail(eParams, function(err, data){\n",
"if(err) console.log(err);\n",
"else {\n",
"console.log('EMAIL SENT');\n",
"console.log(data);\n",
"console.log('EMAIL: ', email);\n",
"context.succeed(event);\n",
"response.send(event, context, response.SUCCESS);\n",
"}\n",
"});\n",
"};"
]]}
},
"Runtime": "nodejs6.10"
}
},
"TestResource": {
"Type": "Custom::TestResource",
"Properties": {
"ServiceToken": { "Fn::GetAtt" : ["SendEmailNotification","Arn"] }
}
}