背景
Cloud Functionsで細々と開発をしているのですが、秘伝のタレ化してきたので、細かいことをまとめてみます。
index.js以外のファイルで関数を増やしたい場合
複数のAPIを生やしたり、pubsubを走らせたい場合に、index.js
以外のファイルで関数を増やしたくなる場合があります。
そのような場合は、下記のようにします。
index.jsで別のファイルをrequireしexportsする形にします。
また、admin.initializeApp()
はindex.jsのみに記述します。そうすることで他の関数ファイルでの記述は不要になります。(記述してしまうとエラーになります。)
import * as admin from "firebase-admin";
const firebase = admin.initializeApp();
const OtherFunc = require("./OtherFunc");
exports.OtherFunc = OtherFunc;
exports.OtherFunc = functions
.https.onRequest(async (request, response) => {
console.log('hello')
}
参考
TypeScriptで開発時に、変更をすぐにFunctionsに適応したい。
firebase init
時にTypeScript環境を設定して、エミュレーターで開発しだしても、TypeScriptをFunctions用のJSにリアルタイムで変更を適応してくれません。
なので、package.jsonでtscのwatchスクリプトを追加します。
"scripts": {
"watch": "tsc --watch"
}
参考
## pubsubで設定した実行頻度をブラウザで変更する
deployを通さずに、pubsubの頻度を上げ下げできると外出中に便利だったことがあったので、メモ。
Google Cloud コンソールからCloudSchedulerへアクセス。
変更したいFunctionにチェックボックスを入れて、上部の編集をクリック。
ここで変更した値は、コードをdeployすると上書きされるので注意が必要です。
関数のタイムアウト時間をブラウザで変更する
Google Cloud コンソールからCloudFunctionsへアクセス。
変更したい関数を選択し、関数の管理画面にアクセスします。
上の方に編集
があるので、編集をクリック。
ランタイム、ビルド、接続、セキュリティの設定をクリックすると、下記のようなメモリやタイムアウトを編集できる画面が出てくるので、こちらを編集し、更新します。
参考