in source/cfn-global-table/cfnresponse.py [0:0]
def send(event, context, logLevel, responseStatus, responseData, failureReason=None, physicalResourceId=None):
log_level = logLevel
logger = logging.getLogger()
log_handler = logger.handlers[0]
if log_level == 30:
log_handler.setFormatter(logging.Formatter("%(message)s"))
else:
log_handler.setFormatter(logging.Formatter("[%(levelname)s]: %(message)s"))
logger.setLevel(log_level)
responseUrl = event['ResponseURL']
responseBody = {}
responseBody['Status'] = responseStatus
responseBody['Reason'] = failureReason or 'See the details in CloudWatch Log Stream: ' + context.log_stream_name
responseBody['PhysicalResourceId'] = physicalResourceId or context.log_stream_name
responseBody['StackId'] = event['StackId']
responseBody['RequestId'] = event['RequestId']
responseBody['LogicalResourceId'] = event['LogicalResourceId']
responseBody['Data'] = responseData
json_responseBody = json.dumps(responseBody)
logger.info("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.warning("Status code: " + response.reason)
except Exception as e:
logger.error("send(..) failed executing requests.put(..): " + str(e))