より良いエンジニアを目指して

1日1つ。良くなる!上手くなる!

Cloud Functionsで関数をテストすると「リクエストに無効な引数が含まれています」

Cloud Functionsでハマりました。

ローカルでばっちり動くことを確認した。これをデプロイすれば俺の仕事は終わるぜい、と。

f:id:rimever:20201015222049p:plain
リクエストに無効な引数が含まれています

うがー!

と叫びたくなるほどでした。

仕方なく、動くところまでコミットを戻して、ソースコードをあれこれ、いじっては動作確認をして何が原因かを探っていました。

半日以上も費やしました。

結果、仕様のようです。

以下のようなエラーのステータスコード(この場合は400)を返す場合は、このようなエラーダイアログが表示されるようです。

const escapeHtml = require('escape-html');

exports.helloHttp = (req, res) => {
  res.status(400).send(`Hello ${escapeHtml(req.query.name || req.body.name || 'World')}!`);
};

「ログ」タブに切り替えてもらえれば、実は想定通りに処理が行われていたことが確認できます。

f:id:rimever:20201015222405p:plain

どうやらステータスコードが400番台のようなエラーコードの場合は、このエラーになるようです。

さすがに、これは、見せ方を確認して欲しいですね。サーバレスAPIを用意したいので、エラーになるケースもテストしたいですから