はじめに
Cloud Run Functions(旧称 Cloud Functions)は第一世代と第二世代が存在し、2025/10/14 現在では第二世代のみ作成が可能です。
現在私は Cloud Storage トリガーを使った第一世代の関数を運用しています。
この記事では第二世代へバージョンアップした際に注意した変更点をまとめます。
バージョンアップした関数について
- ランタイム
- 第一世代:Java 17
- 第二世代:Java 21
- Cloud Storage トリガー利用
注意した変更点
イベントデータの変更
ネットワーク周りの設定の追加
第一世代で Cloud Storage トリガーを使う場合、関数へアクセスする URL は生成されませんでした。
第二世代では(または Cloud Run Functions になったからか)Cloud Storage トリガーでも関数へアクセスする URL がデフォルトで生成されるようになりました。
また、その URL のデフォルト設定がインターネット公開のため、気にせず関数を作成すると知らぬ間にインターネットアクセス可能な状態になってしまします。
これを回避するために、
- 「Ingress」を「内部」に変更する
- 「デフォルトの HTTPS エンドポイント URL」は有効のまま
- 公式ドキュメントより、Eventarc トリガーを使うためにデフォルトの
run.appURLが必要です
- 公式ドキュメントより、Eventarc トリガーを使うためにデフォルトの
の設定が必要でした。
環境変数の設定箇所の変更
第一世代では「変数」タブがあり、そのタブ内でランタイム環境変数やビルド環境変数を設定・変更できました。
第二世代からは「コンテナ」カテゴリに移動しました。
関数新規作成時は、「コンテナ、ボリューム、ネットワーキング、セキュリティ」→「コンテナ」→「変数とシークレット」から設定できます。
関数作成後に設定・変更する場合は、「新しいリビジョンの編集とデプロイ」から設定・変更できます。
サービスアカウントの設定箇所の追加
第一世代ではサービスアカウントを一つ設定する必要がありましたが、
Cloud Run Functions ではコンテナ用と Eventarc トリガー用の二つ設定が必要になりました。(同一アカウントを指定してOK)
より細かいアクセス制御が可能になっていますが、最初は気づいておらず権限不足によるエラーが発生しました。
コンテナ用サービスアカウント
Eventarc トリガー用サービスアカウント
以上です。
第二世代への変更点というよりも Cloud Run Functions への変更点が多かったと思います。
誰かの参考になれば幸いです。



