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

AWS SNS SMS在eu-west-2无法收验证码,eu-west-1正常求解决方案

AWS SNS eu-west-2区域沙箱验证码无法接收的可行修复方案

问题背景

在eu-west-2区域创建的SNS主题,添加SMS订阅时始终收不到沙箱验证码,CloudWatch日志显示消息已被运营商接受,但终端无接收;切换至eu-west-1区域则正常接收,工单及论坛求助无果。

修复方案

  • 强制指定发送者ID尝试触发正确路由
    英国号码默认不支持自定义发送者ID,但可尝试在发布验证消息时显式指定默认发送者ID,部分区域可能因路由规则需要该参数。用AWS CLI执行:

    aws sns publish --phone-number "+44XXXXXXXXXX" --message "Your verification code here" --sender-id "AWS" --region eu-west-2
    
  • 脱离沙箱使用正式SMS环境
    沙箱环境的路由策略可能存在区域特定问题,申请提升SMS配额进入正式环境:

    1. 进入AWS SNS控制台的SMS messaging页面
    2. 点击Request increase,填写用途、预计发送量等信息
    3. 审核通过后,正式环境的SMS路由可能绕过eu-west-2沙箱的异常节点
  • 用Lambda转发至第三方SMS服务(临时替代)
    若eu-west-2的SNS SMS持续异常,可通过Lambda将SNS消息转发到第三方服务(如Twilio)。示例Python Lambda代码:

    import requests
    
    def lambda_handler(event, context):
        sns_record = event['Records'][0]['Sns']
        message = sns_record['Message']
        phone_number = sns_record['Subject']  # 订阅时将号码设为主题Subject
        
        # 替换为你的Twilio账号信息
        twilio_account_sid = "YOUR_ACCOUNT_SID"
        twilio_auth_token = "YOUR_AUTH_TOKEN"
        twilio_from_number = "+1234567890"
        
        requests.post(
            f"https://api.twilio.com/2010-04-01/Accounts/{twilio_account_sid}/Messages.json",
            auth=(twilio_account_sid, twilio_auth_token),
            data={
                "From": twilio_from_number,
                "To": phone_number,
                "Body": message
            }
        )
        return {'statusCode': 200}
    

    将SNS主题的订阅端点设置为该Lambda函数,替代原生SMS订阅。

  • 重新提交AWS工单并提供精准诊断信息
    之前工单未解决可能是信息不足,重新提交时务必包含:

    • 多个无法接收号码的完整E.164格式(隐去中间四位)
    • CloudWatch日志中的完整messageId、timestamp及运营商信息
    • eu-west-1区域成功接收的对应日志对比
    • 明确说明区域切换即可正常接收,要求排查eu-west-2沙箱的SMS路由节点

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 10:05:09