AWS Lambdaにコードを登録する方法

 こんにちは。伊藤忠テクノソリューションズ (以下、CTC) の丸山です。Lambdaにコードを登録する際の方法について解説します。Lambdaにコードを登録する方法は下記の3パターンがあります。

1. Lambdaの管理コンソールで直接編集(Webブラウザで編集)
2. ZIPファイルをアップロードする
3. ZIPファイルをS3に保存し、リンクを指定する

1. Lambdaの管理コンソールで直接編集

 こちらは特に難しいことはありません。Lambdaの管理コンソールを開き、「Edit code inline」を選択しておけば、Webブラウザ上でコードの編集が可能です。

 注意事項としては、Lambdaに標準で同梱されているモジュール(aws-sdk, http,child_process等)以外を使いたい場合には、ローカルPC等でモジュールを含めたデプロイパッケージ(ZIPファイル)を作成する必要があります。

 コード内で使用したモジュールがZIPファイルに含まれていない場合には、下記のように “Cannot find module ‘●●●●'” というエラーメッセージが出ますので、エラーになった際には確認してみてください。

AWS Lamda にコードを登録

 もう1点の注意事項としては、標準で同梱されているモジュール以外(例えばexpressやmoment等)を含むコードを、ZIPファイルにてコードの登録を行うと、Webブラウザ上でのコード編集ができなくなる点です。

 逆に管理コンソールでコード編集するメリットとしては、書式のチェック機能が搭載されているため、括弧の閉じ忘れやセミコロンの付け忘れ等、文法ミスに気づきやすいという点や、インターネット環境とWebブラウザがあれば、どこに居てもコードの編集ができるといった点があります。

 おまけ情報ですが、コード編集画面の右下に2つのボタンがあり、歯車マークをクリックすると、コードの編集画面の配色を変更することができますので、お好みの配色があれば使ってみてください。もう一方のボタンは編集ウインドを広げるためのボタンです。

AWS Lamda にコードを登録

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しましょう。

AWS Lamda にコードを登録

 ここでの注意事項としては、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は以下のようにする必要があります。

AWS Lamda にコードを登録

 上記のように、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します。

AWS Lamda にコードを登録

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

AWS Lamda にコードを登録

 こちらの方法を選択した場合にも、2.で説明したようにLambdaのConfigurationに注意してください。

最後に

 本記事では Lambda にコードを登録する方法をご紹介しました。APN プレミアコンサルティングパートナーの CTC は AWS のコンサルティング、設計、構築・運用までをワンストップでサポートするサービス『CUVIConAWS』をご提供しています。AWS の導入にあたってお困りの点があれば、お気軽にご相談頂けますと幸いです。サービスの詳細については以下をご覧下さい。

関連記事を読む

お問合せボタン