on
AWSのlambdaでrubyを使う。
AWS SAMで,AWS Lambdaを使う。
基本的には,AWS サーバーレスアプリケーションモデル (AWS SAM) の使用に従う。
AWSの文書のInstalling the AWS SAM CLI に従い,SAMをインストール。
事前の準備は,
- awscli のインストール
- aws sam cli のインストール
- docker のインストール
dockerは,native extenstion を要するgem (例えば,nokogiri)の使用時に必要。
awscliのセットアップ
awscliのインストール
macOS に AWS CLI をインストールするを参考にする。
もしくは,homebrewを使いinstallする。Homebrew Formulae awscli
brew install awscli
AWS Configure
aws configure
で必要な情報を入力する。
regionは,「東京」を使う場合は,”ap-northeast-1”を入力。 AWS のリージョンとエンドポイント
設定入力後, aws configure
を再実行すると,現在の設定が表示される。
AWS SAM CLIのインストール
Install the AWS SAM CLI Using Homebrew
awscliをhomebrewでインストールした場合は,AWS SAM CLIもhomebrewでインストールする。さもないと,SAM CLIの実行時に,エラーがでた。
brew tap aws/tap
brew install aws-sam-cli
sam --version
sam init
sam init --runtime ruby2.5
で, sam-app/
の中に ruby 2.5 を使ったlambdaの雛形が作成される。
directory を変更したい場合には,
sam init -n [name] --runtime ruby2.5
例えば, test
以下に作りたい場合には,
sam init -n test --runtime ruby2.5
sam init
のオプション等については, AWS SAM CLI Command Reference の sam init を参照。
ruby でlambdaを書く。
sam init
で作成したdirectoryの下にある readme.md
を読めばだいたい分かる。
気をつける点は,Gemfile
の場所と種類。readme.mdにも書いてあるが,
./Gemfile
は,testとdocumentation用のGemfile./hello_wold/Gemfile
が,lambda関数用のGemfile
例えば,関数内で,nokogiriを使う場合には,hello_world/Gemfile
に,gem nokogiri
を書く。
navite extensionを使ったgemをdeployする場合には,
sam build --use-container