// Create new SQS Queue func (svc *AmazonSQS) CreateQueue(in *SDK.CreateQueueInput) error { data, err := svc.client.CreateQueue(in) if err != nil { log.Error("[SQS] Error on `CreateQueue` operation, queue="+*in.QueueName, err) return err } log.Info("[SQS] Complete CreateQueue, queue="+*in.QueueName, *(data.QueueURL)) return nil }
// Create new DynamoDB table func (d *AmazonDynamoDB) CreateTable(in *SDK.CreateTableInput) error { data, err := d.client.CreateTable(in) if err != nil { log.Error("[DynamoDB] Error on `CreateTable` operation, table="+*in.TableName, err) return err } log.Info("[DynamoDB] Complete CreateTable, table="+*in.TableName, data.TableDescription.TableStatus) return nil }
// Delete DynamoDB table func (d *AmazonDynamoDB) DeleteTable(name string) error { in := &SDK.DeleteTableInput{ TableName: String(name), } data, err := d.client.DeleteTable(in) if err != nil { log.Error("[DynamoDB] Error on `DeleteTable` operation, table="+*in.TableName, err) return err } log.Info("[DynamoDB] Complete DeleteTable, table="+*in.TableName, data.TableDescription.TableStatus) return nil }
// Publish notification for arn(topic or endpoint) func (svc *AmazonSNS) Publish(arn string, msg string, opt map[string]interface{}) error { msg = truncateMessage(msg) m := make(map[string]string) m["default"] = msg m["GCM"] = composeMessageGCM(msg) m["APNS"] = composeMessageAPNS(msg, opt) m["APNS_SANDBOX"] = m["APNS"] jsonString, _ := json.Marshal(m) resp, err := svc.Client.Publish(&SDK.PublishInput{ TargetARN: String(arn), Message: String(string(jsonString)), MessageStructure: String("json"), }) if err != nil { log.Error("[SNS] error on `Publish` operation, arn="+arn, err.Error()) return err } log.Info("[SNS] publish message", *resp.MessageID) return nil }