Issue
I'm invoking a lambda function from another function and want to take a different action depending on the response, pretty standard stuff. However I get some unexpected behavior, it's probably something obvious, but it is eluding me. I've recreated my example in the simplest possible example any help would be much appreciated.
The lambda function
def lambda_handler(event, context):
return 'Just a string'
The code to call the lambda function
def invoke_lambda(payload):
r = lambda_client.invoke(
FunctionName='MyLambdaFunction',
InvocationType='RequestResponse',
Payload=bytes(payload)
)
p = r['Payload'].read()
print p #Prints an empty string
print(r['Payload'].read()) #Prints Just a string
invoke_lambda(payload)
Solution
The following code solves the problem. Apparently I need to set the streamingbody to a variable, then read it into another variable. I used this link for reference
def invoke_lambda(payload):
r = lambda_client.invoke(
FunctionName='MyLambdaFunction',
InvocationType='RequestResponse',
Payload=bytes(payload)
)
t = r['Payload']
j = t.read()
print j
Answered By - j-u-s-t-i-n
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.