AWS Lambdaで Slackのslashコマンドを作る(1)

伏見です。
表題の通りやっていきたいと思います。

(1)セットアップ

まずはおもむろにサーバーレスフレームワークのセットアップをします。
2016年9月現在、Serverless Frameworkは1.0@Beta3くらいまで出てますが、
サクッとAWSのlambdaとAPI Gatewayを使う限り、regeonやprofileなどを対話形式で選んでくれるバージョン0.5.6の方が
今の所使いやすいのでこっちを使います。
0.5系のdocumentはこちら 

入れます。

npm install -g serverless

プロジェクト立てます。

serverless project create

対話形式でいろいろ聞いてくるので、聞かれるままに言語やAWSのプロファイルの設定をします。
あ、aws-cliは入っているものとします。

次に、lambdaのファンクションやAPI gatewayのエンドポイントをサクッと立てます。
ここでは、command01と云う名前にしてみます。

serverless function create functions/command01

また対話形式で、言語や作るものを聞かれます。
ここではnodejs4.3を選んでおきます。

Serverless: Please, select a runtime for this new Function
  > nodejs4.3
    python2.7
    nodejs (v0.10, soon to be deprecated)

設定を終えると、functions/command01以下にlambdaファンクションの本体となる handler.jsや、API gateway、lambdaの設定を司るs-function.jsonなどができています。
ファンクションを作ったディレクトリに移動して、npmの設定を行います。
これは、lambdaにdeployする時に、node_modulesが独立しているためです。

cd functions/command01
npm init

ちなみにwebpackを使う方はファンクションごとのこの設定、いりません。babelやtypescriptを使ったり、jsonやimageをバンドルして扱いやすくしたい…あるいは複数のfunctionごとにコードを共有したい…という方もこっちですね。
0.5系向けならwebpack plugin  がとにかく簡単でオススメです。
サクッとやるだけならいらないです。

(2)まずは繋いでみる

とりあえずデプロイします。

lambda。

serverless function deploy

api-gateway。

serverless endpoint deploy

endpoint deploy後に表示されたURLにブラウザで確認します。

ほげ

表示されました。
これでとりあえずのひな形ができました。

実際の機能作成は次の記事で。

Pocket

Naoto

Wanoで色々やらしてもらってまう

コメントを残す

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