
アドベントカレンダー2023#18:DialogflowとGASの連携でのタイムアウト問題(DEADLINE_EXCEEDED)
状況の概要
今日の主な作業は、DialogflowからGoogle Apps Script(GAS)のサービスを呼び出すことでした。データの更新日時を取得するWebhookは正常に終了しましたが、分析処理のWebhookはなぜがエラーが発生しました。同じWebAPIなのに不思議でしたが、意外な盲点がありました。
エラーの原因:タイムアウト
DialogflowのWebhookには通常、5秒程度の標準タイムアウトが設定されています。この時間内にWebhookからの応答がない場合、「DEADLINE_EXCEEDED」というエラーが発生することがあります。今回の作業中にも、このエラーに直面しました。
エラーメッセージ
具体的なエラーメッセージは以下の通りです:
Webhook call failed. Error: DEADLINE_EXCEEDED, State: URL_TIMEOUT, Reason: TIMEOUT_WEB.
このメッセージは、Webhookの呼び出し中に期限切れが起こったことを示しています。
解決策の模索
DialogflowのWebhookのタイムアウト時間を延長することは、直接的には可能ではありません。そのため、この問題に対する解決策を模索する必要があります。処理の最適化や、必要な場合は処理の分割など、いくつかのアプローチを検討することが考えられますが、OPENAI APIをCALLすることは、不可能になりました。別の方法を考えなくてはなりません。ここまで来て、大きな痛手です。
今後の方針
このタイムアウト問題は、DialogflowとGASの連携における重要な課題となりました。この課題解決のために、仕様を変更し、より効率的な連携に変更することが必要です。初めての取り組みでは、想定外ばかり発生しますが、このような課題は学びの機会と捉えて、積極的に解決策を探求していくつもりです。