标签: amazon-sns

在Android上推送通知:Google GCM与Amazon SNS?

我的Android应用程序需要简单的推送通知才能获知服务器上新数据的外观.Android提供的Google Cloud Messaging(GCM)似乎很合适.

但是,运行速度低于Android 4.0.4的设备需要在手机上显示一个Google帐户(截至2012年10月1日的Google平台统计信息,目前大约有75%的Android手机).要求用户在不相关的应用程序活动中设置Google帐户似乎不是一个好的体验.

是否有任何建议可以在Android平台上使用更通用的推送机制?例如,Amazon SNS的优点和缺点是什么?还有其他候选人?

android push-notification amazon-sns android-c2dm google-cloud-messaging

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

如何在没有端点令牌的情况下确认Amazon SNS的订阅?

在我的JAVA应用程序中,我使用Amazon SNS向客户发送电子邮件; 一旦我订阅了一个客户(电子邮件ID)到我的SNS主题; 它要求客户确认订阅以接收电子邮件;

有没有办法在我们的应用程序中确认订阅(没有cusstomer的帮助)?

amazon-web-services amazon-sns

12
推荐指数
1
解决办法
5791
查看次数

未收到Amazon SES退回通知

我在我的服务器上配置了postfix,只将@ gmail.com邮件发送到Amazon SES:

gmail.com          smtp:email-smtp.eu-west-1.amazonaws.com:25
*                  :
Run Code Online (Sandbox Code Playgroud)

此外,我在Amazon SES控制台中配置了使用Amazon SNS接收邮件上的Bounces和Complains.问题是,如果我发送邮件到不存在的Gmail地址,我不会收到退回.

如果从mail.google.com发送邮件到地址dsadaerwer.lala-band-sucks.justin-is-a-beaver@gmail.com,我会收到:

Delivery to the following recipient failed permanently:
 dsadaerwer.lala-band-sucks.justin-is-a-beaver@gmail.com
Run Code Online (Sandbox Code Playgroud)

但是如果从PHP脚本发送到同一个地址,postfix说:

E4E1A9F9CE: to=<dsadaerwer.lala-band-sucks.justin-is-a-beaver@gmail.com>, relay=email-smtp.eu-west-1.amazonaws.com[54.72.42.170]:25, delay=21, delays=0.02/0.04/11/10, dsn=2.0.0, status=sent (250 Ok 00000146d86bcc13-9fa1ac16-b1cd-476e-8398-31f406d47961-000000)
Run Code Online (Sandbox Code Playgroud)

因此,亚马逊SES接受邮件,但我没有收到有关失败的通知.有什么不对?

注意.发送到有效的电子邮件时,一切都按预期工作.

此外,当从AWS SES控制台向bounce@simulator.amazonses.com发送测试邮件时,我会立即通过电子邮件通知我,但是通过email-smtp.eu-west-1.amazonaws从PHP脚本发送到同一封电子邮件. com不会导致电子邮件通知.

ubuntu-server amazon-web-services amazon-sns amazon-ses

12
推荐指数
1
解决办法
1657
查看次数

获取AWS SMS的交付状态

我正在通过节点SDK从AWS发送短信.短信很顺利,我正在尝试获取交付信息.显然它不是那么容易,需要设置SNS将日志发送到Cloudwatch并解析CloudWatch以获取查询MessageId的交付信息:https://stackoverflow.com/a/40327061/2054629

如果我通过SNS Web界面发送短信,日志我会看到cloudwatch中的日志,但是当我通过节点SDK发送它们时.在从节点发送之前,我无法获得有关如何设置内容的信息.

理想情况下,我希望实现以下目标:

const sendSMS = async (message, number) => {
    // send the SMS
    // wait to get delivery info
    // resolve with delivery info, or reject if failed
}
Run Code Online (Sandbox Code Playgroud)

目前我有:

import AWS from 'aws-sdk';

AWS.config.update({
  accessKeyId: accessKey,
  secretAccessKey: secretKey,
  region: 'us-east-1',
});

const sns = new AWS.SNS();

