2016-08-16 4 views
1

Ich schreibe ein Widget von Drittanbietern, das JavaScript-Client-Seite ausführt, um der Website des Benutzers eine Schaltfläche hinzuzufügen. Im Wesentlichen wird der Benutzer auf seiner Site ein Tag einfügen, das einen Pfad zu meinem Widget enthält. Die URL für diesen Pfad enthält die App-ID für den bestimmten Benutzer, der das Widget aufruft. Zum BeispielVerwenden von AWS Lambda und API-Gateway für die Bereitstellung von statischem JavaScript?

<script src="www.widget.com/widget/{USER_ID}"> 

Ich möchte ein paar schnelle Authentifizierung nutzen können AWS Lambda und API-Gateway verwenden, zu tun, die es dem Benutzer ermöglicht wird, das Widget und dienen dazu, die JavaScript-Inhalte zum Download bereit. Das ist sehr einfach mit etwas wie res.sendFile in Express.js, aber API Gateway scheint das Senden einer Datei nicht zu unterstützen. Gibt es eine Möglichkeit, API-Gateway zu verwenden, um das Javascript schnell zu liefern, ohne die gesamte Datei zu stringieren?

Antwort

1

Sie können ein API-Gateway einrichten, um alle Anfragen an s3, die die Datei hostet, zu übertragen (S3 proxy example). Andernfalls können Sie eine Http Proxy Integration einrichten und dann einen Back-End-HTTP-Server ausführen, der die gesamte Datei bereitstellt. Um die Authentifizierung auf dem Wunsch führen Sie eine Lambda-Funktion als

custom authorizer ausführen können, wenn Sie einen Lambda-Integrationstyp haben, ist die einzige war, die gesamte Datei in der Antwort auf das Rück Rückruf mit lambda documentation for callback.

+1

Vielen Dank für die Antwort! Das Problem mit der benutzerdefinierten Autorisierungsfunktion ist, dass das Token aus der Kopfzeile stammen muss. Vorausgesetzt, ich brauche den Authentifizierungs-Token, der von dem URL-Parameter kommt, der nicht funktionieren wird. Kennst du eine andere Art, wie ich mich authentifizieren kann, bevor ich den Zugriff auf S3 erlaube? – JensenS

Verwandte Themen