Documentation
¶
Index ¶
- Constants
- type S3API
- type S3Configuration
- type S3Event
- type S3Object
- type S3Source
- func (*S3Source) CanRun() error
- func (s *S3Source) Configure(yamlConfig []byte, logger *log.Entry, ...) error
- func (s *S3Source) ConfigureByDSN(dsn string, labels map[string]string, logger *log.Entry, uuid string) error
- func (s *S3Source) Dump() any
- func (*S3Source) GetAggregMetrics() []prometheus.Collector
- func (*S3Source) GetMetrics() []prometheus.Collector
- func (s *S3Source) GetMode() string
- func (*S3Source) GetName() string
- func (s *S3Source) GetUuid() string
- func (s *S3Source) OneShotAcquisition(ctx context.Context, out chan types.Event, t *tomb.Tomb) error
- func (s *S3Source) StreamingAcquisition(ctx context.Context, out chan types.Event, t *tomb.Tomb) error
- func (s *S3Source) UnmarshalConfig(yamlConfig []byte) error
- type SNSEvent
- type SQSAPI
Constants ¶
View Source
const ( PollMethodList = "list" PollMethodSQS = "sqs" SQSFormatEventBridge = "eventbridge" SQSFormatS3Notification = "s3notification" SQSFormatSNS = "sns" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type S3API ¶ added in v1.7.1
type S3API interface {
s3Manager.ListObjectsV2APIClient
s3Manager.DownloadAPIClient
}
type S3Configuration ¶
type S3Configuration struct {
configuration.DataSourceCommonCfg `yaml:",inline"`
AwsProfile *string `yaml:"aws_profile"`
AwsRegion string `yaml:"aws_region"`
AwsEndpoint string `yaml:"aws_endpoint"`
BucketName string `yaml:"bucket_name"`
Prefix string `yaml:"prefix"`
Key string `yaml:"-"` // Only for DSN acquisition
PollingMethod string `yaml:"polling_method"`
PollingInterval int `yaml:"polling_interval"`
SQSName string `yaml:"sqs_name"`
SQSFormat string `yaml:"sqs_format"`
MaxBufferSize int `yaml:"max_buffer_size"`
}
type S3Event ¶
type S3Event struct {
Version string `json:"version"`
Id string `json:"id"`
DetailType string `json:"detail-type"`
Source string `json:"source"`
Account string `json:"account"`
Time string `json:"time"`
Region string `json:"region"`
Resources []string `json:"resources"`
Detail struct {
Version string `json:"version"`
RequestId string `json:"request-id"`
Requester string `json:"requester"`
Reason string `json:"reason"`
SourceIpAddress string `json:"source-ip-address"`
Bucket struct {
Name string `json:"name"`
} `json:"bucket"`
Object struct {
Key string `json:"key"`
Size int `json:"size"`
Etag string `json:"etag"`
Sequencer string `json:"sequencer"`
} `json:"object"`
} `json:"detail"`
}
For some reason, the aws sdk doesn't have a struct for this The one aws-lamdbda-go/events is only intended when using S3 Notification without event bridge
type S3Source ¶
type S3Source struct {
Config S3Configuration
// contains filtered or unexported fields
}
func (*S3Source) ConfigureByDSN ¶
func (*S3Source) GetAggregMetrics ¶
func (*S3Source) GetAggregMetrics() []prometheus.Collector
func (*S3Source) GetMetrics ¶
func (*S3Source) GetMetrics() []prometheus.Collector
func (*S3Source) OneShotAcquisition ¶
func (*S3Source) StreamingAcquisition ¶
func (*S3Source) UnmarshalConfig ¶
type SNSEvent ¶ added in v1.6.10
type SNSEvent struct {
Message string `json:"Message"`
}
For events that are published to SQS by SNS We only care about the message itself, the other SNS metadata are not needed
type SQSAPI ¶ added in v1.7.1
type SQSAPI interface {
ReceiveMessage(ctx context.Context, params *sqs.ReceiveMessageInput, optFns ...func(*sqs.Options)) (*sqs.ReceiveMessageOutput, error)
DeleteMessage(ctx context.Context, params *sqs.DeleteMessageInput, optFns ...func(*sqs.Options)) (*sqs.DeleteMessageOutput, error)
}
Click to show internal directories.
Click to hide internal directories.