sns = boto3.clIEnt('sns')sns.publish( PhoneNumber = '+11234567890',Message = 'Simple text message')
根据boto3 documentation,publish方法接受以下参数,
response = clIEnt.publish( topicArn='string',TargetArn='string',PhoneNumber='string',Message='string',Subject='string',MessageStructure='string',MessageAttributes={ 'string': { 'DataType': 'string','StringValue': 'string','BinaryValue': b'bytes' } })
它需要一个“消息”参数和以下三个参数之一,如文档中所述:
topicArn (string) — The topic you want to publish to.
If you don’t specify a value for the topicArn parameter,you must
specify a value for the PhoneNumber or TargetArn parameters.TargetArn (string) — Either topicArn or EndpointArn,but not both.
If you don’t specify a value for the TargetArn parameter,you must
specify a value for the PhoneNumber or topicArn parameters.PhoneNumber (string) — The phone number to which you want to deliver
an SMS message. Use E.164 format.If you don’t specify a value for the PhoneNumber parameter,you must
specify a value for the TargetArn or topicArn parameters.
当执行代码时,返回参数验证错误.它指出,
UnkNown parameter in input: “PhoneNumber”,must be one of: topicArn,
TargetArn,>Message,Subject,MessageStructure,MessageAttributes”.
所以文档似乎表明PhoneNumber是一个有效的参数,但是当使用时,会发生错误,错误的反馈表明PhoneNumber不是可能的参数.我怀疑我缺少一些明显简单的东西,但可以使用一些帮助.
我知道还有其他途径发送短信,如电子邮件网关和其他供应商提供的解决方案,如Twilio,但我想追求基于SNS的路由,并了解我在哪里出错.
解决方法 其实你的例子看起来不错这是我试过的import boto3sns = boto3.clIEnt('sns')number = '+17702233322'sns.publish(PhoneNumber = number,Message='example text message' )
像一个魅力一样工作我建议先使用配置有root帐户凭据的awscli,然后使用代码进行测试.一旦它的工作创建一个新用户,只需要你所需的权限,或者将其应用到实例角色.
您需要创建一个允许SNS:在资源上发布的策略:*(允许发送给所有人)或资源:’17702233322′(允许文本到特定的数字).
总结以上是内存溢出为你收集整理的python-2.7 – 如何在AWS Lambda函数中使用boto3通过AWS SNS发送短信?全部内容,希望文章能够帮你解决python-2.7 – 如何在AWS Lambda函数中使用boto3通过AWS SNS发送短信?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)