34 lines
832 B
Go
34 lines
832 B
Go
|
package sqs
|
||
|
|
||
|
import (
|
||
|
"github.com/aws/aws-sdk-go/aws"
|
||
|
"github.com/aws/aws-sdk-go/aws/session"
|
||
|
aws_sqs "github.com/aws/aws-sdk-go/service/sqs"
|
||
|
"github.com/aws/aws-sdk-go/service/sqs/sqsiface"
|
||
|
)
|
||
|
|
||
|
type Producer struct {
|
||
|
api sqsiface.SQSAPI
|
||
|
url string
|
||
|
}
|
||
|
|
||
|
// New instances of a client to connect SQS.
|
||
|
func NewProducer(sess *session.Session, url string) (*Producer, error) {
|
||
|
return &Producer{
|
||
|
api: aws_sqs.New(sess),
|
||
|
url: url,
|
||
|
}, nil
|
||
|
}
|
||
|
|
||
|
// SendMessage sends messages to SQS.
|
||
|
func (p *Producer) SendMessage(groupID, deduplicationID, body string) error {
|
||
|
_, err := p.api.SendMessage(
|
||
|
&aws_sqs.SendMessageInput{
|
||
|
MessageGroupId: aws.String(groupID),
|
||
|
MessageDeduplicationId: aws.String(deduplicationID),
|
||
|
MessageBody: aws.String(body),
|
||
|
QueueUrl: aws.String(p.url),
|
||
|
})
|
||
|
return err
|
||
|
}
|