Kien が、
Node.js の Lambda デプロイパッケージを
作成する方法を示します

kien_lambda_node

Node.jsで AWS Lambda 関数を作成しましたが、呼び出すとエラーが発生します。エラーが発生しないように デプロイパッケージをビルドする方法を教えてください。

Node.js での Lambda 関数の一般的なエラーは、「can not find module (モジュールが見つかりません)」です。 このエラーは通常デプロイパッケージが、Lambdaサービスがモジュールおよびライブラリを読み込むための正しいファイル構造を持っていない、またはファイルパーミッションが正しくないことが原因です。(Lambda はグローバル読み込み許可を必要とします。)

これらの説明に従って、すべてのファイルの読み込みおよび実行許可をもって、.zipファイルのルートの 関数コードを含むデプロイパッケージを構築します。

Linux および macOS

インストールは関数プロジェクトフォルダーに依存します

注意: ほとんどの Node.js モジュールはプラットフォームに依存しませんが、一部のモジュールは特定のオペレーティングシステム環境に対してコンパイルされます。Lambda は、Linux 環境で動作します。npm でモジュールをインストールする場合、zip ファイルを Linux 環境で構築して、正しいプラットフォームに対する依存関係が必ず含まれるようにすることをお勧めします。

1.    コマンドラインインターフェイス (CLI)で、ダイレクトリーをプロジェクトフォルダーに変更します。例:

cd /project-folder-name

注意: プロジェクトフォルダー名をプロジェクトフォルダーの実名に置き換えます。

2.    npm パッケージ名をインストールするコマンドを使用して、依存性を関数プロジェクトフォルダーにローカルでインストールし、パッケージ名 を実際のパッケージ名と置き換えます。例えば、JavaScript用AWS SDKモジュールをプロジェクトフォルダーのルートにインストールするためには、このコマンドを実行します:

npm install aws-sdk

ヒント: Lambda には、基本コンテナ設定の一部として JavaScript用 AWS SDK ライブラリが含まれています。別のバージョンのライブラリを使用する必要がある場合は、ローカルなコピーを含めることもできます。現行のLambda環境およびサポート対象のライブラリについての詳細は、Lambda 実行環境および利用可能なライブラリを参照してください。

Lambda関数用に必要な各モジュールのためにコマンドを実行してください

注意: 解凍されたファイルの関数のサイズには 250 MB の制限があります。関数が動作するために必要なライブラリだけを含めます。

デプロイパッケージの構築

CLI で、次のコマンドを実行します。

zip -r ../function-name.zip .

注意: 関数名をデプロイパッケージに命名したいファイル名に置き換えます。

これにより、プロジェクトフォルダのすべてのファイルが、親フォルダにある .zip ファイルに入れられます。

デプロイパッケージの検証

1.    CLI で、次のコマンドを実行します。

zipinfo ../function-name.zip

注意: 関数名をデプロイパッケージの実際のファイル名に置き換えます。

.zipでunzip -lを実行してコンテンツをリストすることもできますが、出力は詳細ではありません。

2.    関数ハンドラのソースファイルは、zip ファイルのルートにあることを検証するために出力を確認してください。

3.    出力を確認して、ファイルにグローバル読み込み許可があることを検証してください。必要時にアクセス許可を修正する方法を含む詳細は、Lambdaデプロイパッケージのアクセス許可ポリシーを参照してください。

Windows

デプロイパッケージの構築

1.    ファイルエクスプローラーで、プロジェクトフォルダーを開きます。

2.    すべてのプロジェクトファイルを選択し、その後右クリックしてコンテクストメニューを開きます。

3.    送信するを選択し、圧縮 (ジップ済み) フォルダーを選択します。

4.    .zipファイル名を入力します。

デプロイパッケージのアップロードおよび検証

1.    Lambda コンソールで、関数を選択します。

2.    [関数コード] の [コードエントリタイプ] で、[.zipファイルをアップロードする] を選択します。

3.    関数パッケージで、 アップロードを選択します。

4.    作成した.zipファイルを選択し、開くを選択します。

5.    コンソールの最上部で、保存するを選択します。

ヒント:update-function-code コマンドを使用して、AWS コマンドラインインターフェイス (AWS CLI) から .zip ファイルをアップロードすることもできます。

6.    アップロードが終了した後、テストを選択します。

ヒント:AWS CLIから7-Zipを使用して、デプロイパッケージのファイルパーミッションを検証することもできます。7-Zipウェブサイトからダウンロードします。詳細は、 Lambdaデプロイパッケージのアクセス許可ポリシー を参照してください。


このページは役に立ちましたか? はい | いいえ

AWS サポート ナレッジ センターに戻る

サポートが必要ですか? AWS サポートセンターをご覧ください

公開日: 2018 年 6 月 29 日

更新日: 2019 年 02 月 15 日