Creating an Amazon DynamoDB Table Using the AWS SDK for Go
The following example uses the DynamoDBCreateTable operation
to create the table Music in the us-west-2
region.
Create the file dynamodb_create_table.go. Add the following statements to import the Go and AWS SDK for Go packages used in the example.
import ( "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" )
Initialize the session that the SDK uses to load credentials from the shared credentials file ~/.aws/credentials, and create a new DynamoDB service client.
sess, err := session.NewSession(&aws.Config{ Region: aws.String("us-west-2")}, ) // Create DynamoDB client svc := dynamodb.New(sess)
Call CreateTable. If an error occurs, print the error and exit. If no error occurs, print an message that the table was created.
input := &dynamodb.CreateTableInput{ AttributeDefinitions: []*dynamodb.AttributeDefinition{ { AttributeName: aws.String("year"), AttributeType: aws.String("N"), }, { AttributeName: aws.String("title"), AttributeType: aws.String("S"), }, }, KeySchema: []*dynamodb.KeySchemaElement{ { AttributeName: aws.String("year"), KeyType: aws.String("HASH"), }, { AttributeName: aws.String("title"), KeyType: aws.String("RANGE"), }, }, ProvisionedThroughput: &dynamodb.ProvisionedThroughput{ ReadCapacityUnits: aws.Int64(10), WriteCapacityUnits: aws.Int64(10), }, TableName: aws.String("Movies"), } _, err = svc.CreateTable(input) if err != nil { fmt.Println("Got error calling CreateTable:") fmt.Println(err.Error()) os.Exit(1) } fmt.Println("Created the table Movies in us-west-2")
See the complete example on GitHub.