【问题标题】:How do I get the date/requestTime/timestamp in Mapping Template如何在映射模板中获取日期/请求时间/时间戳
【发布时间】:2019-03-19 08:04:12
【问题描述】:

查看文档here 似乎无法从上下文变量中获取requestTime

除了使用 lambda 解析器之外,还有其他方法可以获取该值吗?

我知道使用API Gateway 是有可能的,所以肯定有办法。我看错了吗?

谢谢

朱利安

【问题讨论】:

    标签: amazon-web-services aws-appsync


    【解决方案1】:

    (我在 AWS AppSync 团队工作)

    您说得对,我们还没有在映射模板中公开请求时间。

    请问你的用例是什么?

    这是很有价值的反馈,我会确保团队看到这一点。当我们有更多信息时,我会更新这个线程。

    更新:我们现在支持通过映射模板辅助方法提取当前时间戳。 以下是一些可以帮助您实现所需功能的功能:

    $util.time.nowISO8601()                                            : 2018-02-06T19:01:35.749Z
    $util.time.nowEpochSeconds()                                       : 1517943695
    $util.time.nowEpochMilliSeconds()                                  : 1517943695750
    $util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ")                    : 2018-02-06 19:01:35+0000
    $util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "+08:00")          : 2018-02-07 03:01:35+0800
    $util.time.nowFormatted("yyyy-MM-dd HH:mm:ssZ", "Australia/Perth") : 2018-02-07 03:01:35+0800
    

    完整的参考资料可在Resolver Mapping Template Utility Reference 页面上找到。

    【讨论】:

    • 您好,感谢您的快速回答。我只想添加一个createdAtupdatedAt 属性。在大多数情况下(基本的 CRUD 操作),仅映射就足够了。但对我来说,没有时间意味着我必须使用 lamdba 进行写操作(这还不算太糟糕,说实话)。谢谢
    • @Julienmachon 您还可以将时间戳作为 GraphQL 突变的参数传递,然后映射模板可以从 $context.arguments 中获取它并将其直接存储在 DynamoDB 中
    • 嘿@Richard。我想我不一定想在我的变异输入中添加另一个参数。另外,我永远不会相信未经验证的客户提供的日期。还有时区等问题......所以不幸的是,这对我不起作用。
    • @Munib 我用时间助手的正确链接更新了我的答案。谢谢!
    • 如果您需要添加天数,您可以使用纪元秒数并以秒为单位添加天数。如果您正在寻找实用程序来告诉您周末是什么时候,那么我们不提供这些实用程序。这是很好的反馈,我会确保团队看到这一点。
    猜你喜欢
    • 2018-01-25
    • 2017-05-02
    • 2018-12-30
    • 1970-01-01
    • 1970-01-01
    • 2023-03-22
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多