歡迎關注我的博客喜歡二福的滄月君的我的博客 所讀文章均來自www.infoq.cn
構建sms應用,加入元素,用戶應用打字時會回覆icanhazdadjokeapi免費提供笑話,應用會展現手jets建立控制器動做線路,構建單端點號碼接收sms信息時端點會來自twiliohttp請求作出反應,。
端點會返回twiml爆笑笑話,aws發佈lambda時沒有支持rubypythonnodejsjava平臺雲託管和雲運行功能無服務化革命,年末ruby支持發佈,開發者使用原始功能無服務應用模型sam模板rubylambda構建東西rubylambda指南描述,。
ruby目的在於開發者痛苦,配置文件程序流程說會人痛苦,jets框架利用ruby無服務化框架,rails過渡jets,。
jets構建rails應用體驗部署awslambda相關服務能力加以結合,相關服務包括apigateways3dynamodb,本帖看看使用jets部署lambdaruby編寫twilio應用,構建,。
構建sms應用,加入元素,應用打字時會回覆笑話icanhazdadjokeapi免費提供,應用會展現手jets建立控制器動做線路,。
構建單端點號碼接收sms信息時端點會來自twiliohttp請求作出反應,端點會返回twiml爆笑笑話,須要,完成項目開發者須要準備,。
twilio帳戶點擊免費註冊,aws帳戶,安裝rubylambda支持版本bundler,沒有安裝ruby使用列出工具安裝管理ruby版本,。
,全局安裝jetsgem,命令行鍵入,複製代碼,。
geminstalljets,jets可執行文件當作生成器使用rails用來發起項目運行項目命令,如今會建立項目帖子範圍會項目進行限制,api模式建立項目應用須要html視圖,。
無需webpacker進行資產編譯會節省構建時間,須要數據庫,運行命令建立項目,複製代碼,。
jetsdadjokessmsmodeapidatabase,生成器完成運行切換dadjokessms目錄運行命令運行應用,複製代碼,jetsserve,。
打開httplocalhost會看到頁面,看到頁面說明jets項目運行,jets控制器,如今jets應用使用gem生成應用部件模型控制器架構,。
應用須要動做控制器,生成,運行命令,複製代碼,。
jetsgeneratecontrollermessagescreate,生成器建立編輯文件,開發者須要檢查路徑請打開configroutesrb,jets生成線路twiliowebhook會默認生成post請求保持如今,。
設置應用使messages端點接收post請求webhook,複製代碼,jetsapplicationroutesdraw,postmessagesmessagescreate,。
rootjetspublic#show,jetspublic#show控制器提供來自文件夾靜態utf8內容,注意部署流程jets會文件夾文件傳到s3s3提供文件,s3很是適合提供靜態資產,。
信息httprubyonjetsdocsassetsserving,複製代碼,catchalljetspublic#show,,。
如今編寫控制器動做,打開appcontrollersmessagescontrollerrb會看到建立動做方法,動做會接收twiliowebhook並用twiml進行回覆返回笑話,獲取笑話,。
返回笑話須要icanhazdadjokeapi進行調用,寫可以實現目標方法,使用openuri發送web請求方面包括下載文具圖片有用,jets生成路徑twiliowebhook會默認生成post請求保持,。
messagescontroller加入如下內容,複製代碼,requireopenuri,classmessagescontrollerapplicationcontroller,。
defcreate,,private,defrandomjoke,。
openhttpsicanhazdadjokeaccepttextplainread,,,如今笑話twiml形式返回twilio,。
返回twiml,構建回覆方法使用來自twilioruby助手助手程序,打開gemfile添加twilioruby,複製代碼,。
sourcehttpsrubygemsorg,gemjets,gemtwilioruby,命令行運行bundleinstall安裝gem,。
create動做實例化twiml回覆對象使用twimlelement回覆進來消息提供xml回覆方法以下,複製代碼,requireopenuri,classmessagescontrollerapplicationcontroller,。
defcreate,twimltwiliotwimlmessagingresponse,twimlmessagebodyrandomjoke,renderxmltwimlxml,。
,private,defrandomjoke,openhttpsicanhazdadjokeaccepttextplainread,。
,,知道使用twilioruby助手生成twiml信息請閱讀文檔,運行測試是否獲得預期回覆,。
應用中止請運行jetsserve重啓,使用curllocalhostmessages發送post請求會twiml回覆看到icanhazdadjoke提供笑話,複製代碼,curldatahttplocalhostmessages,。
,xmlversionencodingutf,,response,。
messageadvantagelivingswitzerland,flagbigmessage,response,jets工做,。
如今部署awslambda,jets應用部署aws須要設置項目證書訪問aws服務,作法建立擁有工做需權限用戶jets文檔描述用戶須要權限,aws帳戶建立策略策略包含權限,。
建立用戶策略分配用戶,使用用戶證書部署應用,aws控制面板找到iam服務跳iam部分,跳轉policies部分建立策略,。
選擇json選項卡輸入來自jets文檔json,複製代碼,,version,。
statement,,effect,action,。
apigateway,cloudformation,dynamodb,events,。
iam,lambda,logs,route53,。
s3,,resource,,。
,,,,。
繼續點擊檢查策略命名,保存策略,如今須要建立用戶策略添加用戶給予用戶建立jets須要部署資源權限,打開iam控制面板users部分建立用戶,。
用戶命accesstype選擇programmaticaccess,點擊選擇給予用戶權限,選擇attachexistingpolicies篩選建立策略,選擇策略點擊,。
點擊直到頁面出現爲止,保存頁面顯示accesskeyidsecretaccesskey,部署用到,如今作好部署準備,。
lambda進行部署,命令行輸入,複製代碼,awsaccesskeyiduserkeyawssecretaccesskeyusersecretkeyjetsdeploy,。
jets證書環境變量設置aws帳戶資源應用運行,會花費時間完成會獲得url應用會運行,會注意應用部署開發環境,知道jets處理環境信息請閱讀文檔,。
如今curl測試url,記住使用messages條線路api網關端點加上發出post請求,複製代碼,curldatahttpsapigatewayendpointmessages,。
,xmlversionencodingutf,,response,。
messageknewguycollectedcandycanesmintconditionmessage,response,如今收到笑話twilio號碼鏈接起來,sms發送笑話,。
訪問twilio控制面板轉電話號碼,號碼請編輯請購買接收sms信息新號碼,message字段輸入應用url,保存號碼發送信息應該會回覆獲得笑話,。
無服務化事情,本帖見證使用jets編寫ruby應用部署awslambda,github看到項目,jets幫助完成東西遠不止譬如事件做出反應數據儲存數據庫運行rails應用,。html