orangeliner.net BLOG logo

[GCP] Cloud Functions が Ruby に対応! ローカル環境でサクっと開発

GCP の FaaS (Functions as a Service)、Cloud Functions がついに Ruby に対応しました!!

AWS Lambda では2018年末の時点で既に Ruby が使えていたので、Cloud Functions にも来ないかな~と思っていた人には朗報ですね。

GETパラメータあり

現在はβ版で、Ruby 2.6 および Ruby 2.7 のバージョンをサポートしています。
Cloud Functions の公式ドキュメントにも既に Ruby 用のサンプルコードが追加されており、普段 Ruby を書いてる人であればすぐに使えると思います。

Cloud Functions の Ruby サポートと併せて、ローカル環境での Ruby を使った Cloud Functions & Cloud Run 開発をサポートする Functions Framework for Ruby (α版)も公開されました。

作成した関数(スクリプト)のデプロイ方法は他の言語とほぼ変わらないと思うので省略しますが、今回は Functions Framework for Ruby(以下、Functions Framework)を使って、ローカル環境でどれほどスムーズに開発ができるのか試してみました。


[GCP] Cloud Functions でレベル付きログを出力する一番簡単な方法

GCPで提供されているFaaS (Functions as a Service)、Cloud Functions ではちょっとしたスクリプトやバッチ(「関数」と呼ばれる)をクラウド上で実行でき、十分な無料枠も準備されているので、個人ユースでもとても便利なサービスです。

Cloud Functions で関数を実行した結果を確認するために、GCPのログ管理サービス Cloud Logging へログを出力できます。
CLoud Logging に保管されたログは GCP のスマホアプリで確認したりもできますが、全てのログを表示すると確認が不要なログも多く表示されてしまい、必要な情報が埋もれてしまいます。

そこで、構造化ログ として出力することで、ログ毎にレベルを設定し、絞り込みをして必要なログのみを表示させることが可能です。

ログの作成、表示、処理 - Google Cloud Functions に関するドキュメント
しかし、GCPの公式ドキュメントを読むと Cloud Logging クライアント ライブラリ とか Logging API とか書いてあってよく分からなくなった(あとで使い分けを理解した)ので、サクッと使えるように一番簡単な方法をまとめてみました。

※ Cloud Functions だけでなく、Cloud Run でも同じ方法が使えるようです。

結論

標準出力にJSONで出力する

1
{"severity":"INFO","message":"This is info message."}

"severity" の値にログレベル"message" の値にログテキストを指定する。
GCP側で "severity" の値を読み取って、ログにレベルを設定してくれる。


Ruby 3.0 型の静的解析機能について(RBS&TypeProf)

2020年12月に正式版がリリースされた、Ruby のメジャーアップデート「Ruby 3.0」において実装されている 静的解析 について調べてみました。

最近では爆速で走る静的型付け言語 Go も人気ですが、Ruby で導入された静的型付けはどのようなものなのでしょうか?



PythonでJSONを整形&記法チェック

Pythonの標準ライブラリである「JSONエンコーダ・デコーダ」のCLIを使って、JSONデータの整形表示や記法が正しいかをサクッとチェックすることができます。

LinuxやPowerShell等で、Pythonを実行出来る環境があればOK。
Pythonのプログラム外でも簡単に実行出来て便利です。


1 / 7 (全 32 件)