https://github.com/andream16/aws-sdk-go-bindings
Helper package to easily access some aws-sdk-go's methods (SNS, SQS, DynamoDB, Rekognition, S3) & aws-lambda-go utilities.
https://github.com/andream16/aws-sdk-go-bindings
aws-dynamodb aws-lambda-golang aws-rekognition aws-s3 aws-sdk aws-sdk-go aws-sns aws-sqs go golang
Last synced: about 1 year ago
JSON representation
Helper package to easily access some aws-sdk-go's methods (SNS, SQS, DynamoDB, Rekognition, S3) & aws-lambda-go utilities.
- Host: GitHub
- URL: https://github.com/andream16/aws-sdk-go-bindings
- Owner: andream16
- License: apache-2.0
- Created: 2018-06-15T15:40:21.000Z (about 8 years ago)
- Default Branch: master
- Last Pushed: 2019-04-25T21:41:04.000Z (about 7 years ago)
- Last Synced: 2025-04-03T23:33:13.582Z (over 1 year ago)
- Topics: aws-dynamodb, aws-lambda-golang, aws-rekognition, aws-s3, aws-sdk, aws-sdk-go, aws-sns, aws-sqs, go, golang
- Language: Go
- Homepage:
- Size: 335 KB
- Stars: 13
- Watchers: 2
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
README
# aws-sdk-go-bindings [](https://circleci.com/gh/andream16/aws-sdk-go-bindings) [](https://godoc.org/github.com/andream16/aws-sdk-go-bindings) [](https://goreportcard.com/report/github.com/AndreaM16/aws-sdk-go-bindings) [](https://github.com/andream16/aws-sdk-go-bindings/blob/master/LICENSE.txt)
Helper to easily access some [aws-sdk-go](https://github.com/aws/aws-sdk-go)'s methods and lambda utilities like preparing an sns default message and unmarshal an image coming out from a stream like:
```
// UnmarshalDynamoEvent unmarshals a events.DynamoDBEventRecord into a given target.
// Out has to be a pointer.
func UnmarshalDynamoEvent(event events.DynamoDBEventRecord, out interface{}) error {
if reflect.DeepEqual(event, reflect.Zero(reflect.TypeOf(event)).Interface()) {
return errors.Wrap(bindings.ErrInvalidParameter, "event")
}
if reflect.ValueOf(out).Kind() != reflect.Ptr {
return errors.Wrap(bindings.ErrInvalidParameter, "out")
}
img := event.Change.NewImage
if len(img) == 0 {
return errors.New("event's image is empty")
}
m := make(map[string]*dynamodb.AttributeValue, len(img))
for k, v := range img {
b, err := v.MarshalJSON()
if err != nil {
return errors.Wrap(err, "unable to marshal current element to json")
}
var attr dynamodb.AttributeValue
err = json.Unmarshal(b, &attr)
if err != nil {
return errors.Wrap(err, "unable to unmarshal current element to json")
}
m[k] = &attr
}
return dynamodbattribute.UnmarshalMap(m, out)
}
```
## Contributors
Special thanks to:
- [martingallagher](https://github.com/martingallagher/)
- [ferruvich](https://github.com/ferruvich/)