Лямбда-функция AWS добавляет символы в ответ - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть 2 лямбда-функции [A и B].Функция A выполняет вычисления и возвращает 2 строки.Обратите внимание, что я также попытался вернуть одну строку.Когда функция вызывается одна, возвращаемая строка является правильной ожидаемой строкой.

Если я вызываю функцию A внутри функции B, возвращаемая строка является правильной, но с символами, добавленными к каждой стороне.

Функция A1 (возвращается две строки):

def handler(event, context):

    strings = {
           "first_string": "This is the first string",
           "second_string": "This is the second string"
    }

    return strings

Функция A2 (возвращается одна строка):

def handler(event, context):

    string = "This is a string"

    return string

Вызов A1 в другой лямбда-функции:

return_strings = functionA1(event, context)
print(return_strings[0])
print(return_strings[1])

>>> 341 #expected This is the first string
>>> 8 #expected This is the second string

Вызов A2 в другой лямбда-функции:

return functionA2(event, context)

>>> b'\"This is a string\"' #expected This is a string

Есть идеи, что может быть закодировано в возвращениях - это связано с вызовом из другой лямбда-функции?Вызов A1 / A2 сам по себе дает ожидаемые результаты.

Спасибо!

1 Ответ

0 голосов
/ 26 сентября 2018

Нашел проблему!Перед чтением ответа JSON необходимо декодирование:

load = json.loads(response['Payload'].read().decode("utf-8"))
...