API GatewayとLambdaを使ったサーバレスSpringアプリケーション(2)

【連載】

AWSで作るクラウドネイティブアプリケーションの基本

【第2回】API GatewayとLambdaを使ったサーバレスSpringアプリケーション(2)

[2019/03/13 08:00]川畑 光平 ブックマーク ブックマーク

開発ソフトウェア

前回は、「Spring Cloud Function」でサーバレスアプリケーションを実装しました。今回は、作成したアプリケーションを「AWS Lambda」へ登録してみましょう。

(2)AWS Lambdaの設定

作成したサーバレスアプリケーションをAWS Lambda Functionとして設定します。AWSコンソールのLambdaサービスを選択し、「関数の作成」ボタンを押下してください。

「関数の作成」ボタンを押下

開かれた「関数の作成」ページで、「一から作成」を選択し、以下の通り設定を行います。

  • 名前:任意の名前を設定
  • ランタイム:「Java 8」を選択
  • ロール:初めてLambdaを使用する場合で、かつロールを初めて作成する場合は「カスタムロールの作成」を選択

「一から作成」を選択して各項目に値を設定する

「カスタムロールの作成」を選択すると、IAMロール画面へのウインドウが開き、Lambda関数の実行やCloudWatchのログ書き込み権限など最低限の権限を設定したIAMロールが自動で表示されます。

「IAMロール」欄で「新しいIAMロールの作成」を選んだまま、任意のロール名を入力し、「許可」ボタンを押下してください。

任意のロール名を入力して「許可」ボタンをクリックする

その後、Lambda作成画面に戻り、「関数の作成」ボタンを押下すると、Lambda関数が作成されます。

Lambda作成画面で「関数の作成」ボタンを押下するとLambda関数が作成される

そのまま下にスクロールすると、関数のコードや実行条件に関する詳細な設定項目が表示されるので、関数コード・環境変数の設定で以下の要領に則って作成します。

入力項目 説明
コードエントリタイプ Lambda関数として実行するアプリケーションをアップロードする方式を決定します。ファイルを直接アップロードするか、S3経由でアップロードするかになりますが、JavaではJAR形式のファイルをアップロードするかたちになります。10MBをオーバーしていてもアップロードできないことはありませんが、ファイルサイズが大幅に大きくなる場合はS3へアップロードする方法を指定してください
ランタイム Lambda関数として実行するアプリケーションのランタイムを指定します。今回は「Java 8」を指定しておいてください
ハンドラ 今回作成した3種類のクラスのうち、HandlerクラスをFQCNで設定します
関数パッケージ コードエントリタイプでzip、jar形式を指定していた状態で、押下するとアップロードダイアログが表示されます。作成したアプリケーションのJARファイルを指定してください。S3経由のアップロードを選択していた場合は、オブジェクトキーを指定します
環境変数 Spring Cloud Functionでは、実行する関数を環境変数FUNCTION_NAMEで指定したBean名で取得します。ここでは、今回作成した3種類のクラスのうち、FunctionクラスのBean名を指定します。クラス名をキャメルケース(最初の英大文字を小文字にしたもので)指定してください

最低限設定が必要な項目は上記になります。実行条件はデフォルトのままで問題ありませんので、入力後は画面上部にある「保存」ボタンを押下してください。

※ 重たい処理などはあらかじめ実行メモリを大きめにとっておいたほうが良い場合があります。「HelloWorld」だけのシンプルなアプリケーションでも、最低100MBはメモリ消費するので注意してください。

「保存」ボタンをクリックする

なお、設定を保存して「テスト」ボタンを実行しても、この段階ではエラーになります。次回詳細を記述しますが、これを回避するには「Amazon API Gateway」で、Lambdaプロキシ統合オプションに基づくリクエストを設定しておくことが必要です。今は、ここでエラーになっても気にしないでください。

これで、作成したアプリケーションを「Lambda Function」として設定できました。次回は、サーバレスアプリケーションを設定したLambdaをAmazon API Gatewayを使って呼び出してみます。

著者紹介


川畑 光平(KAWABATA Kohei)

某システムインテグレータにて、金融機関システム業務アプリケーション開発・システム基盤担当を経て、現在はソフトウェア開発自動化関連の研究開発・推進に従事。

Red Hat Certified Engineer、Pivotal Certified Spring Professional、AWS Certified Solutions Architect Professionalなどの資格を持ち、アプリケーション基盤・クラウドなどさまざまな開発プロジェクト支援にも携わる。

本連載の内容に対するご意見・ご質問は Facebook まで。

※ 本記事は掲載時点の情報であり、最新のものとは異なる場合がございます。予めご了承ください。

一覧はこちら

連載目次

もっと知りたい!こちらもオススメ

ZOZOTOWNを支える

ZOZOTOWNを支える"縁の下"のシステム開発

6月13日~15日に開催された「Interop Tokyo」。その基調講演には、アパレルECサイト「ZOZOTOWN」の開発/運用を担う、スタートトゥデイテクノロジーズの取締役 大蔵峰樹氏が登壇し、ZOZOTOWNの開発の歴史やシステム構成、組織づくりなど、これまで表に出なかったエンジニアリングの"舞台裏"を明かした。

関連リンク

この記事に興味を持ったら"いいね!"を Click
Facebook で IT Search+ の人気記事をお届けします

会員登録(無料)

注目の特集/連載
[解説動画] Googleアナリティクス分析&活用講座 - Webサイト改善の正しい考え方
[解説動画] 個人の業務効率化術 - 短時間集中はこうして作る
知りたい! カナコさん 皆で話そうAIのコト
教えてカナコさん! これならわかるAI入門
対話システムをつくろう! Python超入門
Kubernetes入門
AWSで作るクラウドネイティブアプリケーションの基本
PowerShell Core入門
徹底研究! ハイブリッドクラウド
マイナビニュース スペシャルセミナー 講演レポート/当日講演資料 まとめ
セキュリティアワード特設ページ

一覧はこちら

今注目のIT用語の意味を事典でチェック!

一覧はこちら

ページの先頭に戻る