我正在尝试从我在 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 发送到印度手机号码。