TwilioからのリクエストをAPI Gateway+LambdaでTwimlを返して処理する
Twilioで着信した時のリクエスト先としてTwimlをWebサーバやS3で用意するのですが、これをAPI Gateway+Lambdでサーバーレスで処理してしまうケースです。
API Gatewayの設定でややはまってしまいました。
目次
Twilio側の設定
電話番号を取得して、[A CALL COMES IN]にAPIのURLをGETで設定するのみです。
API Gateway側の設定
統合リクエスト
本文マッピングテンプレートを追加します。
- Content-Type : application/json
|
1 2 3 4 5 6 7 8 |
{ "param": { #foreach( $key in $input.params().querystring.keySet() ) "$key": "$input.params().querystring.get($key)"#if( $foreach.hasNext ),#end #end } } |
統合レスポンス
本文マッピングテンプレートを追加します。
例えばlambdaの戻り値のjsonを下記とした場合
|
1 2 3 4 5 |
{ 'voice':'<ボイスファイルURL>', 'redirect':'<リダイレクト先URL>' } |
本文マッピングテンプレートはこのようにして音声ファイルとその先のリダイレクト先jsonから変換します。
- Content-Type : application/xml
|
1 2 3 4 5 6 7 |
#set($inputRoot = $input.path('$')) <Response> <Play>$inputRoot.voice</Play> <Redirect method="GET">$inputRoot.redirect</Redirect> </Response> |
メソッドレスポンス
200のレスポンスモデルに追加します。
- コンテンツタイプ:application/xml
- モデル:Empty
以上でAPI GatewayへのリクエストでTwimlが返って、Twilioの着信をトリガーに意図した応答が出来るようになりました。
最後までお読みいただきましてありがとうございました!
「AWS認定資格試験テキスト&問題集 AWS認定ソリューションアーキテクト - プロフェッショナル 改訂第2版」という本を書きました。
「AWS認定資格試験テキスト AWS認定クラウドプラクティショナー 改訂第3版」という本を書きました。
「ポケットスタディ AWS認定 デベロッパーアソシエイト [DVA-C02対応] 」という本を書きました。
「要点整理から攻略するAWS認定ソリューションアーキテクト-アソシエイト」という本を書きました。
「AWSではじめるLinux入門ガイド」という本を書きました。
開発ベンダー5年、ユーザ企業システム部門通算9年、ITインストラクター5年目でプロトタイプビルダーもやりだしたSoftware Engineerです。
質問はコメントかSNSなどからお気軽にどうぞ。
出来る限りなるべく答えます。
このブログの内容/発言の一切は個人の見解であり、所属する組織とは関係ありません。
このブログは経験したことなどの共有を目的としており、手順や結果などを保証するものではありません。
ご参考にされる際は、読者様自身のご判断にてご対応をお願いいたします。
また、勉強会やイベントのレポートは自分が気になったことをメモしたり、聞いて思ったことを書いていますので、登壇者の意見や発表内容ではありません。
ad
ad
関連記事
-
-
Lambdaでちょっとしたコードを試すときに便利なエディタのフルスクリーン機能
Lambda歴6年で、はじめて使いました。 この存在に気がついてなかったです。 …
-
-
RDSスナップショットをS3にエクスポートする新機能を試そうかと思った
やったこと RDSスナップショットをS3にエクスポートできる、という新機能が追加 …
-
-
Amazon Linux2(EC2)にEC-CUBE 4をインストール
こちらのHOMEお知らせ・コラムAmazon Linux2にEC-CUBE4.0 …
-
-
Feedlyのフィードを自動でSlackへ投稿する(AWS Lambda , Amazon DynamoDB)
やりたいこと Feedlyで共有したいフィードに特定のタグを付けます。 特定のタ …
-
-
東京リージョンでAWS Control Towerランディングゾーンをセットアップする
AWS Control Towerの最初の画面で[ランディングゾーンの設定]を押 …
-
-
Cloud9 Python3でpipも3にする
このブログは、2019/10/20に書いた、 Cloud9のAMIがCloud9 …
-
-
EC2 Dedicated Hosts(専有ホスト)を起動
クォータ引き上げ 新規で作成したアカウントではDedicated Hostsがソ …
-
-
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Microservices × Serverless On AWS」で運営と懇親会LTをしてきました
「JAWS-UG Osaka 第22回勉強会 東西の中の人が語る!!! Micr …
-
-
AWSアカウント内のLambda関数を削除するLambda(Python)
やりたいこと 特定のAWSアカウントの特定リージョンのAWS Lambda関数を …
-
-
AWS東京リージョンのAZ(apne1-az1)障害時の当ブログで発生していたことの記録
日本時間2/19 23:01頃より、東京リージョン、特定AZの1つでEC2インス …

