2016-12-17 82 views

回答

1

UPDATE: API网关只是增加了两个新的环境变量http://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

$context.requestTime The CLF-formatted request time (dd/MMM/yyyy:HH:mm:ss +-hhmm). 
$context.requestTimeEpoch The Epoch-formatted request time. 

API网关目前不支持这一点。它在论坛上被要求之前 - https://forums.aws.amazon.com/thread.jspa?messageID=697658&。我们在我们的待办事项中有这个功能,但不幸的是我无法承诺任何时间表。

+0

感谢您的更新!我们将方法集成请求映射到SQS - 我们正在使用SQS中的First Received时间戳的解决方法。 –

+0

这将是一个非常有用的功能,如果你可以提供类似于环境变量的东西来获取时间戳。 – Siddardha

+1

是否有人使用$ context.requestTime成功?在我们的API网关集成中使用它时,我仍然收到一个空字符串。 – giorgioca

5

似乎有一种方式来获得从API网关请求时间戳,但你需要在the X-Ray documentation去找找它:

亚马逊API网关的网关添加跟踪ID将传入的HTTP请求在标题名为X-Amzn-Trace-Id

(...)

trace_id由用连字符分隔的三个数字组成。例如,1- -a006649127e371903a2de979。这包括:

  • 的版本号,也就是1。
  • 原始请求的时间,在Unix纪元时间,在8个十六进制数字。例如,2016年12月2日上午10:00,PST在时代为1480615200秒,或者以十六进制数字为58406520。

(...)

+0

有谁知道如果“原始请求的时间”是浏览器声称已经开始连接的时间?还是AWS基础架构第一次看到连接的时候?换句话说,**可用于测量从客户端到AWS的网络延迟吗?** – Neo

+0

您可以使用以下代码访问标头:'$ input.params('X-Amzn-Trace-Id')' – dtbarne

+0

@dtbarne - 似乎没有工作。当我尝试使用它时,我得到一个空字符串。 – raRaRa

相关问题