consumer.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package main
  2. import (
  3. "context"
  4. "io"
  5. "log"
  6. "github.com/aws/aws-sdk-go-v2/aws"
  7. "github.com/aws/aws-sdk-go-v2/service/sqs"
  8. "github.com/aws/aws-sdk-go-v2/service/sqs/types"
  9. "github.com/davecgh/go-spew/spew"
  10. "gopkg.in/yaml.v2"
  11. )
  12. func lister(ctx context.Context, w io.Writer, client *sqs.Client) string {
  13. lqo, err := client.ListQueues(ctx, &sqs.ListQueuesInput{
  14. MaxResults: aws.Int32(10),
  15. NextToken: nil,
  16. QueueNamePrefix: aws.String(""),
  17. })
  18. if err != nil {
  19. log.Fatalf("failed listing queues: %v", err)
  20. }
  21. y := yaml.NewEncoder(w)
  22. y.Encode(lqo.QueueUrls)
  23. return lqo.QueueUrls[0]
  24. }
  25. func receiver(ctx context.Context, w io.Writer, client *sqs.Client, qURL string) {
  26. rmi := sqs.ReceiveMessageInput{
  27. QueueUrl: &qURL,
  28. AttributeNames: []types.QueueAttributeName{"All"},
  29. MaxNumberOfMessages: 0,
  30. MessageAttributeNames: nil,
  31. ReceiveRequestAttemptId: nil,
  32. VisibilityTimeout: 0,
  33. WaitTimeSeconds: 0,
  34. }
  35. msg, err := client.ReceiveMessage(ctx, &rmi)
  36. if err != nil {
  37. log.Fatalf("failed receiving from queue %s: %v", err)
  38. }
  39. spew.Dump(msg.Messages)
  40. }