无法从aws lambda函数传递全球短信

时间:2017-10-21 06:54:18

标签: aws-lambda aws-sdk amazon-sns aws-regions

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

现在,我已经给了我的lambda函数管理员权限(通过附加管理员策略的角色)。但是,它似乎并没有起作用(不向我的手机传递信息)。执行函数时我没有遇到任何异常,我也得到了" 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发送到印度手机号码。

1 个答案:

答案 0 :(得分:1)

截至2017年10月,Amazon SNS支持短信in the following regions

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

发送短信的快捷方式是使用AWS Command-Line Interface (CLI)

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

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

您的Lambda代码可以通过其他地区发送消息,但您需要在不同的区域中创建您的SNS客户端对象。