wormhole-explorer/common/health/aws.go

50 lines
1.2 KiB
Go

package health
import (
"context"
"errors"
"github.com/aws/aws-sdk-go-v2/aws"
"github.com/aws/aws-sdk-go-v2/service/sns"
"github.com/aws/aws-sdk-go-v2/service/sqs"
aws_sqs_types "github.com/aws/aws-sdk-go-v2/service/sqs/types"
)
func SNS(config aws.Config, url string) Check {
api := sns.NewFromConfig(config)
return func(ctx context.Context) error {
params := &sns.GetTopicAttributesInput{
TopicArn: aws.String(url),
}
_, err := api.GetTopicAttributes(ctx, params)
if err != nil {
return err
}
return nil
}
}
func SQS(config aws.Config, url string) Check {
api := sqs.NewFromConfig(config)
return func(ctx context.Context) error {
params := &sqs.GetQueueAttributesInput{
QueueUrl: aws.String(url),
AttributeNames: []aws_sqs_types.QueueAttributeName{
aws_sqs_types.QueueAttributeNameCreatedTimestamp,
},
}
queueAttributes, err := api.GetQueueAttributes(ctx, params)
if err != nil {
return err
}
if queueAttributes == nil {
return errors.New("queue attributes can not be empty")
}
createdTimestamp := queueAttributes.Attributes["CreatedTimestamp"]
if createdTimestamp == "" {
return errors.New("queue attribute [createdTimestamp] does not exist")
}
return nil
}
}