Function リクエストのフロー
Twilio Functionの動作を理解する最良の方法は、HTTPリクエストのフローと、Twilioが最終的に開発者のコードを実行する方法の理解から始めることです。 Twilio FunctionsはWebアプリケーションを形づくるインフラ作業を可能な限り多く処理するようデザインされています。 Twilio Functionsでは、この作業はまずFunctionに対するHTTPリクエストの処理から始まり、パイプラインは開発者のコードまで続きます。
- すべてのFunctionsのリクエストは、開発者のTwilio Functionsに対してリクエストを発行するHTTPクライアントから始まります。 ほとんどのFunctionsでは、HTTPクライアントは着信通話またはテキストメッセージに対して応答するTwilio VoiceまたはMessaging APIです。
- Twilio Functionゲートウェイはこのリクエストを受信し、その検証を試みます。 Twilio Functionで署名の検証がオンになっている場合、Functionゲートウェイは署名の検証を試みます。リクエストまたはTwilioの署名が無効な場合は、リクエストは適切なHTTP 400レスポンスを伴って拒否されます。
- Twilio FunctionゲートウェイがHTTPリクエストを受け入れた後は、開発者のTwilio Function用のペイロードにリクエストが標準化されます。 標準化されたリクエストは開発者のTwilio Functionにcontextとeventという2つの引数として提供されます。 いったん作成されたペイロードは、開発者のTwilio Functionの呼び出しに使用されます。
- Twilio Functionの呼び出しで、開発者の指定したコードの実行が始まります。 Twilio Functionの実行が完了すると、指定されたcallbackメソッドを使用してレスポンスをエミットできます。 エミットされたレスポンスはTwilio Functionsゲートウェイに送信されます。
- 結果をTwilio Functionから受信する際、Twilio FunctionゲートウェイはHTTPレスポンスを組み立て、それをHTTPクライアントに返します。
サポートされるリクエスト
Currently, Twilio Functions only supports HTTP requests. Twilio Functions will respond to three HTTP verbs: GET, POST and OPTIONS. PUT and DELETE are currently not supported.
POSTリクエストについては、Twilio Functionsではapplication/jsonおよびapplication/x-www-form-urlencodedがネイティブでサポートされます。 これはJSONボディーおよびフォームパラメーターはイベントパラメーターとして標準化されるということです。
リクエストの制限事項
Twilio Functionsには、アプリケーション設計の際に考慮すべきいくつかの重要な制限事項があります。
- Execution Time: Twilio Functions execute for at most 10 seconds. Any Twilio Function that exceeds the 10 second limit will be terminated, and the client will receive an HTTP 504 Gateway Time-out response.
- パスパラメーターのサポート: Twilio Functionsはパスパラメーターのサポートを提供しません。 つまり、URLを使用して開発者のアプリケーションに情報を渡すことができないということです。 GETまたはPOSTパラメーターのいずれかの使用が推奨されます。
- 最大レスポンスサイズ: Twilio Functionsのレスポンスサイズは4MBに制限されます。
ヘルプが必要ですか?
誰しもが一度は考える「コーディングって難しい」。そんな時は、お問い合わせフォームから質問してください。 または、Stack Overflow でTwilioタグのついた情報から欲しいものを探してみましょう。