-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.go
47 lines (38 loc) · 840 Bytes
/
main.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package main
import (
"flag"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/awserr"
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/service/sns"
"log"
)
type Payload struct {
Text string `json:"text"`
}
func main() {
messagePtr := flag.String("message", "", "Message to send")
snsPtr := flag.String("sns", "", "SNS ARN to push to")
flag.Parse()
if len(*messagePtr) > 0 && len(*snsPtr) > 0 {
svc := sns.New(session.New())
input := &sns.PublishInput{
Message: aws.String(*messagePtr),
TopicArn: aws.String(*snsPtr),
}
_, err := svc.Publish(input)
if err != nil {
if aerr, ok := err.(awserr.Error); ok {
switch aerr.Code() {
default:
log.Fatal(aerr)
}
} else {
log.Fatal(err)
}
return
}
} else {
log.Fatal("missing parameters")
}
}