Ruby on AWS LambdaをDockerで試す with Serverless Framework
RubyでAWS Lambdaの勉強をしようと思い、開発環境を用意しました。
実行環境
- OS: macOS Mojave
- Docker Desktop: 2.1.0.3(Engine: 19.03.2)
- docker-compose: 1.24.1
概要
ローカルの環境を汚したり切り替えたりするのが面倒だったのでDockerで構築しています。
Dockerコンテナ上にServerless Frameworkをインストールし、ローカルで開発したコードを同DockerコンテナからAWSにデプロイします。
なお、AWSアカウントやIAMユーザーの作成は済んでいる前提で、本記事では解説しません。
使用するDockerイメージ
ベースとなるDockerイメージは以下です。AWS Lambdaと同環境で開発した関数を試せるとのことです。
Rubyを使って開発するのでlambci/lambda:build-ruby2.5
を使用します。
コード
cloneしてREADMEにしたがってコマンドを叩けばDockerコンテナ上でローカル実行で関数を試すことができます。
AWSのIAMユーザーのIDとSECRET_KEYさえ用意すればAPI Gateway経由での関数の実行を簡単に試せます。
最低限の環境しか用意していないため、ライブラリやGemを自由に追加して必要な環境を整えます。
参考記事
全体的に下記のSansanさんのブログ記事を参考にしました。