标签: amazon-sns

Amazon SNS 发布推送通知

我正在使用 python for amazon SNS 来发布推送通知。

    data = { "GCM" : {"data":   {"message": "dummy"  }}}
    jsonData =  json.dumps(data)        

    self.client.publish( TargetArn=targetArn,
        Message= jsonData,
        MessageStructure='json')
Run Code Online (Sandbox Code Playgroud)

出现以下错误。

参数无效:JSON 必须包含“default”或“GCM”条目。

尝试将其作为字符串和各种格式发送。但这并不奏效。发布有什么问题吗?

python amazon-web-services amazon-sns

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

参数消息类型无效

我尝试使用 Django 中的“signal”在 AWS 中发送 SNS 电子邮件,我的代码是:

import boto3
from properties.models import PropertyList
from django.db.models.signals import post_save, post_delete
from django.dispatch import receiver

@receiver(post_save, sender=PropertyList)
def send_property_details(sender, instance, created, **kwargs):
    if created:
        sns = boto3.client('sns')

        response = sns.publish(
            TopicArn='',# I write value of TopicArn
            Message={
            "name": instance.title,
            "description": instance.description
                },
            MessageStructure='json',
            Subject='New Property Created',
            MessageAttributes={
                'default':{
                    'DataType':'String',
                    'StringValue':instance.title
                    }
                },
            )

        print(response['MessageId'])
Run Code Online (Sandbox Code Playgroud)

我收到错误如下:

参数验证失败:参数消息类型无效,值:{'name': 'aws', 'description': 'test'},类型: ,有效类型:

在AWS文档中说,如果我想为每个传输协议发送不同的消息,请将参数的值设置MessageStructure为JSON并使用JSON对象作为消息参数。我的代码有什么问题?

注意:我想发送的不仅仅是值,所以我需要发送 JSON

django amazon-web-services amazon-sns python-3.x

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

通过 AWS SNS 服务从一个端点到另一个端点的 http 标头

我有一个要求,我需要通过将其发布到 SNS 来从 api A 发送一些入站 http 查询参数,而其他 api B 订阅 sns,它应该在其中获取查询参数。

我有什么办法可以实现它吗?

注意:当我发布到 SNS 时,我有一个固定的消息结构,我无法更改它,因为我有其他端点已经订阅了 SNS,依赖于它。

正如 Michael 提到的,我们可以使用 lambda。但我不想使用aws提供的其他服务。我想仅使用 SNS 来实现相同的目标。我听说过 SNS 消息属性,但不确定我们是否可以使用它来实现相同的目的。

谢谢。

http amazon-web-services amazon-sns

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

使用 AWS Go SDK 将消息发布到 SNS

我在使用 AWS Go SDK 向 SNS 发送消息时遇到问题。发布功能的文档有点晦涩难懂。

我的一段代码是:

package main

import (
    "encoding/json"
    "github.com/aws/aws-sdk-go-v2/aws/external"
    "github.com/aws/aws-sdk-go-v2/service/sns"
    "github.com/aws/aws-sdk-go/aws"
    "log"
)

type Person struct {
    Name string `json:"name"`
} 

func main() {
    cfg, _ := external.LoadDefaultAWSConfig()
    snsClient := sns.New(cfg)

    person := Person{
        Name:"ok",
    }
    jsonStr, _ := json.Marshal(person)

    req := snsClient.PublishRequest(&sns.PublishInput{
        TopicArn: aws.String("arn:aws:sns:us-east-1:*****:ok"),
        Message: aws.String(string(jsonStr)),
        MessageStructure: aws.String("json"),
        MessageAttributes: map[string]sns.MessageAttributeValue{
            "default": {
                DataType: aws.String("String"),
                StringValue: aws.String(string(jsonStr)),
            },
        },
    })

    res, err := req.Send()
    if err != nil {
        log.Fatal(err)
    }

    log.Print(res)
}
Run Code Online (Sandbox Code Playgroud)

当我启动此代码时,我收到以下消息:

2019/01/24 …
Run Code Online (Sandbox Code Playgroud)

go amazon-web-services amazon-sns

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

AWS。Cloudwatch 警报状态变化触发规则

我在 CloudWatch 警报状态更改上触发 Cloudwatch 规则时遇到问题。这是规则的事件模式。它不会向 SNS 发送状态更改消息。

