Skip to content

Instantly share code, notes, and snippets.

@memememomo
Last active August 12, 2018 07:32
Show Gist options
  • Save memememomo/eaaf08e3988b339b0a7afa946e7d1dbb to your computer and use it in GitHub Desktop.
Save memememomo/eaaf08e3988b339b0a7afa946e7d1dbb to your computer and use it in GitHub Desktop.
DynamoDBlocalでDynamoDBをひとまず触れるようにする ref: https://qiita.com/uchiko/items/b419d512f08279ab0f9c
[dummy]
aws_access_key_id = dummy
aws_secret_access_key = dummy
$ java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb
$ aws dynamodb create-table --table-name Persons \
--attribute-definitions AttributeName=Id,AttributeType=N \
--key-schema AttributeName=Id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--endpoint-url http://localhost:8000
$ aws dynamodb create-table --table-name Persons \
--attribute-definitions AttributeName=Id,AttributeType=N \
--key-schema AttributeName=Id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--endpoint-url http://localhost:8000
$ aws dynamodb list-tables --endpoint-url http://localhost:8000
// main.go
package main
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/guregu/dynamo"
)
type Person struct {
ID int `dynamo:"Id"`
Name string `dynamo:"Name"`
}
func main() {
dynamoSession, err := session.NewSession(&aws.Config{
Region: aws.String("ap-northeast-1"),
Endpoint: aws.String("http://localhost:8000"),
Credentials: credentials.NewStaticCredentials("dummy", "dummy", "dummy"),
})
if err != nil {
panic(err)
}
db := dynamo.New(dynamoSession)
table := db.Table("Persons")
var ret Person
err = table.Get("Id", 1).One(&ret)
if err != nil {
panic(err)
}
println(ret.Name)
}
$ aws dynamodb list-tables --endpoint-url http://localhost:8000
$ aws dynamodb put-item --table-name Persons --item '{"Id":{"N":"1"},"Name":{"S":"Jack"}}' --endpoint-url http://localhost:8000
$ aws dynamodb put-item --table-name Persons --item '{"Id":{"N":"1"},"Name":{"S":"Jack"}}' --endpoint-url http://localhost:8000
$ aws dynamodb get-item --table-name Persons --key '{"Id":{"N":"1"}}' --endpoint-url http://localhost:8000
$ aws dynamodb get-item --table-name Persons --key '{"Id":{"N":"1"}}' --endpoint-url http://localhost:8000
$ aws dynamodb scan --table-name Persons --endpoint-url http://localhost:8000
$ aws dynamodb scan --table-name Persons --endpoint-url http://localhost:8000
# ~/.aws/credentials
[dummy]
aws_access_key_id = dummy
aws_secret_access_key = dummy
go get -u github.com/aws/aws-sdk-go
go get -u github.com/aws/aws-sdk-go
// main.go
package main
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/service/dynamodb"
"fmt"
"github.com/aws/aws-sdk-go/aws/credentials"
)
func main() {
dynamoSession, err := session.NewSession(&aws.Config{
Region: aws.String("ap-northeast-1"),
Endpoint: aws.String("http://localhost:8000"),
Credentials: credentials.NewStaticCredentials("dummy", "dummy", "dummy"),
})
if err != nil {
panic(err)
}
db := dynamodb.New(dynamoSession)
res, err := db.GetItem(&dynamodb.GetItemInput{
TableName: aws.String("Persons"),
Key: map[string]*dynamodb.AttributeValue{
"Id": {
N: aws.String("1"),
},
},
AttributesToGet: []*string{
aws.String("Name"),
},
ConsistentRead: aws.Bool(true),
ReturnConsumedCapacity: aws.String("NONE"),
})
if err != nil {
panic(err)
}
fmt.Println(*res.Item["Name"])
}
go get github.com/guregu/dynamo
$ go get github.com/guregu/dynamo
package main
import (
"github.com/aws/aws-sdk-go/aws/session"
"github.com/aws/aws-sdk-go/aws"
"github.com/aws/aws-sdk-go/aws/credentials"
"github.com/guregu/dynamo"
)
type Person struct {
ID int `dynamo:"Id"`
Name string `dynamo:"Name"`
}
func main() {
dynamoSession, err := session.NewSession(&aws.Config{
Region: aws.String("ap-northeast-1"),
Endpoint: aws.String("http://localhost:8000"),
Credentials: credentials.NewStaticCredentials("dummy", "dummy", "dummy"),
})
if err != nil {
panic(err)
}
db := dynamo.New(dynamoSession)
table := db.Table("Persons")
var ret Person
err = table.Get("Id", 1).One(&ret)
if err != nil {
panic(err)
}
println(ret.Name)
}
$ go get github.com/guregu/dynamo
$ aws dynamodb put-item --table-name Persons --item '{"Id":{"N":"1"},"Name":{"S":"Jack"}}' --endpoint-url http://localhost:8000
$ aws dynamodb create-table --table-name Persons \
--attribute-definitions AttributeName=Id,AttributeType=N \
--key-schema AttributeName=Id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--endpoint-url http://localhost:8000
$ aws dynamodb list-tables --endpoint-url http://localhost:8000
$ aws dynamodb scan --table-name Persons --endpoint-url http://localhost:8000
$ aws dynamodb get-item --table-name Persons --key '{"Id":{"N":"1"}}' --endpoint-url http://localhost:8000
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment