AWS Lambda實戰:開發事件驅動的無伺服器應用程式

基本信息

作者:[意] 達尼洛·波恰(Danilo Poccia) 著
ISBN(書號):978-7-111-57994-6
叢書名:雲計算與虛擬化技術叢書
出版日期:2017-09
版次:1/1
開本:16
定價:¥79.00

內容簡介

本書以實例為驅動,教會讀者如何使用事件驅動的方法來開發後端應用程式。全書分為四部分。第一部分(第1~3章)介紹了基礎技術,比如AWS Lambda和Web API。第二部分(第4~12章)是本書的核心,講解了事件驅動套用的構建方法,讓你可以用事件串聯多個函式,構建新的套用。第三部分(第13~15章)主要關注從開發到生產,幫助你最佳化DevOps流程。第四部分(第16章和第17章)介紹了如何把Lambda函式與AWS平台以外的服務整合起來,用AWS Lambda改進溝通方式,自動完成代碼管理。
本書的目標讀者是那些沒有雲技術經驗,同時希望了解無伺服器計算和事件驅動套用前沿技術的開發人員。如果你已經對Amazon EC2和Amazon VPC這類AWS服務有所了解,本書將為你開闢一個新的認知視角,幫助你用服務而非伺服器的角度構建應用程式。

目錄

讚譽
中文版序
推薦序
譯者序
前言
關於原書封面插圖
第一部分 快速入門
第1章 在雲中運行函式2
1.1 AWS Lambda簡介5
1.2 以函式作為應用程式的後端10
1.3 應對一切的單一後端11
1.4 事件驅動的應用程式13
1.5 從客戶端調用函式17
總結20
第2章 屬於你的第一個Lambda函式21
2.1 創建一個新的函式21
2.2 編寫函式24
2.3 其他設定26
2.4 測試函式28
2.5 從Lambda API調用函式30
總結32
練習32
第3章 把函式作為Web API34
3.1 Amazon API Gateway簡介34
3.2 創建API36
3.3 創建集成38
3.4 測試集成40
3.5 改變回響信息41
3.6 把資源路徑作為參數46
3.7 使用API Gateway的上下文對象49
總結52
練習52
第二部分 構建事件驅動的應用程式
第4章 管理安全56
4.1 用戶、組和角色57
4.2 理解策略60
4.3 實踐策略63
4.4 使用策略變數68
4.5 賦予角色70
總結72
練習72
第5章 使用獨立的函式74
5.1 在函式中打包庫和模組74
5.2 讓函式訂閱事件76
5.2.1 創建後端資源77
5.2.2 把函式打包78
5.2.3 配置許可權82
5.2.4 創建函式84
5.2.5 測試函式86
5.3 在函式中使用二進制庫88
5.3.1 準備環境88
5.3.2 實現函式89
5.3.3 測試函式93
5.4 調度函式的執行94
總結98
練習98
第6章 用戶身份管理100
6.1 Amazon Cognito身份管理服務概述100
6.2 外部身份提供方103
6.3 集成自定義身份認證104
6.4 處理認證和非認證用戶105
6.5 使用Amazon Cognito的策略變數106
總結110
練習110
第7章 從客戶端調用函式113
7.1 用JavaScript調用函式113
7.1.1 創建ID池114
7.1.2 為Lambda函式開放許可權117
7.1.3 創建Web頁面119
7.2 從移動套用中調用函式123
7.3 從瀏覽器調用函式127
總結131
練習131
第8章 設計基於Lambda的認證服務134
8.1 互動模式135
8.2 事件驅動架構137
8.3 使用Amazon Cognito服務141
8.4 保存用戶配置檔案142
8.5 向用戶配置檔案添加更多數據143
8.6 加密密碼143
總結144
練習144
第9章 實現基於Lambda的認證服務146
9.1 管理集中式配置147
9.2 對初始化和部署實現自動化149
9.3 共享代碼150
9.4 創建套用的首頁151
9.5 註冊新用戶152
9.6 驗證用戶郵件158
總結163
練習163
第10章 為認證服務添加更多功能168
10.1 處理密碼遺忘168
10.2 處理密碼重置175
10.3 處理用戶登錄180
10.4 為認證用戶獲取AWS令牌184
10.5 處理密碼修改186
總結192
練習192
第11章 構建一個媒體共享套用195
11.1 事件驅動架構195
11.1.1 簡化實現196
11.1.2 合併函式199
11.1.3 改進事件驅動架構201
11.2 在Amazon S3中定義對象的命名空間202
11.3 為Amazon DynamoDB設計數據模型204
11.4 客戶端套用205
11.5 回響內容更新216
11.6 更新內容索引220
總結223
練習225
第12章 為什麼選擇事件驅動226
12.1 事件驅動架構總覽227
12.2 從前端起步228
12.3 關於後端229
12.4 回響式編程232
12.5 通向微服務之路235
12.6 平台的擴展性237
12.7 可用性和適應性238
12.8 預估費用239
總結241
練習242
第三部分 從開發環境到生產部署
第13章 改進開發和測試244
13.1 本地開發244
13.1.1 用Node.js做本地開發245
13.1.2 用Python做本地開發246
13.1.3 社區工具247
13.2 日誌與調試247
13.3 使用函式版本249
13.4 使用別名來管理不同環境250
13.5 開發工具和框架251
13.5.1 Chalice Python微框架252
13.5.2 Apex無伺服器架構254
13.5.3 Serverless框架256
13.6 簡單的無伺服器測試258
總結260
練習260
第14章 自動化部署263
14.1 在Amazon S3上存儲代碼263
14.2 事件驅動的無伺服器持續部署266
14.3 用AWS CloudFormation部署268
14.4 多區域部署274
總結276
練習276
第15章 自動化的基礎設施管理279
15.1 對告警做出回響279
15.2 對事件做出回響282
15.3 近實時處理日誌282
15.4 設定循環的活動283
15.5 跨區域的架構和數據同步284
總結287
練習287
第四部分 使用外部服務
第16章 調用外部服務290
16.1 管理密碼和安全憑證290
16.2 使用IFTTT Maker通道294
16.3 向Slack團隊傳送訊息296
16.4 自動管理GitHub代碼庫298
總結299
練習299
第17章 從其他服務獲取事件301
17.1 誰在調用301
17.2 Webhook模式302
17.3 處理來自Slack的事件304
17.4 處理來自GitHub的事件305
17.5 處理來自Twilio的事件306
17.6 使用MongoDB作為觸發器306
17.7 日誌監控的模式307
總結308
練習308

相關詞條

熱門詞條

聯絡我們