无法从Amazon Connect调用Python Lambda函数

时间:2018-05-30 02:50:35

标签: python-3.x amazon-web-services aws-lambda 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函数会产生错误。

1 个答案:

答案 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”。