2017-12-16 5 views
0

私はラムダ関数として、このアプリを実行するノード安らかアプリすべてのnpm依存関係についてlambdaにどのように伝えますか?

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

の書き方についてこのチュートリアルを読んでいます。私の心配は依存関係管理です。

ラムダにすべてのnpm依存関係について教えてください。彼らはnpm installを行い、AWSのservelessで、我々はそのようなCLIコマンドの概念を持っていないチュートリアルで

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'); 

答えて

0

ローカルマシンでアプリケーションを開発し、作成したプロジェクト(ローカルマシン内)にすべてのnpm依存関係をインストールすることができます。一旦あなたが開発を完了したら、すべてのファイル(package.configとnpm_modulesを含む)をzipし、lambdaにアップロードしてください。ファイルを圧縮している間にご注意ください

ルートフォルダを圧縮しないでください。ルートフォルダを開き、その中のすべてのファイルとフォルダを選択し、zip allを右クリックします。

0

ローカルマシン(理想的にはLinux)にはnpm installがあります。次に、展開パッケージを作成するときに、node_modulesフォルダが含まれます。

この展開パッケージ(zipファイル)をアップロードすると、Lambdaはnode_modulesを認識し、ハンドラと一緒に展開します。

+0

現在の変更がAWS Consoleに追加されていることにも注目してください。プロジェクトのサイズが50MBを超える場合、ラムダインラインを編集することはできません。大量のノードモジュールを含むプロジェクトの場合、すべての依存関係のサイズのためにこの機能を利用できなくなることがあります。それは間違っていることではなく、気づいているだけです。 – andrewhiles

-1

npmは、JavaScriptのパッケージマネージャです。したがって、プロジェクト内のすべての依存関係を追跡できます。デフォルトでは、プロジェクトルートフォルダのpackage.jsonファイルに保存されます(その他のプロジェクト情報)。たとえば、あなたはあなたにリンクされたプロジェクト内の特定のpackage.jsonファイルを詳しく見てみた場合(あなたの便宜のためにここにコピー)dependenciesサブ文書内のすべてのサードパーティの依存関係を見つける:

"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" 
} 

このように、 npm installを実行すると、npmはそのファイルにリストされている依存関係を調べ、それらのすべてについてsemver rulesを満たす最新バージョンをダウンロードします。

0

基本的に正しい答えを与えた他のユーザーに加えて、私はAWS Lambdaの展開ツールであるClaudia.jsを試してみることをお勧めします(少なくともNode.jsと併用する場合)。

クラウディアを使用すると、AWS UIでの設定やパッケージングの心配がなくなります。唯一の欠点は、Claudiaが作成するパッケージが、同じコードの手作りパッケージよりも大きいことです。しかし、これは、その利点を考えると、これは無視できない問題です。

詳細はhttps://claudiajs.com/を参照してください。

関連する問題