无法从 aws lambda 函数传递全球文本消息

2024-01-10

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

现在,我已授予 lambda 函数管理员权限(通过将角色附加到管理员策略)。但是,它似乎仍然不起作用(没有将消息传递到我的手机)。我在执行该函数时没有遇到任何异常,并且我还获得了该短信的“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" 
}

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


自 2017 年 10 月起,Amazon SNS 支持 SMS 消息传递在以下地区 http://docs.aws.amazon.com/sns/latest/dg/sms_supported-countries.html:

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

发送短信的一种快速方法是使用AWS 命令​​行界面 (CLI) http://aws.amazon.com/cli/:

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

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

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

无法从 aws lambda 函数传递全球文本消息 的相关文章

随机推荐