我尝试每次调用lambda来记录结算时间,以跟踪使用lambda的成本。
使用SDK或CLI调用lambda时,只需添加参数LogType: tail
然后您将LogResult作为Response的一部分,您可以在其中提取结算时长。
现在,当我们通过API网关调用lambda时,我试图做类似的事情。
在这种情况下,如何获得LogResult和BilledDuration?
答案 0 :(得分:0)
在API网关中,您必须遵循API参考,以使用“AWS服务”来构建原始HTTP请求。整合类型。
这里是an example for setting a different invocation parameter X-Amz-Invocation-Type
,包括用于创建集成的CLI调用,以及一个招摇的例子。
在您的情况下,X-Amz-Log-Type
的配置方式与名为integration.request.header.X-Amz-Log-Type
的参数相同。
{
"swagger": "2.0",
"info": {
"version": "2016-02-11T22:00:31Z",
"title": "LambdaAsync"
},
"host": "<placeholder>",
"basePath": "<placeholder>",
"schemes": [
"https"
],
"paths": {
"/": {
"get": {
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "200 response",
"schema": {
"$ref": "#/definitions/Empty"
}
}
},
"x-amazon-apigateway-integration": {
"passthroughBehavior": "when_no_match",
"httpMethod": "POST",
"uri": "arn:aws:apigateway:us-east-1:lambda:path/2015-03-31/functions/arn:aws:lambda:us-east-1:<account>:function:<function_name>/invocations?Qualifier=$LATEST",
"responses": {
"default": {
"statusCode": "200"
}
},
"requestParameters": {
"integration.request.header.X-Amz-Log-Type": "'tail'"
},
"type": "aws"
}
}
}
},
"definitions": {
"Empty": {
"type": "object",
"title": "Empty Schema"
}
}
}