Cloud Functionsが消えた？ CloudRun関数へ

# Cloud 「Run」 functionsに変わったようです

Google CloudのCloud Functionsは<b>[Cloud Run functions](https://cloud.google.com/functions?hl=ja)</b>（またはCloud Run関数）となりました。
2024年8月にリブランドされ、全てCloud Run上で実行されるようになったようです。

機能はほぼ同じで以前と同様に利用できるのですが、ただ**かなり影が薄くなりました。**
以前はGoogle Cloud内にCloud Functionsで専用ページがあったのですが、2025年以降それが無くなっています。

![Snapshot_212.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549938/4a978cf2-122f-4d87-8717-7216a6b46af7.png)


※上の画面でCloud Functionsを選んでもCloud Runに転送されてしまいます。（既に作成している方以外）

<br>


過去のCloud Functionsの記事なんかで興味を持った方はたぶん見つけられないかと思いますので勝手に紹介したいと思います。

実際の作り方は次回としまして、今回は概要と良い所・悪い所を紹介します。

次回はこちらです
https://qiita.com/nekoniii3/items/d443f49de6480a6309b2

# Cloud Run functions概要

Cloud Run functionsサーバーレスコンピューティングサービスです。そうなると<b>「サーバーレスとは？」 </b> になってしまいますが説明に自信がないのでここら辺を読んで頂けたらと思います。

https://aws.amazon.com/jp/what-is/serverless-computing/

<br>

内容は難しいのでざっと紹介しますと、ソースコードを<b>「ペッ」</b>と貼り付けるだけでアプリケーションの構築ができるサービスです。

![スクリーンショット 2025-03-22 205124.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549938/e31fa26c-9a93-4011-b782-c6df0f9f240c.png)

<br>

通常クラウドサーバを利用するとなるとPythonなどをインストールしてみたりして実行環境を整える必要がありますが、Cloud Run functionsはそれが不要です。Linuxに触ったことがないという人でも簡単にバックエンド側の開発が行えます。類似のサービスは[AWS Lambda](https://aws.amazon.com/jp/lambda/)、[Azure Functions](https://azure.microsoft.com/ja-jp/products/functions)となります。

この例ではPythonですがNode.jsやPHP、Javaなども利用できます。

では以下に通常の環境に比べてのCloud Run functionsのメリット・デメリットを挙げたいと思います。

# Cloud Run functionsいい所

メリットは以下です。

- 環境構築が不要（上で挙げた通り）
- 定期実行処理がしやすい
- 管理がしやすい（ログが見やすい）
- 料金が安い
- ドメインが不要

<br>

「～しやすい」などなんともアホっぽくて申し訳ありませんが、大きくはこんなところが挙げられます。

私はnoteでひたすら[ヤフーニュースのコメント数を取得する](http://note.com/nekoniii3/n/n908f55b5f565)というのやっていて、30分ごとにスクレイピングするスクリプトを実行しているのですが、Cloud Schedulerと合わせて簡単に定期実行するシステムが構築できました。

![スクリーンショット 2025-03-22 214433.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549938/a28a0d1c-fec7-4e1e-8cce-8d6421b6f2a9.png)


※これはGoogle Cloudのサービス[Cloud Scheduler](https://cloud.google.com/scheduler/docs/schedule-run-cron-job?hl=ja)の画面です

<br>

またログも確認しやすく、エラーの際にはエラーログだけを簡単に確認することができます。Linuxのログファイルはそのままだとかなり見づらいので、これはCloud Functionsにしてほんとに良かったと思いました。

![スクリーンショット 2025-03-22 202850.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549938/3f22e17c-1b8b-4c58-be7a-d535a22cda3f.png)

※エラーログだけ簡単に確認することができます


<br>

料金も無料枠があり処理時間が短ければ月200万までの呼び出しは無料です。（料金の詳細は[こちら](https://cloud.google.com/run/pricing?hl=ja)）
ドメインも自動で発行されるのでドメインの指定の必要がない場合はそのまま利用できます。



# Cloud Run functions悪い所
デメリットは以下です。

- デプロイが遅い
- 毎回初めまして（セッションが使えない）
- プロダクト自体の仕様変更がある

<br>

1つめの「デプロイが遅い」とはソース修正後、すぐには実行環境に反映されません。

![Snapshot_213.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3549938/433fae8f-ce87-4ce9-a892-86fa179e51ae.png)

※上記はソース修正後の画面ですがデプロイには最低でも数分かかります

<br>

これは結構ネックで明確な目的を決めず、ゴリゴリ開発しながら作るものには向いていないと思います。

2つ目の「毎回初めまして」はWebサーバーにクライアントごとの情報を保存する[セッション](https://qiita.com/mrshouuge/items/387b1408160022acae94)が利用できないため（利用できなくないかもしれませんがすんなりとは使えなそうです）直近のやり取りを保存するシステムには向いていません。（カートが必要なショッピングサイトなど）

3つ目は当面ないと思いますが過去にCloud Functions 1gen→Cloud Functions 2gen→Cloud Run functionsへのアップデートがあり、このような場合に対応を要することがあります。環境不要とは言っても放置することはできずGoogle Cloudからのアナウンスをチェックする必要性があります。


# 次回

微妙なとこで終わりましたが、次回実践編として通知メールを送信するCloud Run functionsの構築例を紹介したいと思います。