无法从aws lambda函数传递全球文本消息
我试图从我在AP-South-1(即孟买)地区托管的AWS Lambda函数发送OTP。我正在使用SNS的全球文本消息功能。由于“AP-South-1”地区不支持全球短信功能,因此我将SNSClient的地区端点作为“APNortheast1”(即东京)地区发送,因为它支持全球文本消息。无法从aws lambda函数传递全球文本消息
现在,我已经给出了我的lambda函数管理员权限(通过将角色附加到管理员策略)。但是,它仍然没有工作(没有把信息传递给我的手机)。我在执行该函数时没有遇到任何异常,而且我也获取了该SMS的“TransactionID”。在SNS控制台中,短信显示为失败。所以,我已经启用了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"
}
现在,这里是irony-这实际上是我从其他帐户迁移(手动)的资源的新帐户。在这个较旧的帐户中,我拥有完全相同的设置,但它似乎正在向我的移动设备正确传达信息。为了您的信息,我的Lambda函数被写入.net核心,我正尝试将短信发送到印度手机号码。
截至2017年10月,亚马逊SNS支持SMS短信in the following regions:
- 美国东(N.弗吉尼亚州)
- 美国西部(俄勒冈州)
- 欧盟(爱尔兰)
- 亚太地区(东京)
- 亚太区(新加坡)
- 亚太地区(悉尼)
一个快速的方法来发送短信与AWS Command-Line Interface (CLI):
aws sns publish --phone-number 9112345678 --message foo --region ap-southeast-2
使用ap-south-1
时,因为短信是不是在该地区支持此失败。
您的Lambda代码可以通过其他区域发送邮件,但您需要在不同区域中创建您的SNS客户端对象。
用户尝试以这种方式发送消息的小贴示:确保将“aws”cli更新为“--phone-number”选项(相对而言)新的(我运行版本1.10.34没有它)。 'aws'升级说明[here](http://docs.aws.amazon.com/cli/latest/userguide/installing.html)。短版本:'pip install awscli --upgrade --user' –
尽管错误消息并不表明这是问题,但您是否超过了新帐户对SMS的支出限制?您是否尝试过直接从SNS控制台发送消息?您是否在其他地区尝试过SNS控制台,例如us-east-1? –
Hello @ Michael-sqlbot我试图直接在“APNortheast1”区域从控制台发送短信。但它甚至没有从控制台传送过来。这个经常账户是非常新的,所以它没有办法超过支出限额。但是现在当我尝试使用“USWest2”时,它可以在控制台和代码中使用。但它不适用于任何亚太地区。这种解决了我的问题。但是,不知道为什么它不在美联社地区工作,让我感到不舒服的代码生产。请让我知道,如果你有你的想法。 – Sudip
如果它从一个地区而不是另一个地区开展工作,那表明您所使用的地区存在问题,AWS支持需要注意,因此您可能需要在[官方论坛](https:/ /forums.aws.amazon.com/forum.jspa?forumID=72),或者如果您有支持协议,请打开支持案例。无论哪种方式,捕获日志,并包括通过和失败的消息ID,以便支持可以找到特定的事件。另请注意,除非您采取措施增加帐户,否则您的帐户的默认支出限额仅为1美元。它仍然可能与此有关。 –