【AWS】Lambda – node.jsをデプロイ

AWS使ってます。まぁ1年無料枠だけどなw

今回はLambdaでnode.js使いたいと思ったんですが
以前私が使った時は
Lambdaが出始めということで
デプロイの手段がZipアップロードしかありませんでしたが
今はVisual Studioで作成して
デプロイできるというじゃないか!

ということでそん時の方法を備忘録。

環境

・Visual Studio Community 2017(以下VS2017)
・AWS

とりあえずVS2017はインストールされている前提で。
AWSのアカウントもある前提で書いていきます。

AWS Toolkit for Visual Studio

まずAWSから「AWS Toolkit for Visual Studio」をダウンロード。
https://aws.amazon.com/jp/visualstudio/

ダウンロードが完了したらexeを起動。
VS2017を選択してインストール。

IAM

次にAWSにデプロイするためには
「Access Key ID」と「Secret Access Key」が必要なので
AWSのIAM(Identity and Access Management)を有効にして、Key情報を発行しましょう。

参考
IAM とはAWS Identity and Access Management

とりあえずAWSにログインします。
https://console.aws.amazon.com/console/home

まずは右上の「アカウント」をクリックして
「IAM」を有効化します。

次に「セキュリティ認証情報」をクリックしてIAMの編集を行います。

「ユーザーを追加」をクリックしてユーザーを作ります。

今回はユーザーとして「okita2」を作ります。
(ご察しの通りokitaはもう作成済みなのでokita2です・・・)
ログイン情報を作成してAWSにログインすることもできますが
今回はプログラムからのアクセスだけを考慮します。

次にどの権限を付与するかですが今回はグループも作成しましょう。
「AdministratorAccess」にチェックを付けてグループを作成します。
本来は必要な権限のみを付与しますが、今回はお試しということで適当にw

で、最終確認を行い、問題無ければ「ユーザーの作成」をクリックします。

ユーザーの作成が完了したら、ユーザー情報のCSVをダウンロードします。

Lambda Function

AWS に Lambda Functionを作成します。

AWSのLambdaを選択し「関数の作成」をクリック。
※AWSのコンソール画面は見るたびにバージョンアップしているので
2017年9月はこんな画面だったのか、くらいで参考にしてください。

「一から作成」をクリック。

トリガーの設定ですが、今回はデプロイがメインなのでトリガーは無しで。「次へ」をクリック。
※本来はここでS3やゲートウェイを指定することもできます。

基本設定は適当で問題ないです。
名前は「TestLambda20170916」にしました。

画面下部にはロールの選択がありますが
Lambda用のロールをとりあえず作成しました。

本来は複数ユーザーでいろんなFunctionが動作している場合
厳格にロールと権限を管理する必要がありますが
個人管理のおひとり開発なので適当でw

最終確認をしたら「関数の作成」をクリック。

作成完了!

Functionが完成したので、とりあえず
ブラウザ上で動作確認しましょう。
「テスト」ボタンを押して実行結果が無事出ればOKです。

Visual Studio Community 2017

ようやくVS2017を起動します。
ファイル > 新規作成 > プロジェクト で新しいプロジェクトを作成します。
AWSという項目が増えているので、それを選択し
「AWS Lambda Function Project (Node.js)」を選択。

プロジェクト名は今回「TestLambda20170916」としました。

プロジェクトを作成すると新しいウインドウがでるので
作成したIAM情報を入力します。

設定画面ではAWSで作成したLambda Functionを選択。

で、そのまま少し待つとAWS上のソースが落ちてきますw

今回はテストなのでcallbackの文字列部分を少し変更しました。

変更したら保存しますが、保存しただけではデプロイされません。
プロジェクトを右クリックして「Publish to AWS Lambda…」を
クリックしてデプロイ画面を開きます。

プロジェクト作成した時と同じ設定にして「Next」をクリック。

次の画面ではロール等の変更が可能ですが、
まぁAWSコンソールでも変更可能なので、そのままで「Upload」をクリック。

アップロードに成功するとAWSのFunctionを実行できる画面が出てきます。
これは 表示 > AWS Explorer からも表示可能です。

とりあえず「Example Requests」を「Hello World」にして
「Invoke」をクリック。
これでAWSのテストと同じことができます。

アップロードしたあとなので、
ブラウザでテストした結果とメッセージが変わっていれば成功です。

ブラウザからもコードを確認すると
VS2017からデプロイしたコードになっていると思います。
※キャッシュなのかなんなのかたまに前のままのコードが表示されますが
その時はF5連打で大丈夫なはずですw


ということで、一通り流れを書きましたが
Zipに固めるよりお手軽な気がします。

ちなみにLambdaにはC#やPython等も動かせるのでぜひやりたいと思います!

以上!

コメントを残す

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

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください