Amazon web services AWS API网关如何在集成请求中获取时间戳>;身体映射模板

Amazon web services AWS API网关如何在集成请求中获取时间戳>;身体映射模板,amazon-web-services,amazon-dynamodb,aws-api-gateway,Amazon Web Services,Amazon Dynamodb,Aws Api Gateway,是否可以在集成请求的主体映射模板中检索API网关请求的时间戳,以便它只能检索大于(或小于)创建日期的记录 当前设置 API网关(GET)->DynamoDB--响应-->API网关 身体映射模板 { "TableName": "table-name-in-dynamodb", "ScanFilter": { "creationDate": { "AttributeValueList": [ { "N":"TIMESTAMP_OF_THE_API_REQUEST" } ], "

是否可以在集成请求的主体映射模板中检索API网关请求的时间戳,以便它只能检索大于(或小于)创建日期的记录

当前设置

API网关(GET)->DynamoDB--响应-->API网关

身体映射模板

{
"TableName": "table-name-in-dynamodb",
"ScanFilter": {
  "creationDate": {
    "AttributeValueList": [ { "N":"TIMESTAMP_OF_THE_API_REQUEST" } ],
    "ComparisonOperator": "GT"
  }
}
{
"TableName": "table-name-in-dynamodb",
"ScanFilter": {
  "creationDate": {
    "AttributeValueList": [ { "N":"$context.requestTimeEpoch" } ],
    "ComparisonOperator": "GT"
  }
}
}

我已经了解到,可以使用$input.params('X-Amzn-Trace-Id')检索标题X-Amzn-Trace-Id,它将返回一个带有版本号和时间戳的字符串。

我对这一切还很陌生,所以我不确定如何处理数据


这可能吗?

是的,这是可能的。你可以做:

身体映射模板

{
"TableName": "table-name-in-dynamodb",
"ScanFilter": {
  "creationDate": {
    "AttributeValueList": [ { "N":"TIMESTAMP_OF_THE_API_REQUEST" } ],
    "ComparisonOperator": "GT"
  }
}
{
"TableName": "table-name-in-dynamodb",
"ScanFilter": {
  "creationDate": {
    "AttributeValueList": [ { "N":"$context.requestTimeEpoch" } ],
    "ComparisonOperator": "GT"
  }
}
但是您必须知道,
$context.requestTimeEpoch
在测试环境中不起作用。 因此,您首先需要在使用API之前部署它


所有关于上下文变量的文档都可以在这里找到:

这确实限制了API网关作为Dynamo的CRUD接口