
技術・機能解説、ノウハウ|AWS (構築・運用・コンサル)
AWS Lambdaにコードを登録する方法
こんにちは。伊藤忠テクノソリューションズ (以下、CTC) の丸山です。
Lambdaにコードを登録する際の方法について解説します。
▼目次
・Lambdaの管理コンソールで直接編集(Webブラウザで編集)
・ZIPファイルをアップロードする
・ZIPファイルをS3に保存し、リンクを指定する
1. Lambdaの管理コンソールで直接編集
こちらは特に難しいことはありません。Lambdaの管理コンソールを開き、「Edit code inline」を選択しておけば、Webブラウザ上でコードの編集が可能です。
注意事項としては、Lambdaに標準で同梱されているモジュール(aws-sdk, http,child_process等)以外を使いたい場合には、ローカルPC等でモジュールを含めたデプロイパッケージ(ZIPファイル)を作成する必要があります。
コード内で使用したモジュールがZIPファイルに含まれていない場合には、下記のように “Cannot find module ‘●●●●'” というエラーメッセージが出ますので、エラーになった際には確認してみてください。

もう1点の注意事項としては、標準で同梱されているモジュール以外(例えばexpressやmoment等)を含むコードを、ZIPファイルにてコードの登録を行うと、Webブラウザ上でのコード編集ができなくなる点です。
逆に管理コンソールでコード編集するメリットとしては、書式のチェック機能が搭載されているため、括弧の閉じ忘れやセミコロンの付け忘れ等、文法ミスに気づきやすいという点や、インターネット環境とWebブラウザがあれば、どこに居てもコードの編集ができるといった点があります。
おまけ情報ですが、コード編集画面の右下に2つのボタンがあり、歯車マークをクリックすると、コードの編集画面の配色を変更することができますので、お好みの配色があれば使ってみてください。もう一方のボタンは編集ウインドを広げるためのボタンです。

2. ZIPファイルをアップロードする
上記で説明したように、Lambdaに標準で同梱されていないモジュールを使用したい場合や、ローカル環境で編集したコードを登録したい場合に選択する方法です。ZIPファイルの構成としては、以下のようにする必要があります。
●●●.zip
┣ ▲▲▲.js
┗ node_modules/
Linux環境をお使いの場合、以下のようなコマンドで上記ZIPファイルを作成することができます。
$ pwd
/User/testDir
$ ls
▲▲▲.js node_modules/
$ zip -r ●●●.zip ▲▲▲.js node_modules/
$ ls
▲▲▲.js node_modules/ ●●●.zip
作成されたZIPファイルをLambdaの管理コンソールからアップロードします。「Upload a .ZIP file」を選択し、「Upload」ボタンを押すことで、ファイルを選択することができます。アップロード後は、Lambda関数をSavaしましょう。

ここでの注意事項としては、LambdaのConfigurationです。Lambdaの管理コンソール(Webブラウザ)で編集していた場合には、デフォルトで問題ないのですが、ZIPファイルでアップロードした場合、Handlerの項目を変更する必要があります。(JavaScriptファイル名をindex.jsとした場合は、デフォルト設定で動きます。)例えば以下のようなコードを event-test.js という名前で作成し、ZIPファイル dst.zip にしたとします。
exports.handler = function(event, context) {
console.log(JSON.stringify(event));
context.succeed('print complete');
};
アップロード後のLambdaのConfigurationは以下のようにする必要があります。

上記のように、JavaScriptファイルのファイル名をHandlerに設定する必要があります。また、コード1行目の exports.handler の “handler” 部分を exports.testFunc と変更した場合には、LambdaのConfigurationにて、handler部分を、 event-test.testFunc と修正する必要があります。
3. ZIPファイルをS3に保存し、リンクを指定する
ほぼ上記2の手順と同じですが、ZIP圧縮したファイルが10MBを超える場合には、S3を使う方法が推奨されています。コードの登録方法は以下のように「Upload a .ZIP from Amazon S3」を選択し、対象ファイルのURLをウインドウに入力してから、Saveします。

S3に保存したファイルはプライベートな状態で問題ありません。S3の管理コンソールを開き、対象のファイルを選択した状態で右上の「Properties」を選択し、Linkと書かれた項目をコピーします。

こちらの方法を選択した場合にも、2.で説明したようにLambdaのConfigurationに注意してください。
- 関連記事のご案内
最後に
本記事では Lambda にコードを登録する方法をご紹介しました。APN プレミアコンサルティングパートナーの CTC は AWS のコンサルティング、設計、構築・運用までをワンストップでサポートするサービス『CUVIConAWS』をご提供しています。AWS の導入にあたってお困りの点があれば、お気軽にご相談頂けますと幸いです。サービスの詳細については以下をご覧下さい。