{
  "detail-type": [
    "CloudWatch Alarm State Change"
  ],
  "resources": [
    !Sub "arn:aws:cloudwatch:${AWS:Region}:${AWS:AccountId}:alarm:Admin dead"
  ],
  "source": [
    "aws.cloudwatch"
  ],
  "detail": {
    "state": [
      "ALARM"
    ]
  }
}
Run Code Online (Sandbox Code Playgroud)

警报本身正常工作并并行向 SNS 发送消息。另外,如果我删除这部分:

"detail": {
    "state": [
      "ALARM"
    ]
  }
Run Code Online (Sandbox Code Playgroud)

那么该规则对于每个状态变化都可以正常工作。但我只需要将其更改为“警报中”(如用户界面中显示的那样)。

感谢您的任何建议

rules amazon-web-services amazon-sns amazon-cloudwatch cloudwatch-alarms

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

AWS SNS 不提供移动选项

我正在尝试使用 AWS SNS 和 FCM 向我的 Android 应用程序发送推送通知。

AWS文档说:

  1. 在 Amazon SNS 中创建平台应用程序
  2. 打开 Amazon SNS 控制台。
  3. 打开左侧导航窗格,展开移动,然后选择推送通知。

但在我的 Amazon SNS 页面上,我在左侧导航窗格中看不到“移动”。

我错过了什么吗?

我在某处读到英国不支持 Amazon SNS 到手机。这是真的吗?

android amazon-web-services amazon-sns firebase-cloud-messaging

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

Amazon SNS 与 Firebase iOS 云消息通知无法正常工作

我正在使用 FCM 和 SNS 测试推送通知。(SNS -> FCM (ios/android)。Android 工作没有问题。我可以触发从 SNS 到 FCM 的通知到我的 Android 设备。

\n

然后,我测试了将 iOS 版本连接到 firebase 并添加了证书等,并且可以毫无问题地从 firebase 测试页面内触发推送通知到 iOS 设备。

\n

问题是我可以\xe2\x80\x99t 使用 iOS 版本触发从 AWS SNS 到 FCM 的通知(Android 版本没有问题)。我希望它能像安卓一样工作。当触发来自 SNS 的通知时,是否需要将任何自定义参数添加到有效负载中才能使 iOS 版本正常工作,这些参数与 Android 版本不同?

\n

这是我从 SNS 发送到 FCM 进行测试的自定义负载:

\n

{\n"GCM": "{ "data": { "message": "Android 端点的示例消息" }, "content_available": true, "mutable_content": true} , "notification": {"body": "输入您的消息", "声音": "默认"}"\n}

\n

amazon-sns ios firebase firebase-cloud-messaging

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

AWS 策略应用程序因出现奇怪错误的主题而失败

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SNS:Subscribe",
      "Resource": "arn:aws:sns:*:*:test-pipeline"
    },
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "*"
      },
      "Action": "SNS:Publish",
      "Resource": "arn:aws:sns:*:*:test-pipeline"
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我不知道为什么我收到错误

Error code: InvalidParameter - Error message: An error occurred while setting the attribute access policy. Invalid parameter: Every policy statement must have a unique ID
Run Code Online (Sandbox Code Playgroud)

ID不是强制性的,当我在数组中只有一个块时,它就可以工作

amazon-web-services amazon-sns

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

如何使用主题名称获取 SNS 主题 ARN,以通过 Boto3 在 Python 中发布 SNS 消息?

Python

运行查询的方法

def function(run_query)
   //topic = arn return from topic name
   topic.publish(message)
   pass
Run Code Online (Sandbox Code Playgroud)

我正在使用 boto3 资源方法。有很多使用 boto3.client 的示例,但使用 boto3 资源方法实现 sns 方法的示例有限。

python amazon-sns aws-cli boto3

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

AWS SQS队列是否彼此隔离?

假设我有两个单独的服务,A和B,SQS队列都订阅了SNS主题"topic-foo".然后我将消息m1发布到SNS主题"topic-foo".

如果服务A(sqs-A)拥有的SQS队列看到消息m1并对其进行处理(即将其弹出队列并处理消息以使其不再在sqs-A上),我是否仍然可以保证单独的SQS服务B拥有的队列(sqs-B)将始终能够查看和处理消息m1?(换句话说,AWS SNS发布是否保证多次传递到SQS队列并隔离单独的SQS队列处理?)

amazon-sqs amazon-web-services amazon-sns

0
推荐指数
1
解决办法
56
查看次数