🦸
【Cloud Run functions】Functions Frameworkを使ってローカル開発環境の作成する
実行環境
サンプルコードは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_modules
とpackage.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