Ich habe eine Lambda-Funktion und API Gateway-Endpunkt erstellt, so dass es die Abfrage und Header-Parameter, die es empfängt, und ich möchte die gesamte Nutzlast zu JSON für Verwaltbarkeit zu analysieren.Parse AWS API Gateway-Header in Lambda
Die empfangenen Nutzdaten in dieser Form ist:
"{Accept=*/*,
Accept-Encoding=gzip,
deflate,
Accept-Language=nb-NO,nb;q=0.8,no;q=0.6,nn;q=0.4,en-US;q=0.2,en;q=0.2,sv;q=0.2,da;q=0.2,
Authorization=COzTjCKD6VHTC,
Cache-Control=no-cache,
User-Agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.87 Safari/537.36,
Via=1.1 7822a0bcea47c939c09def064206add3.cloudfront.net (CloudFront), X-Amz-Cf-Id=Bd_gFYsmhx0jK0eKf-3sZwwRozXtFoYC5UEFDDLKWYJkq6AR_L0Cfw==,
X-Forwarded-For=89.8.222.70, 205.251.218.72,
X-Forwarded-Port=443, X-Forwarded-Proto=https}"
Es ist nicht trivial dies manuell zu analysieren (es gibt in den Saiten kein Entkommen). Welches Format ist das und gibt es einige Node-Bibliotheken, die dieses Format für JSON parsen?
Mein requestTemplate:
"requestTemplates": {
"application/json": "{\"httpMethod\": \"$context.httpMethod\", \"route\": \"$input.params('route')\", \"query\": \"$input.params().querystring\", \"header\": \"$input.params().header\"}"
},
Ist das ein neues Feature in der Konsole? Ich mag es, wie es all diese Informationen im "Kontext" weitergibt. –
Vielen Dank, sieht gut aus! Aber wo ist das Drop-Down? –
@MarkB Dies wurde kürzlich in der Konsole hinzugefügt. Beim Ändern einer Vorlage gibt es zwei Dropdown-Menüs. Diese neue Vorlage ist verfügbar unter ** ** Vorlage generieren ** als ** [Methode Request Passthrough] **. –