【发布时间】:2019-09-06 11:54:02
【问题描述】:
我正在尝试将我的 API Gateway 日志推送到 Elasticsearch。除了一个恼人的缺陷外,我有这个工作。我似乎无法获得原始资源路径,因为我正在使用代理 lambda 函数。我将我的 API 日志记录格式设置如下;
{
"requestId": "$context.requestId",
"ip": "$context.identity.sourceIp",
"caller": "$context.identity.caller",
"user": "$context.identity.user",
"requestTime": "$context.requestTime",
"httpMethod": "$context.httpMethod",
"resourcePath": "$context.resourcePath",
"status": "$context.status",
"protocol": "$context.protocol",
"responseLength": "$context.responseLength"
}
这给了我以下内容;
{
"requestId": "xxxxxxxxxxxxxx",
"ip": "xxx.xxx.xxx.xxx",
"caller": "-",
"user": "-",
"requestTime": "16/Apr/2019:11:03:49 +0000",
"httpMethod": "GET",
"resourcePath": "/{proxy+}",
"status": "304",
"protocol": "HTTP/1.1",
"responseLength": "0"
}
如何获取实际资源路径而不是/{proxy+}?文档似乎没有说清楚;
【问题讨论】:
-
如果您使用 Lambda 代理集成而不是自定义地图,则可以将其作为事件对象中的“路径”获取。
标签: amazon-web-services aws-api-gateway api-gateway amazon-cloudwatch