我正在尝试从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发送到印度手机号码。
答案 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客户端对象。