У меня проблема с отправкой сообщения в SNS с помощью AWS Go SDK.Документация для функции публикации немного неясна.
Мой код:
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)
}
Когда я запускаю этот код, я получаю следующее сообщение:
2019/01/24 20:14:24 InvalidParameter: Invalid parameter: Message Structure - No default entry in JSON message body
status code: 400, request id: 55940de1-9645-5485-96c5-592586957ce8
exit status 1
Может быть, кто-то может мне помочь с этим?
Спасибо