Symfoware

Symfowareについての考察blog

AWS API Gateway経由でLambda(Java)を呼び出す

GradleでLambda + Javaのデプロイパッケージを作成してみました。
GradleでAWS Lambda + Java用のデプロイパッケージを作成

この関数をAPI Gateway経由で呼び出してみようと思います。
こちらの記事を参考にさせていただきました。
ゼロから作りながら覚えるAPI Gateway環境構築


API Gatewayの作成



API Gatewayの初期表示です。
「今すぐ作成する」をクリック。

888_01.png

最初にダイアログが表示されます。そのままOK。

888_02.png

ラジオの選択して「新しいAPI」を選択。
適当に名前と説明を記載しました。

888_03.png

次はこんな画面が表示されます。
「アクション」から「リソースの作成」をクリック。
これが「https://api.example.com/[リソース名]」となります。

888_04.png

こちらも「hello」という名前のリソースを作成しました。

888_05.png

このリソースに対しての動作内容「メソッド」を指定します。
リソース「hello」を選択した状態で「アクション」から「メッソドの作成」を選択。

888_06.png

GETやPOSTが選択できます。
「POST」を選択してチェックボタンをクリクしました。

888_07.png

次は、helloにGETされたときの内容を指定します。

「Lambda 関数」の項目に
GradleでAWS Lambda + Java用のデプロイパッケージを作成
こちらで作成したLambda関数名を入力します。
※直接入力すると候補が表示されるので選択。

888_08.png

保存しようとすると、権限を与えてよいかの確認ダイアログが表示されます。
「OK」をクリック。

888_09.png

これでメソッドの指定が終わりました。

888_10.png

上記画面の「テスト」をクリックします。
テスト用のパラメーターが送信できるので、Lambdaのテストで使用したのと同じ内容を送信してみます。


  1. {
  2.     "firstName": "John",
  3.     "lastName": "Doe"
  4. }



888_11.png

テストを実行すると、狙い通りの結果が帰ってきました。

888_12.png



APIの公開



この状態ではまだAPIを使用できません。
「アクション」から「APIのデプロイ」を選択します。

888_13.png

デプロイされるステージは「新しいステージ」を選択。
ステージ名はapiにアクセスする際のurlに含まれます。

888_14.png

デプロイが完了すると、apiにアクセスするためのURLが表示されます。

888_15.png

本来は認証キーの設定などを行ったほうが良いのですが、とりあえずこれで使用できるようになりました。
curlでリクエストを送信してみます。


$ curl -d '{"firstName": "John", "lastName": "Doe"}' https://api.example.com/dev/hello
{"greetings":"Hello John, Doe."}



※接続先は、画面に表示されたURL + /hello

なんとか動いてくれました。


関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2018/05/22(火) 23:51:32|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<AWS API GatewayをjQuery $.ajaxで呼び出し時に「No 'Access-Control-Allow-Origin' header is present on the requested resource.」 | ホーム | AWS Lambda + Javaで同梱した設定ファイルを読み込む>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/2188-1cd1d6bc
この記事にトラックバックする(FC2ブログユーザー)