Here is the raw output from examining the Python LambdaContext context object in a AWS Lambda function when called from a CloudFormation stack. More information on the context object can be found here : http://docs.aws.amazon.com/lambda/latest/dg/python-context-object.html
<__main__.LambdaContext object at 0x7fd706780710>
{
'aws_request_id': 'a3de505e-f16b-42f4-b3e6-bcd2e4a73903',
'log_stream_name': '2015/10/26/[$LATEST]c71058d852474b9895a0f221f73402ad',
'invoked_function_arn': 'arn:aws:lambda:us-west-2:123456789012:function:ExampleCloudFormationStackName-ExampleLambdaFunctionResourceName-AULC3LB8Q02F',
'client_context': None,
'log_group_name': '/aws/lambda/ExampleCloudFormationStackName-ExampleLambdaFunctionResourceName-AULC3LB8Q02F',
'function_name': 'ExampleCloudFormationStackName-ExampleLambdaFunctionResourceName-AULC3LB8Q02F',
'function_version': '$LATEST',
'identity': <__main__.CognitoIdentity object at 0x7fd7042a2b90>,
'memory_limit_in_mb': '128'
}
[
'__class__',
'__delattr__',
'__dict__',
'__doc__',
'__format__',
'__getattribute__',
'__hash__',
'__init__',
'__module__',
'__new__',
'__reduce__',
'__reduce_ex__',
'__repr__',
'__setattr__',
'__sizeof__',
'__str__',
'__subclasshook__',
'__weakref__',
'aws_request_id',
'client_context',
'function_name',
'function_version',
'get_remaining_time_in_millis',
'identity',
'invoked_function_arn',
'log',
'log_group_name',
'log_stream_name',
'memory_limit_in_mb'
]
The Python runtime does not have the equivalent of a context.succeed(), context.done() or context.fail().
In order to achieve the same thing, merely return from the handler function to succeed
or raise an exception to fail
def lambda_handler(event, context):
if event['variable_name'] == 1:
return {
'message' : 'We are done'
}
else:
raise Exception('Sending failure')
@NovemberOscar points out this code which shows what AWS sees on their side for the Python context
Just found this, but for anyone else looking, AWS Lambda's Python runtime does not have a succeed() capability. I'm not sure why of the disparity between the two runtimes, but a successful return (whether controlled exceptions via a catch block or normal execution) is what tells Lambda to succeed the invocation.