无法从 Amazon Connect 调用 Python Lambda 函数
Not able to invoke Python Lambda function from Amazon Connect
我一直在尝试从 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 个函数会产生错误。
您的函数需要 return 一个具有多个 属性 的对象,以便 Amazon Connect 将其视为有效响应,因为它会尝试遍历响应对象的属性。在您的代码中,您只是 return 一个字符串,它作为正常输出的一部分打印良好,但不是 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
在联系流的后续块中访问响应,其中 return 'hello'.
我一直在尝试从 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 个函数会产生错误。
您的函数需要 return 一个具有多个 属性 的对象,以便 Amazon Connect 将其视为有效响应,因为它会尝试遍历响应对象的属性。在您的代码中,您只是 return 一个字符串,它作为正常输出的一部分打印良好,但不是 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
在联系流的后续块中访问响应,其中 return 'hello'.