🦸

【Cloud Run functions】Functions Frameworkを使ってローカル開発環境の作成する

2025/03/11に公開

実行環境

サンプルコードはNode.jsで記述します

  • OS: macOS 15.3.1
  • npm: 10.8.2
  • Node.js: 20.18.0
  • @google-cloud/functions-framework: 3.4.6

ローカルでの実行方法

Cloud Run functionsをローカルで実行する方法は2種類あります

  • Functions Frameworkを使用する
  • Functionsエミュレータを使用する

簡単に特徴をまとめると以下のようになります

Functions Frameworkの特徴 Functions エミュレータの特徴
基盤となるコンテナ化ソフトウェア(Dockerなど)は必要ない 呼び出しやデプロイなどの本番環境コマンドをローカルでシミュレートできる
基盤となる言語インフラ(パッケージマネージャーや言語ランタイムなど)が必要 本番環境にデプロイされた際の関数の実行方法を忠実に再現できる

今回はFunctions Frameworkを使用した方法を紹介します

環境構築

ライブラリのインストール

Functions Framework ライブラリをインストールします

npm install --save-dev @google-cloud/functions-framework

node_modulespackage.jsonが作成されます

関数の作成

index.jsを作成して以下のコードを貼り付けます

const functions = require('@google-cloud/functions-framework');

// Functions FrameworkでHTTP関数を登録する
functions.http('myHttpFunction', (req, res) => {
  // HTTPレスポンスを返す
  res.send('OK');
});

コマンドの設定

package.jsonにFunctions Frameworkを実行するコマンドを追記します

{
----- ここから追記 -----
  "scripts": {
    "start": "npx functions-framework --target=myHttpFunction [--signature-type=http]"
  },
----- ここまで追記 -----
  "devDependencies": {
    "@google-cloud/functions-framework": "^3.4.6"
  }
}

--target=myHttpFunctionオプションにはindex.jsで作成した関数名を記述します
--signature-typeオプションには関数で使用される署名タイプを記述します(デフォルトはhttp
ちなみに--protオプションを使用することでポート番号を指定することもできます

関数の実行

以下のコマンドをするとローカルホストが立ち上がります

npm start

ブラウザからlocalhost:8080にアクセスしてみると、OKが返ってきました

参考

Discussion