Невозможно вызвать функцию Python Lambda из Amazon Connect.
Я пытался вызвать простую лямбда-функцию в Python из Amazon Connect, но не смог этого сделать. Ошибка: The Lambda Function Returned An Error.
Функция:
import os
def lambda_handler(event, context):
what_to_print = 'hello'
how_many_times =1
# make sure what_to_print and how_many_times values exist
if what_to_print and how_many_times > 0:
for i in range(0, how_many_times):
# formatted string literals are new in Python 3.6
print(f"what_to_print: {what_to_print}.")
return what_to_print
return None`
Теперь всякий раз, когда я пытаюсь вызвать эту функцию с помощью CLI aws lambda invoke --function-name get_info outputfile.txt
. Он работает успешно и выдает правильный вывод. Теперь странная часть из Amazon Connect. Я могу легко вызывать любые лямбда-функции node.js, только функции Python, выдающие ошибку.
1 ответ
Ваша функция должна вернуть объект с более чем одним или несколькими свойствами для Amazon Connect, чтобы считать его действительным ответом, поскольку она пытается выполнить итерацию по свойствам объекта ответа. В вашем коде вы просто возвращаете строку, которая печатается нормально как часть обычного вывода, но это не то, что Amazon Connect ожидает в ответе. Если вы измените свой код на что-то подобное, вы сможете использовать его с Amazon Connect.
import os
def lambda_handler(event, context):
what_to_print = 'hello'
how_many_times =1
resp = {}
# make sure what_to_print and how_many_times values exist
if what_to_print and how_many_times > 0:
for i in range(0, how_many_times):
# formatted string literals are new in Python 3.6
print(f"what_to_print: {what_to_print}.")
resp["what_to_print"] = what_to_print
return resp
Затем вы можете получить доступ к ответу в последующих блоках вашего потока контактов, используя $.External.what_to_print identifier
, которые возвращают "привет".