LambdaでSinatraを動かしてみる12月から晴れてWebエンジニアになりました。いうことでアウトプットを増やしていかねばと久々の執筆です。LambdaでSinatraを動かしてみたいと思います。Lambdaを使ってREADMEに書かれているコマンドを実行していけばサクッとできます。個人的に何が起きているのかさっぱりで釈然としなかったので自分なりに理解しながら新しく作ってみました。Lambda言わずと知れたサーバーレスのコード実行サービスです。サーバーを管理する必要がなくなるのでサーバーの準備や運用を考えなくてよくなります。aws.amazon.comSinatraRuby製のシンプルにWebアプリケーションが作れるフレームワークです。Railsほど機能はいらんけど、ルーティングあたりの機能は欲しいなどの要望に応えてくれます。CloudFormationAWSでのインフラ構築を自動化してくれるサービスです。一度設定してしまえばそれに従って同一環境を何度でも簡単に作れるようになります。今回はCloudFormationが主役になります。AWSSinatraアプリを作る今回はサンプル的に雑にテキストボックスを用意して、POSTリクエストを投げたら、投稿内容が画面に追加されていくようなアプリを作りました。俺は単純にviewをレンダリングさせて、POSTしてみたいだけなんじゃ!という気持ちになったので新しく作りました。Lambdaのコードを書くコードは以下になります。https://github.com/kimuray/sinatra_lambda_sample/blob/master/lambda.rbこれは完全にAWSサンプルをそのまま持ってきました。なんらかの処理endという形で処理を書いていきます。worldしてみるとわかると思います。コードの内容的には受け取ったリクエストを整形してSinatraに食わせてレスポンスを整形して返却といったことをやっているようです。CloudFormationを設定するCloudFormationの設定はtemplate.yamlというファイルに書いています。https://github.com/kimuray/sinatra_lambda_sample/blob/master/template.yamlこれも大体AWSサンプルと同じです。唯一違うとしたらDynamoDBを用意する設定を書いていないぐらいです。Lambdaへのアクセスポリシーを設定エンドポイントへのURLを設定といった設定が書いてあります。template.ymlを設定し終わったらCloudFormationの準備は環境です。デプロイデプロイはAWSのサンプルに書いてある通りawscliのコマンドを叩いていくだけで完了します。前提としてS3にソースを配置するバケットを作っている必要があるので作っておきましょう。デプロイをするための設定ファイルを作成します。以下のコマンドでserverless-output.yamlという名前で作成されます。}{your-bucket-name}には自分で作ったS3のバケットを設定します。Lambdaにデプロイします。CAPABILITY_IAM{your-stack-name}は任意の名前になります。Lambdaに作成したアプリケーションがデプロイされていること確認します。Gatewayの欄をクリックすると、画面下の方にアプリケーションのエンドポイントが表示されます。このエンドポイントにアクセスして、自分が作ったSinatraアプリが表示されたら成功です。LambdaでSinatraを動かしてみるTweet関連記事2019-01-08Railsでソーシャルログインを作る(Yahoo編)あけましておめでとうございます。今年も気が向いたらブログ更...2018-04-21【Rails】ActiveStorageを使ってお手軽にファイルアップロードを試す最近ぼちぼちアウトプットしようとせこせこインプットしていま...2018-04-08【Vue】Vue.Draggableを使ってサクッとTrelloっぽいものを作るお久しぶりです。LambdaでSinatraを動かしてみるプログラミングスクール勤めのエンジニアが転職するってよ月別アーカイブはてなブログをはじめよう!kimurayspさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。