Amazon API Gateway – API作成から動作確認までやってみる

API Gateway
223件のシェア(すこし話題の記事)

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon API GatewayでAPIを公開する

先日開催された「AWS Summit 2015 New York」にて、「Amazon API Gateway」が発表されました。
このサービスを利用すると、Amazon lambda functionやインターネットで公開されているアプリケーションを利用して
REST APIを公開することができます。
また、Amazon API Gatewayを使用して定義した情報からJavaScriptやAndroid、iOS用のSDKを生成することもできます。
いまのところアメリカ西部(オレゴン)リージョンとアメリカ東部(バージニア)リージョン、そしてEUリージョンの提供となっているようです。

Amazon API Gatewayをつかってみる

では実際にAmazon API Gatewayをつかってみましょう。
この記事ではAWS LambdaからAPI Gatewayを使用していましたが、
ここでは最初にLambdaを定義して、その関数をAPI Gatewayから使用します。

1.AWS Lambda functionを定義する

まずはAWS Lambdaへいき、 次のようなlambda functionを定義しましょう。

console.log('Loading event');

exports.handler = function(event, context) {
    context.done(null, {message:'Hello from AWS Lambda!'}); 
};

この関数では、messageプロパティをもったオブジェクトを返します。

2.Amazon API Gateway画面へ

API Gatewayへ移動し、create apiボタンを押します。

apigateway1

API nameを入力します。なお、既存のAPIからcloneも可能になっています。

3.リソースを作成

次に、リソースを作成します。リソース名とリソースパスを入力して「Create Resource」ボタンをおしましょう、

create-resource

ここではリソース名「greet」と入力しました。

4.メソッド定義

リソースをつくったら、そのリソースに対してメソッドを指定します。
Create Methodボタンを押してGETを選択します。

createmethod

すると、Lambda FunctionかHTTP Proxyを選択できるので、先ほど作成したLambda functionを指定しましょう。
リージョンを設定し、関数名を入力すれば指定完了です。

5.リクエストレスポンスの詳細を設定

APIの詳細が表示されます。必要があれば、ここでリクエストやレスポンスの形式を細かくカスタマイズすることができます。
今回はそのままです。ここは使い方次第でいろいろできそうな予感。

methodsetting

6.Testボタンを押して実行してみる

では、Testボタンを押してAPIを試してみましょう。
body部をみると、Lambda関数が実行されているのがわかります。

testbutton

7.APIをデプロイする

次に、画面左にある「Deploy API」ボタンを押してみましょう。
ステージ(例えば、本番用とか開発用とか)を決め、Deployボタンを押します。

deploy

デプロイすると、APIのURLが発行されます。この時点でAPIは外部に公開されています。

steage

<発行されたURL>/greet
とブラウザに入力すれば、指定したLambdaファンクションが実行され、結果のJSONが画面に表示されます。

8.SDKの生成もできます

API Gatewayには、作成したREST APIを元に、AndroidやiOS用のSDKを生成する機能があります。
先ほどの画面で「SDK Generation」というタブを選択してみましょう。
Android/iOS/Javascriptのプラットフォームを選択して、SDKを生成することができます。

今回はAndroidを指定し、パッケージ名やGroupid名を設定して、Generate SDKボタンを押すと、zipファイルがダウンロードされます。
zipファイルを解凍してみてください。pom.xmlとbuild.gradeがはいっていおり、ビルドすることができます。
下記のように解凍したディレクトリに移動し、mavenとgradleを使ってビルドしてみましょう。

% cd <解凍したSDKのパス>
% mvn install
% gradle build
・
・

これで、Android用のjarファイルが生成されるので、Android用プロジェクトで使用することができます。 Android以外にもiOSプラットフォーム、JavaScriptプラットフォームのSDKを生成することが可能です。

まとめ

今回は、新しくリリースされたAmazon API Gatewayを少しだけ使ってみました。
コンソールから簡単にAPIが公開でき、それ用のSDKも公開できる等、非常におもしろいサービスになってます。

ちなみに、 自分が試した限りAPIの削除ができなかったり、→ ちゃんとステージにデプロイしてればDelete APIできました
各種SDKが対応してなかったりしますが、
そのうち対応するはずなので、もう少し待ちましょう。

参考サイトなど

AWS Cloud Roadshow 2017 福岡