首页 > 解决方案 > Boto3 SNS不一致行为发布短信

问题描述

我有一个在运行时发送短信的功能:

def txtUserValidationCode(countryCode, phoneNum, message):
    sns = boto3.client('sns')
    try:
        logger.info("Trying to send text")
        sns.publish(
            PhoneNumber="+" + countryCode + phoneNum,
            Message=message
        )
    except:
        logger.info("Text message failed")
    else:
        logger.info("Text message successful")

有时它有效,有时它超时,即使输入参数完全相同。使用 boto3 SNS 可以发送多少文本有限制吗?我只是尝试对电话号码和消息进行硬编码,以测试是否是我的输入导致发布方法关闭,但它仍然不起作用。

更令人困惑的是它没有抛出错误,只是超时。

更令人困惑的是,当我将相同的代码复制并粘贴到另一个函数中时,它工作正常。

有人对此有解释吗?我通读了 SNS 文档并没有找到任何可以解释这一点的东西。我在想也许我需要申请增加配额?

顺便说一句:lambda 具有管理员权限

UPDATE 函数刚刚成功,没有改变,15 分钟后再次测试。真的很想知道超时的原因。我应该增加我的 lambda 的超时时间吗?我还将默认类型的短信更改为事务性,因为我看到它们获得更高的优先级?也许这就是为什么?任何答案都有帮助

标签: amazon-web-servicesaws-lambdaamazon-sns

解决方案


我转到 SNS 控制台并将我的默认消息更改为事务性消息,这使其在 AWS 队列中具有更高的优先级。到目前为止,这一直有效。


推荐阅读