func publishMessage(msg string) error { topicarn, topicErr := getTopicArn() if topicErr != nil { log.Println(topicErr) return topicErr } p, s, _, _ := getSettings() auth := aws.Auth{AccessKey: p, SecretKey: s} region := aws.Region{} region.Name = "us-east-1" region.SNSEndpoint = "http://sns.us-east-1.amazonaws.com" awssns, _ := sns.New(auth, region) if awssns == nil { return fmt.Errorf("Can't get sns reference for %v %v", auth, region) } opt := sns.PublishOptions{} opt.TopicArn = topicarn opt.Message = msg opt.Subject = msg _, pubErr := awssns.Publish(&opt) if pubErr != nil { return pubErr } return nil }
func reportError(desc string, err error) { // print to stderr and sns notify if required if cfg.Sns.FailureNotifications && len(cfg.Sns.Topic) > 0 && len(cfg.Aws.Accesskey) > 0 && len(cfg.Aws.Secretkey) > 0 { newSns, snsErr := sns.New(*aws.NewAuth(cfg.Aws.Accesskey, cfg.Aws.Secretkey, "", time.Now()), aws.Regions[cfg.Aws.Region]) if snsErr != nil { log.Println(fmt.Sprintf("SNS error: %#v during report of error writing to kafka: %#v", snsErr, err)) } newSns.Publish(&sns.PublishOptions{fmt.Sprintf("%s: %#v", desc, err), "", "[redshift-tracking-copy-from-s3] ERROR Notification", cfg.Sns.Topic, ""}) } fmt.Printf("%s: %s\n", desc, err) panic(err) }
func (s *S) SetUpSuite(c *check.C) { testServer.Start() auth := aws.Auth{AccessKey: "abc", SecretKey: "123"} sns, _ := sns.New(auth, aws.Region{SNSEndpoint: testServer.URL}) s.sns = sns }