const sendSMS = async (message, number) => {
  return await new Promise((resolve, reject) => {
    sns.publish({
      Message: message,
      MessageStructure: 'string',
      PhoneNumber: number,
    }, (err, res) => {
      if …
Run Code Online (Sandbox Code Playgroud)

sms amazon-web-services node.js amazon-sns aws-sdk

12
推荐指数
1
解决办法
749
查看次数

AWS Mobile HUD AWS SNS pushManagerDidRegister但未创建端点

我正在将AWS Mobile HUD与AWS SNS一起使用并遇到问题.

什么有效/已经完成了

  • 成功创建了p12通用证书
  • AWS HNS上的资源由Mobile HUD成功创建
  • Mobile HUD成功创建的主题
  • 将代码集成到项目中
  • 综合plist

以下代码应使用AWS SNS注册应用程序(设备):

pushManager = AWSPushManager(forKey: ServiceKey)
pushManager?.delegate = self
pushManager?.registerForPushNotifications()
Run Code Online (Sandbox Code Playgroud)

并且 - 足够大,func pushManagerDidRegister(_ pushManager: AWSPushManager)被称为成功.我func pushManagerDidRegister(_ pushManager: AWSPushManager)看起来像

func pushManagerDidRegister(_ pushManager: AWSPushManager) {
    print("Successfully enabled Push Notifications on platform: \(pushManager.platformARN)")
    // Subscribe the first topic among the configured topics (all-device topic)
    if let defaultSubscribeTopic = pushManager.topicARNs?.first {
        let topic = pushManager.topic(forTopicARN: defaultSubscribeTopic)
        topic.subscribe()
    }
}
Run Code Online (Sandbox Code Playgroud)

日志输出:

Successfully enabled Push Notifications on platform: …
Run Code Online (Sandbox Code Playgroud)

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

12
推荐指数
1
解决办法
258
查看次数

错误:找不到模块“@aws-sdk/client-sns”

我在调用 lambda 时收到此错误。

"errorType": "Runtime.ImportModuleError", "errorMessage": "错误: 找不到模块 '@aws-sdk/client-sns'\n需要堆栈:\n- /var/task/handler.js\n- /var /runtime/UserFunction.js\n- /var/runtime/index.js", "trace": [ "Runtime.ImportModuleError: 错误: 找不到模块 '@aws-sdk/client-sns'",

import * as AWS from '@aws-sdk/client-sns';
import { JamaSnsMessage } from './models/jama';
import { region, snsTopicArn } from './utils/constants';
import { log } from './utils/logger';

const client = new AWS.SNS({ region });

/**
 * Publishes given SNS formatted Jama items to SNS topic
 *
 * @param {JamaSnsMessage[]} items
 */
export const publishItems = async (items: JamaSnsMessage[]): Promise<void> => {
  if (!items …
Run Code Online (Sandbox Code Playgroud)

amazon-sns aws-sdk aws-sdk-nodejs

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

通过过滤将消息从Amazon SNS路由到SQS

在RabbitMQ中,可以创建一个交换,然后将其绑定到多个队列,每个队列都有一个路由密钥.这使得消息传递体系结构如下所示:

           message_x
         /    |     \
foo-msg_q  bar-msg_q  msg-logger_q
Run Code Online (Sandbox Code Playgroud)

客户端将消息发布到message_x交换机,该消息仅将具有路由密钥"foo"的消息路由到foo-msg_q队列,仅将具有路由密钥"bar"的消息路由到bar-msg_q队列,并将所有消息路由到msg-logger_q队列.

我无法确定如何在AWS中执行此操作.我的第一个想法是在各个队列上设置权限以接受基于主题的消息,但是权限条件的唯一可用字段是:

  • AWS:CURRENTTIME
  • AWS:EpochTime
  • AWS:MultiFactorAuthAge
  • AWS:principaltype
  • AWS:SecureTransport
  • AWS:SourceArn
  • AWS:SOURCEIP
  • AWS:用户代理
  • AWS:用户ID
  • AWS:用户名

这些似乎都不会受到我发布到该message_x主题的任何消息的影响.

当使用Amazon Simple Notification Service扇出到多个简单队列服务队列时,是否可以做这样的事情,每个队列接收发布到该主题的消息子集?

amazon-sqs amazon-web-services amazon-sns

11
推荐指数
2
解决办法
7318
查看次数

如何在像Intellij这样的IDE中本地测试sns(用于单元测试)

有没有办法在本地实例化SNS才能运行单元测试?我知道dynamoDB可以使用DynamoDBLocal进行本地实例化,SNS是否也支持相同?如果是这样,任何人都可以提供文件吗?提前致谢.

amazon-sns

11
推荐指数
3
解决办法
4099
查看次数

如何通过PHP将AWS SQS/SNS用作重要处理任务的推送通知队列?

我有一台运行在rackspace上的服务器,它托管一个PHP Web应用程序.

PHP Web应用程序将接受表单提交,然后需要根据表单字段条目执行任务.

任务(让我们称之为生成元数据任务)需要相当多的处理时间.我想知道如何允许表单提交直接保存到数据库,并在后台运行生成元数据任务时立即向用户显示成功页面.

我已将"aws/aws-sdk-php": "~3.11"使用composer 安装到同一个Web应用程序中.

我的计划最初是这样的:

处理表单提交的代码

$result = $model->save($_POST);
// this code will send the information to either SQS or SNS
$awsClient->sendsMessage($_POST);
if ($result) {
  $this->redirect('success.html');
}
Run Code Online (Sandbox Code Playgroud)

我已经阅读了AWS 所述的扇出架构.

我对扇出架构示例的问题(据我所知)是这样的:

  1. 将消息发送到SQS或SNS的服务器也将是处理生成元数据任务的同一服务器.事实上,它是相同的网络应用程序.
  2. SQS完成队列部分(因为我想在FIFO中执行任务,并且任务需要很长时间才能完成).但是,它需要我的网络应用程序连续轮询SQS.我想要一个推送通知(从AWS到我的网络应用程序),而不是我的网络应用程序不断轮询AWS以检查要执行的任务.

我在这里找到了可能的解决方案

建议的解决方案是:

  1. 将消息发送到SNS主题.

  2. SNS主题将同时发送SQS队列和我的Web应用程序.

  3. 我的Web应用程序在被触发后将轮询同一个SQS队列,该队列现在已连续排队消息,直到队列为空

我从中看到的缺点是我的Web应用程序将在队列本身有消息之前轮询队列.

使用AWS服务实现推送队列的最佳方法是什么?

php amazon-sqs amazon-web-services amazon-sns

11
推荐指数
1
解决办法
5778
查看次数

AWS SNS与AWS步骤功能

在微服务之间协调任务的更好选择是什么?

例如,如果我有一个处理客户信息并需要通知其他微服务的微服务,那么在微服务之间创建工作流(AWS Steps)或使用SNS是否更好?

我认为AWS Steps将耦合我的lambda函数,而SNS不会.

amazon-web-services amazon-sns aws-step-functions

11
推荐指数
2
解决办法
2819
查看次数