Ruby on AWS LambdaをDockerで試す with Serverless Framework

RubyAWS 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を使用します。

github.com


コード

以下にGithubリポジトリにコードを用意しました。

github.com

cloneしてREADMEにしたがってコマンドを叩けばDockerコンテナ上でローカル実行で関数を試すことができます。

AWSのIAMユーザーのIDとSECRET_KEYさえ用意すればAPI Gateway経由での関数の実行を簡単に試せます。

最低限の環境しか用意していないため、ライブラリやGemを自由に追加して必要な環境を整えます。


参考記事

全体的に下記のSansanさんのブログ記事を参考にしました。

buildersbox.corp-sansan.com