AWS Lambda(Go) + API Gatewayを触ってみた


みなさんこんにちは、リンクバルの船寄です。

昨年のre:InventでLambdaのGo言語サポートが発表されましたが、まだ触ることができていなかったので、この機会に触ってみました。

今回はその手順を紹介させていただきます。

このポストの内容

  1. Lambdaにアップロードする実行ファイルを作成(at Cloud9)
  2. Lambda functionの作成
  3. API Gatewayの作成
  4. 動作確認
  5. さいごに

Lambdaにアップロードする実行ファイル作成

早速ですが、実行ファイルを作成したいと思います。

今回は手軽に利用できる環境として、Cloud9でコードを書いてビルドしたいと思います。

※ 既にGo言語の環境がある方はCloud9を使わなくてOKです。

1.  AWS コンソールからCloud9を選択 -> 「Create enviroment」をクリックします。

2. 環境名を入力します。

3. 今回はお試しなので最小構成で環境を設定します。

4. 確認画面で「Create Environment」を押下します。

5. しばらくするとIDE画面が表示されます。

6. 画面下部に表示されているコンソールへ入力をし、ファイルを作成します。

7. コードを書きます。

{name: “hoge”, age: 25, prefecture: “東京都”} といった具合のjsonを受け取ってそのまま返すという内容です。

7. 画面下部のコンソールで下記コマンドを実行し、build -> zip形式に変換 -> s3へアップロードを行います。

Lmabdaへ登録すには、zip形式にする必要があります。また、ここではs3へアップロードしていますが、これは、Lmabdaにzipファイルをuploadする際にs3のURLを貼るだけでuploadができるからです。

画面のアップローダーを利用してそのままzipファイルをアップロードすることもできます。

Lambda functionの作成

1. コンソールからLambdaのページへ移動して、「関数の作成」を押下します。

2. 一から作成を選択し、画面の設定値で入力を行います。

3. 先ほど作成した実行ファイルをアップロードします。手順通りに進めた方はs3上のURLを入力していただき、最後に「保存」を押下してください。

※この画面でzipファイルを直接アップロードすることもできます。

4. functionのテストを作成します。画面右上部の「テスト」ボタンを押下し、テストを作成します。

5. テストを実行します。実行結果がその場で表示されます。

API Gatewayの作成

1. AWSコンソールからAPI Gatewayの画面を開き、「今すぐ始める」を押下します。

2. 下記の値で設定していきます。

3. 次に、メソッドを作成します。「 アクション」-> 「メソッド」の順番でリンクを押下します。

4. httpメソッドはPOSTを選択します。

5. 先ほど作ったLambdaを選択します。

6. 最後にデプロイします。「アクション」-> 「APIのデプロイ」

ステージ名は今回は適当に、「dev」としました。

デプロイボタンを押下するとURLが表示されますが、こちらにリクエストを投げることになります。

動作確認

最後に動作確認をしていきます。先ほど作成したAPIのエンドポイントへjsonをポストします。

ちゃんと想定通りのレスポンスが帰ってきました。

curlコマンドの場合は下記をターミナルで叩いてください。(URLは適宜置換してください)

さいごに

いかがでしたでしょうか。手順はそれなりにあるのですが、簡単にAPIを作成することができました。

弊社では、API Gateway + Lambda(Python)  + Amazon DynamoDBをつかって本番運用しているサービスがあります。

サーバレスの流れはますます加速していくと思うので、この辺の情報はキャッチアップしておきたいものですね。


リンクバルでは一緒に働いてくれるエンジニアを募集しております。

リンクバルに興味がある方は こちら ご覧ください。