in aws_emr_blog_v3/code/launch-cluster/crhelper.py [0:0]
def send(event, context, responseStatus, responseData, physicalResourceId,
logger, reason=None):
responseUrl = event["ResponseURL"]
logger.debug("CFN response URL: " + responseUrl)
responseBody = {}
responseBody["Status"] = responseStatus
msg = "See details in CloudWatch Log Stream: " + context.log_stream_name
if not reason:
responseBody["Reason"] = msg
else:
responseBody["Reason"] = str(reason)[0:255] + "... " + msg
responseBody["PhysicalResourceId"] = physicalResourceId or context.log_stream_name
responseBody["StackId"] = event["StackId"]
responseBody["RequestId"] = event["RequestId"]
responseBody["LogicalResourceId"] = event["LogicalResourceId"]
if responseData and responseData != {} and responseData != [] and isinstance(responseData, dict):
responseBody["Data"] = responseData
json_responseBody = json.dumps(responseBody)
logger.debug("Response body:\n" + json_responseBody)
headers = {
'content-type': '',
'content-length': str(len(json_responseBody))
}
try:
response = requests.put(responseUrl,
data=json_responseBody,
headers=headers)
logger.info("CloudFormation returned status code: " + response.reason)
except Exception as e:
logger.error("send(..) failed executing requests.put(..): " + str(e))
raise