Switch to using the dep tool and update all the dependencies
This commit is contained in:
parent
5135ff73cb
commit
98c2d2c41b
5321 changed files with 4483201 additions and 5922 deletions
47
vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/scanItems/README.md
generated
vendored
Normal file
47
vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/scanItems/README.md
generated
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
# Example
|
||||
|
||||
`scanItems` is an example how to use Amazon DynamoDB's Scan API operation with the SDK's `dynamodbattributes.UnmarshalListOfMaps` to unmarshal the Scan response's `Items` `[]map[string]*dynamodb.AttributeValue` field. This unmarshaler can be used with all `[]map[string]*dynamodb.AttributeValue` type fields.
|
||||
|
||||
## Go Type
|
||||
|
||||
The `Item` time will be used by the example to unmarshal the DynamoDB table's items to.
|
||||
|
||||
```go
|
||||
type Item struct {
|
||||
Key int
|
||||
Desc string
|
||||
Data map[string]interface{}
|
||||
}
|
||||
```
|
||||
Use Go tags to define what the name is of the attribute in your DynamoDB table. See [AWS SDK for Go API Reference: Marshal](https://docs.aws.amazon.com/sdk-for-go/api/service/dynamodb/dynamodbattribute/#Marshal) for more information.
|
||||
|
||||
In DynamoDB the structure of the item to be returned will be:
|
||||
```json
|
||||
{
|
||||
"Data": {
|
||||
"Value 1": "abc",
|
||||
"Value 2": 1234567890
|
||||
},
|
||||
"Desc": "First ddb item",
|
||||
"Key": 1
|
||||
}
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
`go run -tags example scanItems.go -table "<table_name>" -region "<optional_region>"`
|
||||
|
||||
## Output
|
||||
|
||||
```
|
||||
0: Key: 123, Desc: An item in the DynamoDB table
|
||||
Num Data Values: 0
|
||||
1: Key: 2, Desc: Second ddb item
|
||||
Num Data Values: 2
|
||||
- "A Field": 123
|
||||
- "Another Field": abc
|
||||
2: Key: 1, Desc: First ddb item
|
||||
Num Data Values: 2
|
||||
- "Value 1": abc
|
||||
- "Value 2": 1234567890
|
||||
```
|
98
vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/scanItems/scanItems.go
generated
vendored
Normal file
98
vendor/github.com/aws/aws-sdk-go/example/service/dynamodb/scanItems/scanItems.go
generated
vendored
Normal file
|
@ -0,0 +1,98 @@
|
|||
// +build example
|
||||
|
||||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"os"
|
||||
|
||||
"github.com/aws/aws-sdk-go/aws"
|
||||
"github.com/aws/aws-sdk-go/aws/session"
|
||||
"github.com/aws/aws-sdk-go/service/dynamodb"
|
||||
"github.com/aws/aws-sdk-go/service/dynamodb/dynamodbattribute"
|
||||
)
|
||||
|
||||
func exitWithError(err error) {
|
||||
fmt.Fprintln(os.Stderr, err)
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
func main() {
|
||||
cfg := Config{}
|
||||
if err := cfg.Load(); err != nil {
|
||||
exitWithError(fmt.Errorf("failed to load config, %v", err))
|
||||
}
|
||||
|
||||
// Create the config specifying the Region for the DynamoDB table.
|
||||
// If Config.Region is not set the region must come from the shared
|
||||
// config or AWS_REGION environment variable.
|
||||
awscfg := &aws.Config{}
|
||||
if len(cfg.Region) > 0 {
|
||||
awscfg.WithRegion(cfg.Region)
|
||||
}
|
||||
|
||||
// Create the session that the DynamoDB service will use.
|
||||
sess := session.Must(session.NewSession(awscfg))
|
||||
|
||||
// Create the DynamoDB service client to make the query request with.
|
||||
svc := dynamodb.New(sess)
|
||||
|
||||
// Build the query input parameters
|
||||
params := &dynamodb.ScanInput{
|
||||
TableName: aws.String(cfg.Table),
|
||||
}
|
||||
if cfg.Limit > 0 {
|
||||
params.Limit = aws.Int64(cfg.Limit)
|
||||
}
|
||||
|
||||
// Make the DynamoDB Query API call
|
||||
result, err := svc.Scan(params)
|
||||
if err != nil {
|
||||
exitWithError(fmt.Errorf("failed to make Query API call, %v", err))
|
||||
}
|
||||
|
||||
items := []Item{}
|
||||
|
||||
// Unmarshal the Items field in the result value to the Item Go type.
|
||||
err = dynamodbattribute.UnmarshalListOfMaps(result.Items, &items)
|
||||
if err != nil {
|
||||
exitWithError(fmt.Errorf("failed to unmarshal Query result items, %v", err))
|
||||
}
|
||||
|
||||
// Print out the items returned
|
||||
for i, item := range items {
|
||||
fmt.Printf("%d: Key: %d, Desc: %s\n", i, item.Key, item.Desc)
|
||||
fmt.Printf("\tNum Data Values: %d\n", len(item.Data))
|
||||
for k, v := range item.Data {
|
||||
fmt.Printf("\t- %q: %v\n", k, v)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
type Item struct {
|
||||
Key int
|
||||
Desc string
|
||||
Data map[string]interface{}
|
||||
}
|
||||
|
||||
type Config struct {
|
||||
Table string // required
|
||||
Region string // optional
|
||||
Limit int64 // optional
|
||||
|
||||
}
|
||||
|
||||
func (c *Config) Load() error {
|
||||
flag.Int64Var(&c.Limit, "limit", 0, "Limit is the max items to be returned, 0 is no limit")
|
||||
flag.StringVar(&c.Table, "table", "", "Table to Query on")
|
||||
flag.StringVar(&c.Region, "region", "", "AWS Region the table is in")
|
||||
flag.Parse()
|
||||
|
||||
if len(c.Table) == 0 {
|
||||
flag.PrintDefaults()
|
||||
return fmt.Errorf("table name is required.")
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue