🔥
GCPのCloud Functionsの関数を直接実行する方法
結論
大きく下記の2つの選択肢があります
- GCPのコンソール画面で「関数をテスト」を実行する
- gcloudコマンドを実行する
※この方法はCloud Functions for Firebaseでデプロイしている関数でも同じく実現可能です。
課題
- Cloud Functionsの関数をデプロイして、直接実行したい
- 一度だけ実行する捨て関数を呼び出したい
- スケジューラーやhttp callの関数を直接実行したい
GCPのコンソール画面から行う方法
- GCPのコンソールで任意のアカウントでログイン
- GCPのコンソールで任意のプロジェクトに入る
- GCPのコンソールで任意の環境に切り替える
- Cloud Functionsのページへ移動
- 関数の名前のリンクから「関数の詳細」へ移動
- 「テスト中」タブへ移動
- 「関数をテスト」を実行
gcloudコマンドの方法
詳しくはリンクの公式サイトで
gcloud functions call YOUR_FUNCTION_NAME --data '{"name":"Keyboard Cat"}'
エラーが出る
{"error":{"message":"Bad Request","status":"INVALID_ARGUMENT"}}
http onCallの関数を実行した時に上記のようなエラーが出た場合の対処法
- JSON形式で
data
要素を持たせる - 実行
※何も必要としていなくてもCloud Functionsの仕様上必要
{
"data": {
"hoge": 'ここに任意のデータを入れる',
"fuga": 'JSONの形式で"data"要素を持ったデータを渡す必要がある'
}
}
参考
Discussion