2017-04-08 3 views
0

다른 함수에서 람다 함수를 호출하고 있으며 응답에 따라 다른 표준 동작을 취하고 싶습니다. 그러나 나는 예기치 않은 행동을하게 될 것입니다. 그것은 아마도 명백한 것이지만, 그것은 나 자신을 피하는 것입니다. 가장 간단한 예제를 통해 예제를 다시 만들었습니다. 어떤 도움이라도 대단히 감사 할 것입니다.Lambda Return Payload botocore.response.StreamingBody 객체가 출력되지만 변수가 비어 있습니다.

람다 기능은

def lambda_handler(event, context): 
    return 'Just a string' 

코드 람다 함수

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) 

답변

2

다음 코드는 문제를 해결을 호출한다. 분명히 나는 ​​streamingbody를 변수로 설정 한 다음 다른 변수로 읽어 들일 필요가있다. 참조 용으로 link을 사용했습니다.

def invoke_lambda(payload): 
    r = lambda_client.invoke(
     FunctionName='MyLambdaFunction', 
     InvocationType='RequestResponse', 
     Payload=bytes(payload) 
    ) 
    t = r['Payload'] 
    j = t.read() 
    print j 
관련 문제