我正在尝试将我现有的iOS推送通知基础设施转移到亚马逊SNS移动推送.
我将所有令牌从本地数据库导出到SNS应用程序(使用CSV).现在我想向所有10,000个用户发送推送通知.我认为唯一的方法是创建一个主题并订阅该主题的所有用户,然后将消息发布到该主题.
有没有简单的方法可以将我导入系统的所有10,000个用户订阅到主题?
谢谢你的帮助!
push-notification amazon-web-services apple-push-notifications amazon-sns ios
我想使用boto3发布方法从AWS Lambda函数发送SMS消息,以通过SMS通知用户问题.我的lambda函数是用Python编写的,我使用的是boto3模块.我的lambda函数拥有SNS的完全权限.我有这个代码,
sns = boto3.client('sns')
sns.publish(
PhoneNumber = '+11234567890',
Message = 'Simple text message'
)
Run Code Online (Sandbox Code Playgroud)
根据boto3 文档,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'
}
}
)
Run Code Online (Sandbox Code Playgroud)
它需要一个"Message"参数和以下三个参数之一,如文档中所述:
TopicArn(字符串) - 要发布到的主题.
如果未指定TopicArn参数的值,则必须为PhoneNumber或TargetArn参数指定值.
TargetArn(string) - TopicArn或EndpointArn,但不是两者.
如果未指定TargetArn参数的值,则必须为PhoneNumber或TopicArn参数指定值.
PhoneNumber(字符串) - 要向其发送SMS消息的电话号码.使用E.164格式.
如果未指定PhoneNumber参数的值,则必须为TargetArn或TopicArn参数指定值.
执行代码时,将返回参数验证错误.它指出,
输入中的未知参数:"PhoneNumber",必须是以下之一:TopicArn,TargetArn,> Message,Subject,MessageStructure,MessageAttributes".
因此,文档似乎表明PhoneNumber是一个有效的参数,但是在使用时,会发生错误,并且错误的反馈表明PhoneNumber不是可能的参数.我怀疑我错过了一些明显而简单的东西,但可以使用一些帮助.
我知道还有其他途径可以发送短信,例如电子邮件网关和其他供应商提供的解决方案,如Twilio,但我想继续使用基于SNS的路线并了解我哪里出错了.
我正在尝试使用amazon AWS向手机发送短信.特别是,我正在使用SNS服务并陷入创建新订阅的过程中.
在在线教程中,他们看到了:

我怎么看这个?

对不起,我的截图在下拉菜单中无效,所以我用手机拍了一张贫民窟照片.
有任何想法吗?
我一直在评估发送移动推送通知的选项,并研究了微软与亚马逊中心产品的定价.我认为我必须错过计算,因为微软的报价是成本的20倍!有人可以指出我哪里出错了吗?
微软定价基于12个月的计划,每天的单位成本为3.29英镑.每个单元可以发送166,667条消息,我需要每天发送1.8米(每月大约54米).

