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

如何配置Amazon Connect的Invoke Lambda块传递来电号码并修正代码

解决Amazon Connect传递来电号码给Lambda生成客户ID的问题

一、Amazon Connect "Invoke AWS Lambda function" 块配置

  1. 配置Lambda IAM权限

    • 给Lambda的执行角色添加权限策略,允许Amazon Connect调用该函数:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Action": "lambda:InvokeFunction",
                  "Resource": "你的Lambda函数ARN"
              }
          ]
      }
      
    • 修改角色的信任关系,允许Connect服务调用:
      {
          "Version": "2012-10-17",
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": "connect.amazonaws.com"
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      
  2. 配置Invoke Lambda块参数

    • 在Connect流程中添加「Invoke AWS Lambda function」块,选择目标Lambda函数
    • 在「Input parameters」区域,添加键值对:
      • 键:callerPhoneNumber
      • 值:$.Details.ContactData.CustomerEndpoint.Address(这是Connect存储来电号码的固定路径)
    • 设置「Output variable name」(比如LambdaResult),后续流程可通过$.LambdaResult.CustomerID引用生成的客户ID

二、修正后的Lambda代码

之前的代码报错核心原因是参数路径错误:Amazon Connect传递的参数不会直接放在event根节点,而是嵌套在Details.Parameters下;另外两次调用datetime.now()可能导致日期时间不一致。修正后的代码如下:

import datetime

def lambda_handler(event, context):
    # 从Connect传递的参数中提取来电号码
    caller_phone_number = event['Details']['Parameters']['callerPhoneNumber']
    
    # 统一获取当前时间,避免两次调用now()产生时间差
    current_datetime = datetime.datetime.now()
    current_date = current_datetime.strftime('%Y%m%d')
    current_time = current_datetime.strftime('%H%M%S')
    
    # 可选:清理号码格式(比如移除国际区号前缀的+号)
    cleaned_phone = caller_phone_number.replace('+', '')
    
    # 拼接生成客户ID
    customer_id = f"{cleaned_phone}-{current_date}-{current_time}"
    
    return {
        'CustomerID': customer_id
    }

常见问题排查

  • 如果仍报错「KeyError」:检查Input parameters里的键名是否和Lambda代码中取的callerPhoneNumber完全一致,或者确认Connect传递的event结构是否正确(可在Lambda控制台查看测试事件)
  • 如果报错「Permission denied」:检查Lambda角色的信任关系和权限策略是否配置正确
  • 号码格式异常:来电号码可能包含+或其他特殊字符,可根据业务需求添加格式化逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 15:43:29