我有 2 個 lambdas 做完全相同的事情,但是,它們都是使用不同的語言撰寫的。
第一個 lambda - 在 node.js 環境中運行,當我為 putItem 創建引數時,如下所示:
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"
};
然后我使用 docClient 插入行。一切正常,所有屬性都填充在我的發電機行中。
我用 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),
}
幾乎一切正常,專案已插入,但我缺少除 id 之外的所有屬性。
結構宣告:
type RecentItem struct {
Id string `json:"id"`
_version int `json:"_version"`
_lastChangedAt string `json:"_lastChangedAt"`
createdAt string `json:"createdAt"`
updatedAt string `json:"updatedAt"`
}
不知道為什么在 Go 中我的 dynamoDb 行缺少屬性。我錯過了什么嗎?
uj5u.com熱心網友回復:
必須匯出除Id以外的屬性,即以大寫字母開頭:
type RecentItem struct {
ID string `dynamodbav:"id"`
Version int `dynamodbav:"_version"`
LastChangedAt string `dynamodbav:"_lastChangedAt"`
CreatedAt string `dynamodbav:"createdAt"`
UpdatedAt string `dynamodbav:"updatedAt"`
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/423078.html
標籤:
下一篇:在Golang中陷入無限回圈
