You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

无法从Amazon Connect调用Python Lambda函数问题求助

解决Amazon Connect调用Python Lambda报错的问题

看起来你的问题核心出在Lambda返回的格式不符合Amazon Connect的要求——虽然CLI调用Lambda时直接返回字符串没问题,但Connect对Lambda的响应格式有严格的规范,而你的Node.js函数应该刚好符合了这个规范,所以能正常运行。

问题分析

你的Python Lambda目前直接返回了字符串'hello',但Amazon Connect期望Lambda返回一个JSON序列化的对象,而且这个对象需要包含Connect能解析的结构。当返回非JSON格式的内容时,Connect会判定调用失败,抛出你看到的The Lambda Function Returned An Error错误。

另外,你的代码里还有一个小隐患:当how_many_times不大于0时,函数会返回None,而返回None同样不符合Connect的格式要求,也会触发报错。

修改后的代码

把Lambda的返回改成符合要求的JSON结构,比如返回包含statusCode和自定义业务字段的字典(Lambda运行时会自动将字典序列化为JSON):

import os

def lambda_handler(event, context):
    what_to_print = 'hello'
    how_many_times = 1
    
    # 确保变量值有效
    if what_to_print and how_many_times > 0:
        for i in range(how_many_times):
            print(f"what_to_print: {what_to_print}.")
        # 返回符合Amazon Connect要求的JSON结构
        return {
            'statusCode': 200,
            'message': what_to_print
        }
    # 即使逻辑不满足,也要返回合法的响应
    return {
        'statusCode': 400,
        'message': 'Invalid input parameters'
    }

为什么这样改?

  1. JSON格式响应:Amazon Connect要求Lambda返回的是可被JSON解析的对象,返回字典的话,Lambda运行时会自动将其序列化为JSON字符串,Connect就能正确解析了。
  2. 明确的状态码:返回statusCode可以让Connect清楚区分调用成功(200)和失败(400)的场景,避免模糊的错误判定。
  3. 避免返回None:即使判断条件不满足,也要返回一个合法的响应结构,而不是None,否则同样会触发Connect的报错逻辑。

你可以测试修改后的Lambda,再通过Amazon Connect调用,应该就能正常工作了。

内容的提问来源于stack exchange,提问作者Gulshan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:05:26