'dynamoDb put item not populating all params

I have 2 lambdas that do the exact same thing, however, they are both written using different langages.

1st lambda - runs on a node.js environment, when I create my arguments to putItem, as follows:

const args = {
          id: "my id",
          __typename: "a type name",
          _version: 1,
          _lastChangedAt: now.toISOString(),
          createdAt: now.toISOString(),
          updatedAt: fields.LastModifiedDate
        }
var recParams = {
        TableName: dynamoTable,
        Key: {
        "id": Id
        },
        Item: args,
        ReturnValues: "ALL_OLD"
      };

and then I use the docClient to insert the row. Everything works fine, all the properties are populated in my dynamo row.

I have the exact same written in Golang:

    item := RecentItem{
                Id:             "some Id",
                _version:       1,
                __typename: "a type name",
                _lastChangedAt: currentTime.UTC().Format("2006-01-02T15:04:05-0700"),
                createdAt:      currentTime.UTC().Format("2006-01-02T15:04:05-0700"),
                updatedAt:      currentTime.UTC().Format("2006-01-02T15:04:05-0700"),
            }
av, err := dynamodbattribute.MarshalMap(item)
input := &dynamodb.PutItemInput{
        Item:      av,
        TableName: aws.String(tableName),
    }

Everything ALMOST works, the item is inserted, but I am missing all the properties except for the id.

Structure declaration :

type RecentItem struct {
    Id             string `json:"id"`
    _version       int    `json:"_version"`
    _lastChangedAt string `json:"_lastChangedAt"`
    createdAt      string `json:"createdAt"`
    updatedAt      string `json:"updatedAt"`
}

Not sure why in Go my dynamoDb row is missing properties. Am I missing something?



Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source