in aws/solutions/PrefixListResource/FunctionCode/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 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 'NONE'
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