我正在使用Amazon SNS和Amazon Cognito服务在iOS应用程序中实现推送通知.Cognito成功保存令牌,我的应用程序得到通知,一切正常,但有一件事.
现在,当仍处于开发阶段时,我需要手动将端点添加到SNS主题,因此所有订阅者都可以收到通知.当我将更新推送到App Store时,将会有数千个令牌添加.
我正在研究亚马逊AWS文档,但不知道是否可以在没有额外努力的情况下实现它.
我的问题:是否可以自动将端点订阅到仅包含Amazon服务的主题?
push-notification amazon-web-services amazon-sns ios amazon-cognito
我正在尝试为IOS创建SNS应用程序.上传.p12文件并输入密码后,我点击了"从文件加载凭据"按钮,但我总是收到以下错误消息:
"从文件加载Apple凭据时出错"
拜托,有人知道发生了什么吗?有什么问题?
如何将aws云监视警报连接到lambda函数调用?
我通过AWS CloudFormation模板以编程方式向我们创建的作为云形成堆栈一部分的ELB添加云监视警报.我希望将警报发送到lambda函数,该函数将消息发布到Slack.虽然警报有效,并且SNS配置对我来说似乎是正确的,但从不调用lambda函数.
lambda函数遵循以下示例:
http://inopinatus.org/2015/07/13/hook-aws-notifications-into-slack-with-a-lambda-function/
lambda函数工作,我可以通过aws控制台发送测试数据,从而发送一条消息发送给Slack.
使用看起来正确的云监控警报创建负载均衡器:
警报似乎配置为将警报发送到正确的SNS主题:
有一个SNS订阅该主题,lambda函数作为它的端点:
警报触发时会触发警报并将消息发送到正确的主题:
但是从不调用lambda函数:
但是,如果我在lambda函数上手动添加SNS主题作为"事件源",则会在警报触发和发布Slack消息时调用它.
我是否误解了如何将云监视报警连接到lambda函数?或者我缺少一个小细节?
如果这种方法不起作用,并且将lambda函数连接到云监视警报的唯一方法是将SNS主题添加为"事件源",通过AWS CloudFormation模板执行此操作的适当方法是什么?我没有看到修改现有资源的明显方法,例如固定的lambda函数.
这是我的CloudFormation模板:
"GenericSlackAlertSNSTopic" : {
"Type" : "AWS::SNS::Topic",
"Properties" : {
"Subscription" : [ {
"Endpoint" : "arn:aws:lambda:us-east-1:[...]:function:snsToSlack",
"Protocol" : "lambda"
} ]
}
},
"ELBNoTrafficAlarm": {
"Type": "AWS::CloudWatch::Alarm",
"Properties": {
"Namespace" : "AWS/ELB",
"AlarmDescription": "Alarm for no apparent traffic on an ELB.",
"AlarmActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"InsufficientDataActions": [{
"Ref": "GenericSlackAlertSNSTopic"
}],
"MetricName": "RequestCount",
"Statistic": "Sum",
"Dimensions" : [ {
"Name" : "LoadBalancerName",
"Value" …Run Code Online (Sandbox Code Playgroud) amazon-web-services amazon-sns aws-cloudformation amazon-cloudwatch aws-lambda
我们的应用程序现在有targetSdkVersion 26(Android 8),该应用程序使用FCM推送通知.
由于FCM文档规定我将FCM客户端库更新为版本11.2.0:
dependencies {
compile 'com.google.firebase:firebase-messaging:11.2.0'
}
Run Code Online (Sandbox Code Playgroud)
通过此FCM客户端库更新,FCM通知开始出现在Android设备上.很好,但是当应用程序处于后台时,它是处理FCM消息的系统,因此它使用名为"Miscellaneous"的默认Android通知通道,这不是我们想要的(我们在该列表中有其他通知通道和"其他"声音混乱) ).
正如FCM文档所述,有一种方法可以为FCM消息指定默认通知通道:
(可选)在应用程序组件中,元数据元素用于设置通知的默认图标,颜色和通知通道(Android O中的新增功能).只要传入的消息没有明确设置图标,颜色或notification_channel,Android就会使用这些值.
但是没有显示代码示例(样本仅显示图标和颜色).所以我只是通过在github上使用Firebase云消息传递快速入门中的一个示例来搜索:
<meta-data
android:name="com.google.firebase.messaging.default_notification_channel"
android:value="@string/default_notification_channel_id"/>
Run Code Online (Sandbox Code Playgroud)
但它不起作用 - FCM通知仍然出现在"杂项"频道中.我在日志中看到:
W/FirebaseMessaging:AndroidManifest中缺少默认通知通道元数据.将使用默认值.
当然,我试图重新安装该应用程序.还有问题.
好吧,理想情况下,应该有一些方法在发送消息时在后端指定通知通道.允许测试发送的FCM开发控制台现在在UI中有这样的选项:
它工作正常.然而,我们的后端使用Java Amazon SNS API,我不知道该API是否允许在发送消息时指定Android通知通道(因为它是一个新的Android功能,亚马逊需要时间来采用它).因此,设置默认通知通道AndroidManifest.xml现在是一种有效的解决方法,但它不起作用.
android amazon-sns firebase-cloud-messaging notification-channel
我正在设置 SNS,以便能够从 Lambda 向自己发送短信。我正在尝试将(美国)电话号码添加到 SNS Sandbox,但收到以下消息:
尝试将电话号码添加到 SMS 沙箱时发生错误。未添加电话号码。
错误代码:UserError - 错误消息:没有可发送的发起实体
这到底是什么意思?我该如何解决这个问题?我查了一下错误信息,没有发现类似的情况。
我正在使用带有APNS和GCM的AWS SNS开发推送通知的架构.我关注的模型是
这样,当我们必须向用户的所有设备发送通知时,我们需要publish使用用户调用该方法,topicArn并且其所有设备都应该获取消息.
但是,默认情况下,AWS的主题限制为100,000个.如果我们预计会有更多的用户(如100万或1000万)保持乐观,那么这种方法是否有任何解决方法?
我应该要求AWS提前提高限额吗?他们容易将限制增加到1亿这样的数字吗?是否有任何成本含义大部分都没有在开始的几个月内使用?