标签: amazon-sns

亚马逊SNS移动推送 - 如何批量订阅端点到主题?

我正在尝试将我现有的iOS推送通知基础设施转移到亚马逊SNS移动推送.

我将所有令牌从本地数据库导出到SNS应用程序(使用CSV).现在我想向所有10,000个用户发送推送通知.我认为唯一的方法是创建一个主题并订阅该主题的所有用户,然后将消息发布到该主题.

有没有简单的方法可以将我导入系统的所有10,000个用户订阅到主题?

谢谢你的帮助!

push-notification amazon-web-services apple-push-notifications amazon-sns ios

14
推荐指数
1
解决办法
1万
查看次数

如何在AWS Lambda函数中使用boto3通过AWS SNS发送SMS消息?

我想使用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的路线并了解我哪里出错了.

sms amazon-sns python-2.7 boto3 aws-lambda

14
推荐指数
1
解决办法
1万
查看次数

amazon aws sns,sms选项不可用?

我正在尝试使用amazon AWS向手机发送短信.特别是,我正在使用SNS服务并陷入创建新订阅的过程中.

在在线教程中,他们看到了: 下拉菜单中提供短信

我怎么看这个? 下拉菜单中没有短信

对不起,我的截图在下拉菜单中无效,所以我用手机拍了一张贫民窟照片.

有任何想法吗?

sms amazon-web-services amazon-sns

13
推荐指数
2
解决办法
5965
查看次数

Azure通知中心与Amazon SNS的成本

我一直在评估发送移动推送通知的选项,并研究了微软与亚马逊中心产品的定价.我认为我必须错过计算,因为微软的报价是成本的20倍!有人可以指出我哪里出错了吗?

微软定价基于12个月的计划,每天的单位成本为3.29英镑.每个单元可以发送166,667条消息,我需要每天发送1.8米(每月大约54米).

在此输入图像描述

azure amazon-web-services amazon-sns azure-notificationhub

13
推荐指数
1
解决办法
9779
查看次数

AMAZON AWS如何订阅SNS主题的端点?

我正在使用Amazon SNS和Amazon Cognito服务在iOS应用程序中实现推送通知.Cognito成功保存令牌,我的应用程序得到通知,一切正常,但有一件事.

现在,当仍处于开发阶段时,我需要手动将端点添加到SNS主题,因此所有订阅者都可以收到通知.当我将更新推送到App Store时,将会有数千个令牌添加.

我正在研究亚马逊AWS文档,但不知道是否可以在没有额外努力的情况下实现它.

我的问题:是否可以自动将端点订阅到包含Amazon服务的主题?

push-notification amazon-web-services amazon-sns ios amazon-cognito

13
推荐指数
1
解决办法
8474
查看次数

Amazon SNS For Apple - 从文件加载Apple凭据时出错

我正在尝试为IOS创建SNS应用程序.上传.p12文件并输入密码后,我点击了"从文件加载凭据"按钮,但我总是收到以下错误消息:

"从文件加载Apple凭据时出错"

拜托,有人知道发生了什么吗?有什么问题?

amazon-web-services amazon-sns ios

13
推荐指数
1
解决办法
2475
查看次数

如何将cloudwatch警报连接到lambda函数

如何将aws云监视警报连接到lambda函数调用?

我通过AWS CloudFormation模板以编程方式向我们创建的作为云形成堆栈一部分的ELB添加云监视警报.我希望将警报发送到lambda函数,该函数将消息发布到Slack.虽然警报有效,并且SNS配置对我来说似乎是正确的,但从不调用lambda函数.

lambda函数遵循以下示例:

https://medium.com/cohealo-engineering/how-set-up-a-slack-channel-to-be-an-aws-sns-subscriber-63b4d57ad3ea#.x2j9apedu

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

13
推荐指数
1
解决办法
1万
查看次数

如何在Android 8中为FCM推送消息指定Android通知通道

我们的应用程序现在有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

13
推荐指数
3
解决办法
3万
查看次数

为什么我会收到“没有可发送的发起实体”错误?

我正在设置 SNS,以便能够从 Lambda 向自己发送短信。我正在尝试将(美国)电话号码添加到 SNS Sandbox,但收到以下消息:

尝试将电话号码添加到 SMS 沙箱时发生错误。未添加电话号码。

错误代码:UserError - 错误消息:没有可发送的发起实体

这到底是什么意思?我该如何解决这个问题?我查了一下错误信息,没有发现类似的情况。

amazon-web-services amazon-sns

13
推荐指数
1
解决办法
8725
查看次数

针对100,000个主题限制的AWS SNS解决方法

我正在使用带有APNS和GCM的AWS SNS开发推送通知的架构.我关注的模型是

  • 每个用户(非设备)将具有与其对应的SNS主题
  • 每个用户可以拥有多个设备
  • 为每个设备创建平台应用程序端点
  • 将平台应用程序端点订阅到属于设备用户的主题

这样,当我们必须向用户的所有设备发送通知时,我们需要publish使用用户调用该方法,topicArn并且其所有设备都应该获取消息.

但是,默认情况下,AWS的主题限制为100,000个.如果我们预计会有更多的用户(如100万或1000万)保持乐观,那么这种方法是否有任何解决方法?

我应该要求AWS提前提高限额吗?他们容易将限制增加到1亿这样的数字吗?是否有任何成本含义大部分都没有在开始的几个月内使用?

amazon-web-services amazon-sns

12
推荐指数
2
解决办法
3560
查看次数