Das ist Bit-tricky Situation, die ich hier, Ich habe eine Lambda-Funktion & API-Gateway, dann ich cloudfront über API-Gateway für eine schnellere Verarbeitung und den Nutzen aller Endpunkt-Knoten einrichten von AWS bereitgestellt [Es sollte mehr Zeit in Anspruch nehmen, Cloudfront zusätzlich zum API-Gateway-Dienst einzusetzen, aber bessere Ergebnisse mit der Cloudfront-Schicht, vielleicht DNS-Auflösung und AWS-interne Infrastruktur ist besser]Passing Kontext/Autorisierung mit Cloudfront zu Lambda
Ich habe eine JAVA-Funktion eingerichtet innerhalb Lambda, die völlig in Ordnung funktioniert, aber ich möchte Kontext der Anfrage Hersteller in Lambda-Funktion verwenden
public String handleRequest(UserPOJO input, Context context) {
}
Wenn ich direkte Lambda-Funktion Anfrage kann ich erreichen, aber es dauert zu viel Zeit direkte Lambda von meinem Android-Client ausführen, auch finde ich es nicht gut, diese Details zu offenbaren, und mit Cloudfront bin ich nicht sicher, welche Header sollte ich senden, so dass Lambda erkennt, dass es Cognito Rolle und ID ist mit context.getIdentity().getIdentityId();
in Lambda.
Wenn jemand mein Problem hier versteht und es besser für andere ausarbeitet, werde ich froh sein, es ist sehr komplex, das Problem zu erklären.
Technisch
kann ich die Ausführung von Lambda-Funktion macht direkt mit cognito Credential Provider-Authentifizierung aber sehr langsam
Kann API-Gateway-Antrag stellen, den Credential Provider Authentifizierung Cognito, Geschwindigkeit ist besser als direkte Lambda Ausführung
Kann Cloudfront-Anfrage machen, aber stecken, wo ich nicht weiß, wie kann ich Autorisierung Credential-Provider-Autorisierung verwenden, während die Requests t. Schien schneller als API-Gateway.
Danke. :)
CloudFront übergibt nicht alles. Die meisten Anforderungsheader, Cookies und die Abfragezeichenfolge werden standardmäßig aus der Anforderung entfernt. Sie können jedoch gegebenenfalls über die Verhaltenssteuerung für das Cache wieder hinzugefügt werden. CloudFront kann die Leistung durch Verbindungs- und Transportoptimierung verbessern, ohne dass der Cache aktiviert ist (so wurde S3 Transfer Acceleration implementiert) ... aber nicht für API Gateway, das von CloudFront bereits transparent (transparent) für Transportzwecke ... also wenn Es hilft, es könnte eine Illusion sein, die durch das Zwischenspeichern von Antworten verursacht wird, die nicht zwischengespeichert werden sollten. –
3. Ich bin mir nicht sicher, wie es auf diese Weise schneller geht, aber ich nehme an, sie haben ihren internen DNS-Server und ihr Hochleistungsnetzwerk, das die Hostnamenerkennung sowie den Datentransfer zwischen Cloudfront und Lambda-Reise schneller macht. Und der nächstgelegene Endpunkt des Cloudfrontproviders ist der Benutzer. Ich finde immer noch einen Ausweg und lass uns sehen. –