in TerraformScripts/sc_terraform_wrapper/response_poster.py [0:0]
def _post_response(self, status, arns=None, output_variables=None, state_file_location=None,
reason=''):
print('Posting {} response to {}'.format(status, self.request['ResponseURL']))
output_url = self.create_proxy_object()
if status == 'FAILED' and self.request['RequestType'] == 'Update':
# We ignore update-rollback request in the Lambda
reason += '. Note that rollback will not be performed'
response = {
'Status' : status,
'Reason' : reason + '. Terraform wrapper script output at: ' + output_url,
'PhysicalResourceId' : self.request['PhysicalResourceId'],
'StackId' : self.request['StackId'],
'RequestId' : self.request['RequestId'],
'LogicalResourceId' : self.request['LogicalResourceId'],
'Data': {
'ResourceArns': ",".join(arns) if arns else [],
'TerraformScriptOutputLocation': output_url,
'TerraformStateFileLocation' : state_file_location,
'DryRunId': self.request['ResourceProperties'].get('DryRunId', ''),
'Outputs': json.dumps(output_variables)
},
}
r = requests.put(self.request['ResponseURL'], data=json.dumps(response), headers={'Content-Type': ''})
if r.status_code != 200:
print('Post response to {} failed with exit code {} because {}.'.format(self.request['ResponseURL'], r.status_code, r.raise_for_status()))