ヤマムギ

growing hard days.

*

TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する

   


twilio-apigateway

Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意するのですが、これをAPI Gateway+Lambdでサーバーレスで処理してしまうケースです。
API Gatewayの設定でややはまってしまいました。

Twilio側の設定

電話番号を取得して、[A CALL COMES IN]にAPIのURLをGETで設定するのみです。

API Gateway側の設定

統合リクエスト

本文マッピングテンプレートを追加します。

  • Content-Type : application/json

統合レスポンス

本文マッピングテンプレートを追加します。

例えばlambdaの戻り値のjsonを下記とした場合

本文マッピングテンプレートはこのようにして音声ファイルとその先のリダイレクト先jsonから変換します。
- Content-Type : application/xml

メソッドレスポンス

200のレスポンスモデルに追加します。

  • コンテンツタイプ:application/xml
  • モデル:Empty

以上でAPI GatewayへのリクエストでTwimlが返って、Twilioの着信をトリガーに意図した応答が出来るようになりました。

@yamamanx

開発ベンダー5年、ユーザ企業システム部門通算9年、ITトレーナー2年目のSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。

このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。

また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。

 - AWS , , ,

ad

ad

  関連記事

Amazon Aurora Serverless 課金確認

Amazon Aurora Serverlessを使い始めてみましたの記事で書い …

DS18B20センサー+Raspberry Piで取得した温度をAmazon Kinesis FirehoseからS3へ格納してAthenaでクエリーしたのをQuickSightで可視化する

JAWS DAYS 2017でやりますハンズオンの「[IoTハンズオン] Ras …

AWS EC2でAMI(Amazon Machine Image)を作成しておく

前回まででひとまずRedmineを構築するところまで出来たので、念のためスナップ …

Going Serverless with AWS(AWS Summit Tokyo 2017)を聞いてきました

AWS Summit Tokyo 2017でセッション「Going Server …

Amazon Elasticsearch ServiceにMySQLのデータを投入してkibanaで可視化してみる

MySQLのデータの可視化にAmazon Elasticsearch Servi …

Amazon SES(Simple Email Service)でメール受信時のアクションでLambdaを実行して渡されるデータを見てみる

Amazon SESで受信したメールをS3に保存して、S3のトリガーでLambd …

AWS ルートアカウントのMFAが使えなくなったので復旧

ルートアカウントどころか、MFAが使えるログインすべてが使えなくなって焦りました …

Amazon CloudSearchにAWS Lambda(Python)からデータをアップロードする

このブログはゆるっとアドベントカレンダー Advent Calendar 201 …

AWS LambdaのSQSへの自前ポーリングをやめてSQSイベントソーストリガーに変更した

以前は、LambdaがSQSからメッセージを受信するには、キューをポーリングして …

AWS Lambda KMSを使って環境変数を暗号化、復号化する(Python)

Lambda内で外部APIを使用する場合などをユースケースとして、環境変数をKM …