6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

aws-serverless-expressを使ってみた!(超初心者メモ)

Last updated at Posted at 2017-03-18

今回は、サーバレス+Express.jsでサービスを作りたいのでAWS純正(?)aws-serverless-expressを使ってみた!こいつは優れもので、APIGateway + Lambda + Node + Expressがあっという間に作れてしまう。でも、私はサザエ的な人なので「あっというまに作れてしまう」代物でもハマってしまう。そこで、私の同志(=サザエ的な方)のためにメモを取りました!

とりあえず、最初はテキスト通りに表示確認から!
#環境
MacBook Pro
OS:sierra
バージョン:10.12.3
#参考にしたサイト
AWS 謹製 aws-serverless-express を使って APIGateway + Lambda + Node + Express で RESTful サービスの雛形を最速で作る
GitHub awslabs / aws-serverless-express

#手順
すでにAWSアカウントを設定し、最新バージョンのAWS CLIをインストールしていることを前提としています。

1.ローカル環境を作る

とにかく、色々やりすぎでどこからがスタートなのかすでにわからないが、とにかく、npmは入れてください。
npm は Node.js で作られたパッケージモジュールを管理するツールです。
私はnvmも入れてます。nvm は Node.js 自体をバージョン管理するツールです。
インストール方法など詳しくはこちら↓
macでNode.jsの環境設定
そして、Lambdaとバージョンを合わせた方がいいかもなのでnode.jsは4.3.2を使いました。

$ nvm install v4.3.2
$ node -v
v4.3.2

2.サンプルを取得する。
作業をするのでイレクトリを作って、そこでサンプルを取得します。

$mkdir project/
$cd project/
$ git clone https://github.com/awslabs/aws-serverless-express.git

すると、
/project/aws-serverless-express
というディレクトリが出来上がります。

3.設定する。
まずは作ったディレクトリ内に移って設定をします。

$npm run config -- --account-id="<accountId>" --bucket-name="<bucketName>" --region="<region>" --function-name="<functionName>"

これが設定するための魔法のコード。
中の詳細は以下。

accountIdはAWSのコンソール画面>MyAcount>Account Settingsに書いてある数字です。
bucketNameはS3に作った(なかったら勝手に作ってくれる)バケットの名前。
regionはS3に作るバケットのリージョン。
functionNameはLambdaに使われる関数名っぽい。←これ、あってるか知っている方教えてください〜

ちなみに、regionとfunctionNameはなくても動きます。
デフォルトではregionは「us-east-1」でfinctionNameは「AwsServerlessExpressFunction」と設定されるみたいです。

$cd /prpject/aws-serverless-express/example
$npm run config -- --account-id="<accountId>" --bucket-name="<bucketName>" --region="<region>" --function-name="<functionName>"
> aws-serverless-express-example@2.1.1 config /Users/×××××/prpject/aws-serverless-express/example
> node ./scripts/configure.js "--account-id=×××××" "--bucket-name=×××××" "--region=ap-northeast-1" "--function-name=×××××"

上記を実行すると、package.json, simple-proxy-api.yaml , cloudformation.yamlのファイルに設定を書き込んでくれます。
(私は色々やりすぎで、この3ファイルを手動で書き換えました)

4.セットアップ

$npm run setup

省略

Waiting for changeset to be created..
Waiting for stack create/update to complete
Successfully created/updated stack - AwsServerlessExpressStack

これだけ!

5.確認
AWS コンソールのCloudFormation>Stacks でAwsServerlessExpressStackが CREATE_COMPLETE になれば、完了。
スクリーンショット 2017-03-18 16.57.23.png

Outup>ApiUrlにあるURLをクリックすると
スクリーンショット 2017-03-18 17.04.27.png

が表示されればOK!

#まとめ
GitHubを見てみるとここからこの「example」を使って自分のプロジェクトを作ってね!的なことが書いてあるのでここから、やっと自分のプロジェクトを作っていくわけですが、この先は現在やっているさいちゅうなので、ある程度やってからまとめたいと思います。

6
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?