我一直在尝试从Amazon Connect调用Python中的简单lambda函数,但却无法这样做。
错误: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 lambda函数,只有Python函数会产生错误。
答案 0 :(得分: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
访问联系流的后续块中的响应,然后返回“hello”。