AWS lambda zipファイルアップロード

Pocket

AWS lambdaはサーバーレスで関数処理を実行したい場合便利なサービスです。初めて試す場合シンプルにブラウザからコードを記述しテスト実行まで行えます。lambda関数をNode.js 12.xの設定で作成した場合初期のコードは下記のサンプル(index.js)が入っています。

exports.handler = async (event) => {
    // TODO implement
    const response = {
        statusCode: 200,
        body: JSON.stringify('Hello from Lambda!'),
    };
    return response;
};

index.jsに入る範囲でコードを書く分には、ブラウザの機能を使って書いてもいいとは思うのですが、複数のJSファイルで構成したい場合やnode_modulesを埋め込みたい場合ブラウザから手動で登録していくのは大変な作業です。このような場合lambdaには.zipファイルでのアップロードとS3からのファイルアップロードが利用できます。私の場合ローカル環境でテストしてzipファイルにまとめてlambdaへアップロードする方法を採用しています。ローカル環境でプログラムに必要なnode_modulesを先に入れてしまいます。そして、メイン実行するJSファイルをサンプルと同じくindex.jsという名前にしてexports.handlerに返す処理を埋め込みます。自分で作成したクラスモジュールなども別のJSファイルに入れます。その後下記コマンドでzipを実行します。

#プロジェクト内のディレクトリの場合
zip -r index.zip ./*

zipコマンドは-rオプションをつけるだけです。index.zipが完成したらブラウザ画面の[関数コード]のアクション内「.zip ファイルをアップロード」を選択します。

「.zip ファイルをアップロード」を選択
「.zip ファイルをアップロード」を選択

ファイルアップロードダイアログが表示されるのでアップロードさせるzipファイルを選択し[保存]ボタンを押します。アップロードが成功するとブラウザの関数コード編集が出来なくなるようです。

.zip ファイルをアップロードダイアログ
.zip ファイルをアップロードダイアログ

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA