2017-12-16 2 views
0

Ich lese dieses Tutorial, wie ein Knoten erholsamen App schreibenWie erzähle ich Lambda über alle NPM Abhängigkeiten?

https://github.com/mjhea0/node-postgres-promises

ich diese App als Lambda-Funktion ausgeführt werden soll. Meine Sorge ist das Abhängigkeitsmanagement.

Wie erzähle ich Lambda über alle NPM Abhängigkeiten?

var express = require('express'); 
var path = require('path'); 
var favicon = require('serve-favicon'); 
var logger = require('morgan'); 
var cookieParser = require('cookie-parser'); 
var bodyParser = require('body-parser'); 
var pug = require('pug'); 
var routes = require('./routes/index'); 

Im Tutorial sie npm install und mit aws serveless tun wir kein Konzept von cli Befehle wie das haben.

Antwort

0

Sie können Ihre Anwendung auf dem lokalen Rechner entwickeln und alle Abhängigkeiten von npm in dem von Ihnen erstellten Projekt (auf dem lokalen Rechner) installieren. Sobald Sie mit der Entwicklung fertig sind, packen Sie alle Dateien (einschließlich package.config und npm_modules) und laden Sie sie auf lambda hoch. Bitte beachten Sie beim Zippen der Datei

bitte nicht den Stammordner zippen. Öffne den Hauptordner und wähle alle Dateien und Ordner in dem aus, dann klicke mit der rechten Maustaste auf alle.

0

Sie tun npm install auf Ihrem lokalen Rechner (idealerweise Linux). Wenn Sie dann ein Bereitstellungspaket erstellen, fügen Sie den Ordner node_modules darin ein.

Sobald Sie dieses Implementierungspaket (zip-Datei) hochgeladen haben, wird Lambda Ihre node_modules kennen und sie zusammen mit Ihrem Handler extrahieren.

+0

Es ist auch erwähnenswert, mit aktuellen Änderungen an der AWS-Konsole hinzugefügt. Sie können das Lambda Inline nicht bearbeiten, wenn die Projektgröße 50 MB überschreitet. Bei Projekten, die eine große Anzahl von Knotenmodulen enthalten, stellen Sie möglicherweise fest, dass Sie diese Funktionalität aufgrund der Größe aller Abhängigkeiten nicht mehr nutzen können. Es ist nichts falsch, nur etwas zu beachten. – andrewhiles

-1

npm ist der Paketmanager für JavaScript. Als solches kann es alle Abhängigkeiten in Ihrem Projekt verfolgen. Standardmäßig werden sie (und andere Projektinformationen) in der Datei package.json im Stammordner des Projekts gespeichert. Zum Beispiel, wenn Sie einen genaueren Blick auf die spezifischen package.json-Datei in dem Projekt übernehmen, die Sie mit Ihnen in Verbindung alle Dritten Abhängigkeiten im dependencies Unter Dokument (kopiert hier für Ihre Bequemlichkeit) finden:

"dependencies": { 
    "bluebird": "^3.4.7", 
    "body-parser": "^1.13.3", 
    "cookie-parser": "^1.4.3", 
    "debug": "^2.2.0", 
    "express": "^4.13.4", 
    "morgan": "^1.6.1", 
    "pg-promise": "^5.6.4", 
    "pug": "^2.0.0-beta11", 
    "serve-favicon": "^2.3.2" 
} 

So Beim Ausführen von npm install wird npm die Abhängigkeiten betrachten, die in dieser Datei aufgelistet sind, und die neuesten Versionen herunterladen, die semver rules für alle davon erfüllen.

0

Zusätzlich zu anderen Benutzern, die Ihnen im Grunde die richtige Antwort gaben, würde ich vorschlagen, Claudia.js auszuprobieren, das ein Implementierungswerkzeug für AWS Lambda ist (zumindest wenn es mit Node.js verwendet wird).

Mit Claudia müssen Sie weder Dinge in der AWS-Benutzeroberfläche einrichten, noch müssen Sie sich um die Verpackung kümmern. Der einzige Nachteil ist, dass das Paket, das Claudia erstellt, größer ist als ein von Hand erstelltes Paket mit dem gleichen Code, aber ich würde sagen, dass dies ein vernachlässigbares Problem ist, da es Vorteile hat.

Weitere Informationen finden Sie unter https://claudiajs.com/.

Verwandte Themen