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

在AWS Cognito中何处定义短信服务的Entity ID与Template ID

向印度用户发送AWS Cognito验证短信的Entity ID与Template ID配置方法

前提准备(在AWS SNS中完成)

  • 获取Entity ID:进入SNS控制台的「短信偏好设置」,针对印度(IN)地区提交实体信息审核,审核通过后获取专属的Entity ID。
  • 创建并获取Template ID:在SNS控制台的「短信模板」中,创建符合印度TRAI规范的验证类短信模板(需包含验证码占位符),提交审核通过后得到Template ID。

在AWS Cognito中配置参数(推荐方式)

由于Cognito默认发送短信不会自动携带印度合规所需的Entity ID和Template ID,需通过自定义消息Lambda触发器实现合规发送:

  1. 创建Lambda函数,示例代码(Node.js)如下:
const AWS = require('aws-sdk');
const sns = new AWS.SNS({ region: '你的AWS区域' });

exports.handler = async (event) => {
  // 覆盖注册、重发验证码、找回密码等场景的短信发送逻辑
  const validTriggers = ['CustomMessage_SignUp', 'CustomMessage_ResendCode', 'CustomMessage_ForgotPassword'];
  if (validTriggers.includes(event.triggerSource)) {
    const publishParams = {
      PhoneNumber: event.request.userAttributes.phone_number,
      Message: event.request.codeParameter,
      MessageAttributes: {
        'AWS.SNS.SMS.EntityId': {
          DataType: 'String',
          StringValue: '你的Entity ID'
        },
        'AWS.SNS.SMS.TemplateId': {
          DataType: 'String',
          StringValue: '你的Template ID'
        }
      }
    };

    await sns.publish(publishParams).promise();
    // 告知Cognito无需发送默认短信
    event.response.smsMessage = '';
  }
  return event;
};
  1. 为该Lambda函数配置SNS发送短信的权限。
  2. 进入Cognito用户池的「触发器」配置页,将该Lambda关联到「自定义消息」触发器上。

注意事项

  • 确保Lambda中发送的验证码格式与SNS审核通过的模板完全匹配,否则短信会被印度运营商拦截。
  • Entity ID和Template ID仅适用于印度地区的短信发送,不可跨区域复用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 08:09:18