Boto3 SNS不一致行为发布短信
Boto3 SNS inconsistent behavior publishing text message
我有一个功能可以在 运行:
时发送短信
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 可以发送多少文本有限制吗?我只是尝试对 phone 数字和消息进行硬编码,以测试是否是我的输入导致发布方法关闭,但它仍然不起作用。
更令人困惑的是它没有抛出错误,只是超时。
更令人困惑的是,当我将相同的代码复制并粘贴到另一个函数时,它工作正常。
有人对此有解释吗?我通读了 SNS 文档,但没有找到任何可以解释这一点的内容。我在想也许我需要申请增加配额?
顺便说一句:lambda 具有管理员权限
更新
功能刚刚成功,什么都没改变,15分钟后再次测试。真的很想知道超时的原因。我应该增加 lambda 的超时时间吗?我还将默认的短信类型更改为交易型,因为我看到它们具有更高的优先级?也许这是为什么?任何答案都有帮助
听起来您有一个与多个子网关联的 AWS Lambda 函数,其中一些子网是 public,一些是私有的。
首选是使用 不 与 VPC 关联的 AWS Lambda 函数。这将提供对 Internet 的直接访问,从而提供对 Amazon SNS 的直接访问。
但是,如果 AWS Lambda 函数与 VPC 相关联,请确保:
- Lambda 函数仅与私有子网
关联
- public 子网中有 NAT 网关或 NAT 实例
我转到 SNS 控制台并将我的默认消息更改为事务性消息,这使其在 AWS 队列中具有更高的优先级。到目前为止,这一直有效。
我有一个功能可以在 运行:
时发送短信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 可以发送多少文本有限制吗?我只是尝试对 phone 数字和消息进行硬编码,以测试是否是我的输入导致发布方法关闭,但它仍然不起作用。
更令人困惑的是它没有抛出错误,只是超时。
更令人困惑的是,当我将相同的代码复制并粘贴到另一个函数时,它工作正常。
有人对此有解释吗?我通读了 SNS 文档,但没有找到任何可以解释这一点的内容。我在想也许我需要申请增加配额?
顺便说一句:lambda 具有管理员权限
更新 功能刚刚成功,什么都没改变,15分钟后再次测试。真的很想知道超时的原因。我应该增加 lambda 的超时时间吗?我还将默认的短信类型更改为交易型,因为我看到它们具有更高的优先级?也许这是为什么?任何答案都有帮助
听起来您有一个与多个子网关联的 AWS Lambda 函数,其中一些子网是 public,一些是私有的。
首选是使用 不 与 VPC 关联的 AWS Lambda 函数。这将提供对 Internet 的直接访问,从而提供对 Amazon SNS 的直接访问。
但是,如果 AWS Lambda 函数与 VPC 相关联,请确保:
- Lambda 函数仅与私有子网 关联
- public 子网中有 NAT 网关或 NAT 实例
我转到 SNS 控制台并将我的默认消息更改为事务性消息,这使其在 AWS 队列中具有更高的优先级。到目前为止,这一直有效。