Serverless Traveling Ruby Starterkit - RubyでAWS Labmdaを使う際の基礎にどうぞ
最近注目のキーワードがサーバレスアーキテクチャです。AWS LambdaやAzure Functionなどを使って決して多機能ではない、シンプルなシステムを構築します。それらを組み合わせて一つの大きなシステムとしていく開発技術になります。 今回はそんなサーバレスアーキテクチャによる開発を手軽に体感できるServerless Traveling Ruby Starterkitを紹介します。利用している言語はRubyです。
Serverless Traveling Ruby Starterkitの使い方
コードの例です。環境変数を出力したり、ライブラリを利用しています。
$ cat app/app.rb
#!/usr/bin/env ruby
puts "event: #{ARGV[0]}"
puts "context: #{ARGV[1]}"
puts "To: Lambda,"
puts "From: Ruby!"
require 'nokogiri'
puts Nokogiri
実行結果です。標準出力に返ってきています。HTTPも出力されています。
$ sls run -f hello
Starting process: ./wrapper.sh
stdout:
event: {
"key3": "value3",
"key2": "value2",
"key1": "value1"
}
context: {
"awsRequestId": "id",
"invokeid": "id",
"logGroupName": "/aws/lambda/hello",
"logStreamName": "2015/09/22/[HEAD]13370a84ca4ed8b77c427af260",
"functionVersion": "HEAD",
"isDefaultFunctionVersion": true,
"functionName": "hello",
"memoryLimitInMB": "1024"
}
To: Lambda,
From: Ruby!
Nokogiri
Process completed: ./wrapper.sh
Serverless: -----------------
Serverless: Success! - This Response Was Returned:
Serverless: {
"statusCode": 200,
"body": "{\"message\":\"Go Serverless v1.0! Your function executed successfully!\",\"input\":{\"key3\":\"value3\",\"key2\":\"value2\",\"key1\":\"value1\"}}"
}
Serverless Traveling Ruby StarterkitをベースにすればAWS Lambda上でRubyを使ってマイクロサービスを開発するのが簡単になるでしょう。コードを書くのは簡単なのですが、Lambda上にセットアップしたり、コードを更新したりするのは意外と面倒なので、Serverless Traveling Ruby Starterkitのようなツールを使ってその仕組みに沿って進めるのがオススメです。 Serverless Traveling Ruby Starterkitはnode/JavaScript製のオープンソース・ソフトウェア(MIT License)です。