🐕

【Google Cloud】手を動かして学ぶCloud Run functions

2025/02/26に公開

この記事で伝えたいこと(ポイント)

  • Cloud Run functionについて説明しているよ
  • Cloud Run functionについてハンズオンしているよ

はじめに

この記事ではGoogle Cloudが提供するCloud Run functionsを学習していく内容となっています。
主な内容としては実践したときのメモを中心に書きます。(忘れやすいことなど)
誤りなどがあれば修正していく想定です。

Cloud Run functionsとは

ではさっそく、Cloud Run functionsについて見ていきましょう。

公式ドキュメントでは以下のように説明されています。

お客様がコードを用意すると、プラットフォームの構築とメンテナンスがシンプルになるため、残りの作業は Google 側で行われます。
ローカルでの開発、グローバルなスケーリング
サーバー管理が不要
イベントに反応してコードを実行
支払いは従量制

Cloud Functions | Google Cloud

要するにCloud Run functionsは、イベント駆動型のサーバーレスコンピューティングプラットフォームです。
サーバーを管理することなくコードを実行できるため、インフラストラクチャの管理を気にすることなく、アプリケーションの構築および実行に集中できます。

Cloud Run functionsはスケーラビリティ、可用性、セキュリティに優れています。
多くのサービスと統合されているため、強力で汎用性の高いソリューションとなっています。

サーバ管理が不要?イベントに反応?支払いは従量制?スケーラビリティ、可用性、セキュリティに優れている?何を言っているかわからないですね。順番に見ていきましょう。

名前のリブランディング

Cloud Run functionsは、以前はCloud Functionsと呼ばれていました。

参考:Cloud Functions is now Cloud Run functions — event-driven programming in one unified serverless platform

名前の変更はCloud Runとの統合が背景にあります。日本語訳ではCloud Run 関数となっていますが
正式にはCloud Run functionsとなります。

FaaSとは何か(そもそもの話)

今回のCloud Run functions然り、クラウドコンピューティングの代表的なサービスにはFaaSというものがあります。Google Cloud以外では以下のようなものがあります。

  • Azure Functions
  • AWS Lambda

FaaSとはFunction as a Serviceの略で、サーバーレスコンピューティングの一種です。
サーバーレスコンピューティングとは、サーバーの管理を行わずにコードを実行できるコンピューティングサービスのことです。

Cloud Run functionsもFaaSの一種であり、Google Cloudが提供するサーバーレスコンピューティングサービスです。また、イベント駆動型で特定のイベントが発生したときにコードを実行できます。

料金

Cloud Run functionsの料金体系は世代によって異なります。

Cloud Functions の料金 | Google Cloud

なお、支払いは従量制となっており、実際に使用した分だけ料金が発生します。

ハンズオン

まずはCloudShellを起動します。

cloudshell

以下のコマンドを実行してAPIを有効にします。

gcloud services enable logging.googleapis.com
gcloud services enable cloudbuild.googleapis.com
gcloud services enable pubsub.googleapis.com
gcloud services enable cloudfunctions.googleapis.com
gcloud services enable run.googleapis.com

次にCloud Run functions Consoleにアクセスします。

関数の作成をクリックします。

func1

以下のように設定します。

設定項目 設定値
環境 Cloud Run functions
関数名 zenn-function
リージョン asia-northeast1(東京)
トリガーのタイプ HTTPS
認証 未認証の呼び出しを許可

ランタイム、ビルド、接続、セキュリティの設定

設定項目 設定値
メモリ 256MiB
CPU 1
タイムアウト 60秒
同時実行 1
自動スケーリング 0-100
サービスアカウント Compute Engine default service account

ランタイムはNode.js 20、エントリポイントはhelloHttpとします。

func2

デプロイをクリックします。

デプロイをクリックします。

deploy

テスト

関数のURLをコピーボタンでクリップボードにコピーします。

result

実行結果

web_site

まとめ

今回はCloud Run functionsについて学習しました。
Cloud Run functionsはサーバーレスコンピューティングサービスであり、イベント駆動型のサーバーレスコンピューティングプラットフォームです。

Cloud Run functionsはスケーラビリティ、可用性、セキュリティに優れており、多くのサービスと統合されているため、強力で汎用性の高いソリューションとなっています。
また、Cloud Run functionsは支払いが従量制であり、実際に使用した分だけ料金が発生します。

今回はCloud Run functionsを使って簡単な関数を作成して実行しましたが、実際には複雑な設定をして構築することもあります。具体的には以下のとおりです。

  • ランタイムの自動更新
  • サービスアカウントの設定
  • メモリ、CPU、タイムアウトの設定、同時実行数の設定
  • 自動スケーリングの設定
  • トラフィック
  • セキュリティとイメージのリポジトリ

APIを無効にする

gcloud services disable cloudbuild.googleapis.com
gcloud services disable cloudfunctions.googleapis.com
gcloud services disable run.googleapis.com

おまけ

gc_project=`gcloud config list --format 'value(core.project)'`

Discussion