2017-05-28 5 views
0

Ich versuche jeden Aufruf von Lambda zu machen, um die berechnete Dauer zu protokollieren, um die Kosten der Verwendung von Lambda zu verfolgen.Wie bekomme ich LogResult von AWS Lambda mit API-Gateway?

Wenn Sie Lambda mit SDK oder CLI aufrufen, könnte man leicht die LogResult erhalten, indem Sie die Parameter Hinzufügen LogType: tail

Dann Sie die LogResult als Teil der Antwort zu bekommen, wo Sie die Rechnung Dauer extrahieren können.

Jetzt habe ich versucht, ähnliches zu tun, wenn wir Lambda über API Gateway aufrufen.

Wie konnte ich LogResult und BilledDuration in diesem Fall erhalten?

Antwort

0

Im API-Gateway müssen Sie der API-Referenz folgen, um die Raw-HTTP-Anforderung mit dem Integrationstyp 'AWS-Service' zu erstellen.

Hier ist an example for setting a different invocation parameter X-Amz-Invocation-Type, die einen CLI-Aufruf enthält, um die Integration zu erstellen, und auch ein Swagger-Beispiel.

In Ihrem Fall wird X-Amz-Log-Type auf die gleiche Weise wie ein Parameter namens integration.request.header.X-Amz-Log-Type konfiguriert.

{ 
    "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" 
    } 
    } 
} 
Verwandte Themen