lister.go 780 B

12345678910111213141516171819202122232425262728293031323334
  1. package services
  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/fgm/izidic"
  9. "gopkg.in/yaml.v2"
  10. )
  11. func ListerService(dic *izidic.Container) (any, error) {
  12. cli := dic.MustService("sqs").(*sqs.Client)
  13. w := dic.MustParam(PWriter).(io.Writer)
  14. return func(ctx context.Context) string {
  15. return lister(ctx, w, cli)
  16. }, nil
  17. }
  18. func lister(ctx context.Context, w io.Writer, client *sqs.Client) string {
  19. lqo, err := client.ListQueues(ctx, &sqs.ListQueuesInput{
  20. MaxResults: aws.Int32(10),
  21. NextToken: nil,
  22. QueueNamePrefix: aws.String(""),
  23. })
  24. if err != nil {
  25. log.Fatalf("failed listing queues: %v", err)
  26. }
  27. y := yaml.NewEncoder(w)
  28. y.Encode(lqo.QueueUrls)
  29. return lqo.QueueUrls[0]
  30. }