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

使用@aws-sdk/client-sns v3发送SMS收不到消息,但请求返回正常

AWS SDK v3 发送短信返回成功但收不到消息排查

之前用AWS SDK v2发送短信一切正常,切换到v3后,请求返回带MessageId的200响应,但手机收不到短信,怀疑遗漏了配置。操作步骤如下:

  1. 创建仅允许sns:Publish操作的IAM策略:
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "sns:Publish",
            "Resource": "*"
        }
    ]
}
  1. 将该策略关联到IAM用户,生成Access Key和Secret Access Key。

  2. 发送短信的JavaScript代码:

import { PublishCommand, SNSClient } from '@aws-sdk/client-sns';

export const sendSms = async () => {
  try {
    const client = new SNSClient({
      credentials: {
        accessKeyId: process.env.AWS_ACCESS_KEY as string,
        secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string
      }
    });

    const input = {
      PhoneNumber: "+16045181234",
      Message: "test message"
    };
    const command = new PublishCommand(input);
    const response = await client.send(command);

    console.log(new Date());
    console.log(response, 'response ');

    return;
  } catch (e: any) {
      console.log(e, 'SEND SMS');
  }
}
  1. 收到的响应内容:
{
  '$metadata': {
    httpStatusCode: 200,
    requestId: '6c3f80ea-3ff2-5c38-bda6-dd6e27661c74',
    extendedRequestId: undefined,
    cfId: undefined,
    attempts: 1,
    totalRetryDelay: 0
  },
  MessageId: 'a94988b1-ba63-5f5b-a647-d535a2f78f17'
}

排查建议

  • 显式指定区域:SDK v3默认区域可能和v2不一致,SNS短信服务依赖特定区域(如美国常用us-east-1,加拿大可选ca-central-1),初始化SNSClient时明确添加区域配置:
    const client = new SNSClient({
      credentials: { ... },
      region: 'us-east-1' // 替换为原v2使用的区域
    });
    
  • 验证号码有效性:确认目标号码是标准E.164格式,且号码本身未被运营商屏蔽、处于正常使用状态。
  • 检查SNS短信配额:登录AWS控制台查看SNS短信服务的日发送量、速率配额,确认是否超出限制;同时检查目标号码是否在AWS禁止发送列表中。
  • 查看交付状态详情:在AWS SNS控制台的短信模块,通过返回的MessageId查询具体交付状态,查看是否有运营商拒绝、号码无效等错误提示。
  • 确认IAM权限完整性:虽然策略允许sns:Publish,但检查是否有IAM权限边界、其他附加策略限制了操作;部分区域可能需要额外的权限配置。
  • 测试简化消息内容:避免包含敏感词或触发垃圾短信过滤的内容,尝试发送更简洁的测试文本。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.10 18:05:19