質問: function(event, context,) { ... } ``` という書き方でお願いしますと記載されています。 これは、node.js特有の書き方ではないということでしょうか? lambdaでnode.jsの言語を選択し登録する際は、lamdba特有の書き方でないといけないと考えています。 しかし、別サイトでは、ローカルで起動したものをzipで保存してアップロードしている記事もありました。 zipで上げることで、lambda特有の書き方を回避できるのでしょうか? lambdaに詳しい方いらっしゃいましたら、教えて頂きたいと思います。 補足になります node.jsだとこのような書き方で、lambdaで同じ内容だとこのような書き方というソースを頂けると助かります。
回答: まず、このコードの書き方はnode.jsを普通に使っていても出てくる書き方です。 Lambdaで指定した関数が呼び出される際には、イベントデータ、ランタイム情報を引数とするので、 `event`, `context` の2引数を宣言しておいてくださいという以上の意味はないです。 ### コンソールでコードを書く場合と、zipファイルをアップロードする場合の違い > > しかし、別サイトでは、ローカルで起動したものをzipで保存してアップロードしている記事もありました。 > > zipで上げることで、lambda特有の書き方を回避できるのでしょうか? > > > やや雑な説明になりますが、 AWS Lambda利用時に指定するHandlerに指定する必要があります。 (例:`index.myHandler`) このうち、`index`がモジュール名、`myHandler`が関数名です。 AWSコンソールでコードを編集していた場合は自動的に`index.js`というファイルとみなされて、 モジュールが`index`となります。 その中で定義済みの関数と組み合わせてHandlerを指定することになります。 zipファイルでアップロードされた場合、zip内部のファイル名とその内部で定義された関数を指定することになります。 例えば > > + index.js > > + myFunc.js > > > みたいに複数のファイルが含まれていており、myFunc.js内にあるmyHandlerを指定したい場合は、 Handlerに`myFunc.myHandler`と設定することで該当の関数が呼び出されます。 もちろん、zipファイル内にあるjsファイルも同じ関数の書き方が必要になります。 冒頭の通り、回避という言い回しはちょっと相応しくないのですが、「コンソールでの定義方法をしないでもいいのか」 という意味合いでは「回避できない」ということにはなります。