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

如何从API网关触发的Lambda函数中调用LexV2?

在API网关触发的Lambda中调用LexV2实现自定义平台集成

核心流程

API网关接收自定义平台的用户消息 → 触发Lambda函数 → Lambda调用LexV2 API处理对话 → 将Lex的响应返回给自定义平台。

1. 配置Lambda的IAM权限

给Lambda添加LexV2调用权限,示例IAM策略如下(替换占位符为你的实际资源信息):

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "lex:RecognizeText",
                "lex:StartConversation"
            ],
            "Resource": "arn:aws:lex:<你的AWS区域>:<AWS账号ID>:bot/<BotID>/bot-alias/<BotAliasID>"
        }
    ]
}

2. Lambda函数代码实现(Python示例)

以下代码处理API网关的JSON请求,调用LexV2并返回响应:

import boto3
import json

# 初始化LexV2运行时客户端
lex_client = boto3.client('lexv2-runtime')

def lambda_handler(event, context):
    # 解析API网关传入的用户请求
    request_body = json.loads(event['body'])
    user_id = request_body['user_id']  # 用用户唯一ID维持会话上下文
    user_message = request_body['message']

    try:
        # 调用LexV2的文本识别API
        lex_response = lex_client.recognize_text(
            botId='<你的Bot ID>',
            botAliasId='<你的Bot Alias ID>',
            localeId='<区域ID,如zh_CN>',
            sessionId=user_id,
            text=user_message
        )

        # 提取Lex返回的第一条回复消息
        reply_content = lex_response['messages'][0]['content']

        # 返回格式化响应给API网关
        return {
            'statusCode': 200,
            'headers': {'Content-Type': 'application/json'},
            'body': json.dumps({'reply': reply_content})
        }
    except Exception as e:
        return {
            'statusCode': 500,
            'body': json.dumps({'error': str(e)})
        }

3. API网关配置要点

  • 创建POST方法,集成目标选择你的Lambda函数。
  • 配置请求映射模板(如需),确保JSON请求能正确传递到Lambda。
  • 若自定义平台是前端应用,开启CORS支持。

4. 自定义平台对接示例

自定义平台只需向API网关端点发送POST请求,示例curl命令:

curl -X POST https://<你的API网关ID>.execute-api.<AWS区域>.amazonaws.com/prod/lex-proxy \
  -H "Content-Type: application/json" \
  -d '{"user_id": "user_001", "message": "我想查询我的订单"}'

关键注意事项

  • 会话维持:用用户唯一ID作为sessionId,Lex会自动保留多轮对话的上下文状态。
  • 错误处理:捕获Lex调用异常(如Bot不存在、会话超时),返回友好提示给自定义平台。
  • 语音支持:若需处理语音消息,改用recognize_utteranceAPI,传递音频二进制数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:16:03