Amazon web services 无法从AppSync响应映射模板中的RDS序列化AWSDate

Amazon web services 无法从AppSync响应映射模板中的RDS序列化AWSDate,amazon-web-services,aws-appsync,amazon-aurora,aws-aurora-serverless,Amazon Web Services,Aws Appsync,Amazon Aurora,Aws Aurora Serverless,我正在使用无服务器Aurora作为我的数据库构建一个AppSync项目,偶然发现了这个奇怪的错误: "Can't serialize value (/getUsers/created_at) : Unable to serialize `2019-09-28 07:36:13` as a valid DateTime Object." 当我得到一个如下所示的用户对象时,就会发生这种情况: type Users { id: String! name: String! descript

我正在使用无服务器Aurora作为我的数据库构建一个AppSync项目,偶然发现了这个奇怪的错误:

"Can't serialize value (/getUsers/created_at) : Unable to serialize `2019-09-28 07:36:13` as a valid DateTime Object."
当我得到一个如下所示的用户对象时,就会发生这种情况:

type Users {
  id: String!
  name: String!
  description: String
  created_at: AWSDateTime
  updated_at: AWSDateTime
  logged_in: AWSDateTime
}
发生此错误的原因似乎是
$utils.rds.toJsonObject($ctx.result)[0][0]
无法分析AWSDateTime。这使得任何有日期的东西都无法从数据库中提供

如果我只是选择了一个没有日期的对象
[“从用户那里选择id、name、description,其中id='$ctx.args.id'”
就可以了


那么在AWS AppSync和Aurora中应该如何处理日期呢?我在文档中找不到任何关于处理日期的示例或参考:(

我无意中在与此问题相关的回购协议中找到了答案

与用户发现的一样,
$utils.rds.toJsonObject($ctx.result)[0][0]
无法将rds时间戳解析为GraphQl AWSDate格式

因此,只需将graphql模式类型从:

创建时间:AWSDateTime

致:

created\u at:String

解决了这个问题


注意:如果在将scheme列类型更改为
AWSDateTime
后遇到此错误,只需访问DynamoDB控制台并更新不符合
ISO 8601
格式的记录您可以
选择字符(创建于'YYYY-MM-DD“T”HH24:MI:SS“Z')来自用户
,适用于
AWSDateTime


另一个是
SELECT created_at::date FROM Users
,它将适用于
AWSDate

您必须使用AWSTimestamp手动转换它,并“选择cast(UNIX时间戳(lastHeartbeat)作为unsigned)作为用户的lastHeartbeat”