Node.js
AWS
cloud9
lambda

Cloud9でLambda Node.js v8.10を使う(公式対応するまでの暫定)

公式に対応するまでのメモ的な感じです。


さて、先日AWS Lambdaでnode.js v8.10が使えるようになりました。
AWS Lambda Supports Node.js v8.10

2018年4月5日(JST)現在、Cloud9ではまだ対応がされていないようなので、
Lambdaファンクションを作る際、
Node.jsで選べるのは、v4.3とv6.10です。

v8.10で作りたいなーと思った時に、試した手段をメモっておきます。


とりあえず普通にLambdaを作ります。
そういえば、ここで、権限自動作成できると思いますが、
ここで自動作成した権限で、サンプルにあったロジック貼り付けて動かしてみたら、動かなかったので、元々Lambda用にあった権限使ったほうがよさそうです。

「select runtime」にはまだ、Node.js 8.10はないようです。
select runtime

とりあえず、Node.js 6.10を選んで、作成完了します。
Lambda作成確認.png

Cloud9内に、関数名のフォルダ内にindex.jsとtempleate.yamlが作成されるので、templeate.yamlを開きます。

Lambda Config Editorで表示される思いますが、ここでは、Runtimeの設定はいじれないようです。

なので、
下部にある、Toggle editor横の[View with text editor(Ace)]をクリックして、「Ace」に切り替えます。
Ace切り替え.png

そうすると、Yamlを手動で変更できるようになります。
template.yaml.png

Rutimeのところを「nodejs6.10」から「nodejs8.10」に書き換えます。
template.yaml書き換え.png

この状態で、保存して、Deployします。


Lambdaのコンソールに移動して、できた関数を確認します。
ちゃんとv8.10になっているようです。
Lambda Function一覧.png

設定画面上でも同様です。
Lambda設定画面.png


最初からLambdaのコンソールでやれば良いのでは?という気もしますので、今すぐどうしても、Cloud9でやりたいんだーという人向けです。
それに近々対応されると思いますし・・・。


おまけ
そういえば、runtimeとして使えないnode.jsのバージョン指定できるなと思って、やってみましたが、ちゃんとエラーになりますね。
メッセージ上は8.10はダメそうですが、ここはしょうがないかな。
error.png