サードパーティ サービスからペイロードを受信するために、Google クラウド機能を Webhook として使用しています。通常、このようなサービスが Webhook にリクエストを行う場合、確認として HTTP 200 を期待します。ただし、以下のようにクラウド機能をセットアップすると (Google が推奨するように)、進行中の処理が行われているときに、要求元のサービスに 408 が返されます。
この状況では、サードパーティのサービス (この場合はそのクラウドメールインですが、統合を試みた Webhook にも同じことが当てはまります) は、リクエストが正常に処理されたとしても、リクエストを再試行します。
私の質問は、クラウド関数が 200 を返し、非同期処理を続行するにはどうすればよいですか?
//This will return a 408 even though the request is processed successfully
exports.emailIngest = functions.https.onRequest((request, response) =>
{
//return the promise from the firestore admin SDK as per google docs
return admin.auth().getUserByEmail(request.body.envelope.from).then((user) => {
console.log('Successfully fetched user data:', user.toJSON());
}).catch(function (error) {
console.log('Error fetching user data:', error);
});
});