LoginSignup
4
5

More than 5 years have passed since last update.

Twilioサーバーレス化作業記録 - RequestURLもサーバーレス化

Last updated at Posted at 2015-12-09

はじめに

こちらのハンズオンに参加させて頂きました。

Twilio API 勉強会 Vol.28 - サーバーレスアーキテクチャで Twilioを安全に運用しよう! ハンズオンメモ

とても参考になりました!
honkimiさんありがとうございます!

(この投稿内容もハンズオンメモをベースにしております)

概要

ハンズオンではフォールバックURL(=失敗時)のサーバーレス化を行いました。

セッション内で言及されていましたが正常に動作させる場合でも
サーバーレス化と相性が良いですよ、とのこと。

TwilioもLamdbaもまだ初心者ですが、試してみました!

AWS Lambda 側

AWS Lambda Functionの作成

AWS にログインし、AWS Lambdaを選択

初期画面にて「Create a Lambda Function」

blueprint で twilio-blueprint を選択

  • Name: TwilioRequset
  • Role: lambda_basic_execution (ハンズオン内で作成済)

他はデフォルト値のままとしました。
Next → Next → Create Function

AWS Lambda Functionの設定

Add API Endpoint 選択し、作成

Amazon API Gatewayの設定

prodを新しいタブで開く
ページ上の右タブResourcesへ

Method Request

Method Execution の AuthenticationをNONE

Integration Request

  • Mapping Templates を選択
  • Content-Type を application/json

Input Path ThroughからMapping template へ変更。AWS lambdaに送ったパラメータを全て取得できるようにする

{
  "param": {
#foreach( $key in $input.params().querystring.keySet() )
    "$key": "$input.params().querystring.get($key)"#if( $foreach.hasNext ),#end
#end
  }
}

Integration Response

200を展開

Mapping Templates

  • Content-Type: application/xml
  • Input Path ThroughからMapping Templateへ
#set($inputRoot = $input.path('$'))
$inputRoot
  • ここなのですが、Output passthroughでいくかと思ったら上手くいかず、こちらの記述にして動作しましたとてもあやしい...要再確認です。

Method Response

200を展開

Add Response Model

  • contenttype: application/xml
  • Models: Empty

Deploy API

Deploy API で prod でデプロイ

Stagesにて左ナビでTwilioRequestのGETへ行って、そのURLをコピー

Twilio 側

Twilio のRequestURLにURLをセット

その電話番号へ電話をかける

Lambdaのコードで設定したメッセージを喋ってくれた!

おわりに

駆け足でしたが、なんとか動作するところまでいったので共有まで。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5