2

我正在尝试从我在 AP-South-1(即孟买)地区托管的 AWS Lambda 函数发送 OTP。为此,我正在使用 SNS 的全球短信功能。由于“AP-South-1”地区不支持全球短信功能,我将 SNSClient 的地区端点发送为“APNortheast1”(即东京)地区,因为它支持全球短信。

现在,我已经赋予了我的 lambda 函数管理员权限(通过将角色与管理员策略附加)。但是,它似乎仍然不起作用(没有将消息传递到我的手机)。执行该函数时我没有遇到任何异常,并且我还获得了该 SMS 的“TransactionID”。在 SNS 控制台中,SMS 显示为失败。所以,我已经为它启用了 cloudwatch 日志。我得到的日志如下 -

{ 
   "notification": {
        "messageId": "8cba93de-b794-577d-99be-c1ba5d5d21dd",
        "timestamp": "2017-10-21 06:26:17.946"
   },
   "delivery": {
        "destination": "+91XXXXXXXXXX",
        "smsType": "Transactional",
        "providerResponse": "Internal error",
        "dwellTimeMs": 79 
   },
   "status": "FAILURE" 
}

现在,讽刺的是——这实际上是一个新帐户,我正在从另一个帐户(手动)迁移资源。在这个较旧的帐户中,我的设置完全相同,但它似乎可以正确地将消息传递到我的手机。供您参考,我的 Lambda 函数是用 .net 核心编写的,我正在尝试将 SMS 发送到印度手机号码。

4

1 回答 1

1

自 2017 年 10 月起,Amazon SNS在以下区域支持 SMS 消息传递:

  • 美国东部(弗吉尼亚北部)
  • 美国西部(俄勒冈)
  • 欧盟(爱尔兰)
  • 亚太地区(东京)
  • 亚太地区(新加坡)
  • 亚太地区(悉尼)

使用AWS 命令​​行界面 (CLI)可以快速发送 SMS :

aws sns publish --phone-number 9112345678 --message foo --region ap-southeast-2

使用 时失败ap-south-1,因为该地区不支持 SMS。

您的 Lambda 代码可以通过另一个区域发送消息,但您需要在不同的区域创建您的 SNS 客户端对象

于 2017-10-21T21:38:24.200 回答