Functions Frameworkを使ってPub/SubトリガーのCloud Functionsをローカルで動かす
Functions Frameworkを使うとCloud Functionsをローカル環境で試せるようになる。
// index.ts
export const index = (event, context) => {
const pubsubMessage = event.data;
console.log(Buffer.from(pubsubMessage, "base64").toString());
};
[[package.json]]にstartスクリプトを追加。
{
"name": "functions",
"scripts": {
"start": "functions-framework --target=index --source=dist --signature-type=event"
}
}
Pub/Subのdataパラメータはbase64でエンコードする必要があるとのことで、以下のようなcurlコマンドを実行するとローカルで確認ができる。
curl -X POST -H 'Content-Type:application/json; charset=utf-8' -d "{\"data\":\"`echo -n 'pub-sub-data-sample' | base64`\"}" -H 'ce-type: xxx' -H 'ce-specversion: xxx' -H 'ce-source: xxx' -H 'ce-id: xxx' http://localhost:8080
=> pub-sub-data-sample