本文主要是介绍AWS Serverless培训分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近公司大牛组织培训了一些有关aws的serverless培训,小编把整理后的PPT带过来了,有需要的一起来看看吧!
内容主要分为两个板块,第一是PPT介绍,第二是手动操作指导。
PPT部分结束
下面是练习指引部分:
登录地址:
https://signin.aws.amazon.com
AWS无服务器计算应用动手实验
前提条件
AWS账号或CIO AWS环境访问权限(仅限公司内部)
VPN账号访问权限(仅限公司内部)
第一章 简介
(略)
第二章 创建静态Web站点
创建S3 Bucket并命名<姓名全拼>-chatapp(如cuichikun-chatapp),为S3 Bucket配置公开访问权限。
将Policy中的s3-bucket.json文件内容拷贝到"Permissions"标签页"Bucket Policy"文本框中并替换Bucket名字。
将Site文件夹内容上传到S3。
在"属性(Properties)"标签页选择"Static web hosting",填写默认文档(index document)后保存。
使用"Static Web Hosting"中的Endpoint URL访问站点。
第三章 创建API
选择IAM服务
为Lambda创建Role来访问S3中的会话文件
创建Policy
服务选择S3
动作选择GetObject
输入Bucket名称及选择任意(any)对象
为Policy命名Lambda-S3-Access
创建Role
服务选择Lambda
查找并添加Lambda-S3-Access
查找并添加AWSLambdaBasicExecutionRole
为Role命名Lambda-Data
选择Lambda服务
创建代理Lambda方法
选择"Author from scratch"
填写名称Chat-Proxy,Runtime选择"Node.js 6.10",Role选择"Choose an existing role",Existing Role选择Lambda-Data
创建方法
将Lambda\Chat-Proxy.js文件内容复制到代码文本框中,替换Bucket名称。
创建测试事件(test event)
测试
创建API,选择API Gateway服务
新建API并命名Chat-API。
在API根(\)上创建资源(Create Resouce),勾选"Configure as proxy resource"并创建资源。
在Lambda Function中选择步骤2中创建的Lambda方法名并保存。
创建API测试。
测试。
部署API
选择资源"/{proxy+}"后在Actions列表中选择Enable CORS。
Deploy API并创建名为"prod“的stage。
将API Endpoint复制到剪切板。
更新代码
打开Site\js\config.js文件替换API Endpoint。
上传Site\js文件夹到S3。
通过网站URL在浏览器中打开网站,使用开发者工具查看API调用及返回结果。
第四章使用DynamoDB存储
选择DynamoDB服务
创建表Chat-Messages
Primary key为ConversationId类型string
Sort key为Timestamp类型number
取消'Use default settings'勾选
取消'Read Capacity'和'Write Capacity'勾选
Read capacity units和Write capacity units都填写1
创建
创建表Chat-Conversations
Primary key为ConversationId类型string
Sort Key为Username类型string
创建Partation Key为Username,Sort Key为ConversationId的Index
取消'Use default settings'勾选
取消'Read Capacity'和'Write Capacity'勾选
Read capacity units和Write capacity units都填写1
创建
创建测试数据
Chat-Messages表增加两个字段Sender和Message类型string,添加测试数据。
Chat-Conversations表添加测试数据。
创建Policy(Lambda访问DynamoDB)
复制Policies\lambda-data.json文件内容到Policy文本框
给Policy命名为Lambda-Data-Access
在IAM里面找到角色(Role)"Lambda-Data",搜索并添加"Lambda-Data-Access" 到角色中。
更新Lambda代码
将Lambda\Chat-Proxy.js文件内容替换原Lambda方法代码并保存。
测试Lambda方法。
更新网站代码
将Site中文件更新S3静态站点。
在浏览器中测试静态站点。
第五章 拆解单块应用
选择Lambda服务
根据Lambda\Chat-Conversation-GET.js文件内容创建Chat-Conversation-GET方法并测试
根据Lambda\Chat-Messages-GET.js文件内容创建Chat-Messages-GET方法并测试
根据Lambda\Chat-Messages-POST.js文件内容创建Chat-Messages-POST方法并测试
选择API Gateway服务并选择Chat-API
选择Models,按Models文件夹下各文件内容创建Conversation、ConversationList和NewMessage三个Model。
选择左侧菜单Resources
删除资源/{proxy+}
创建Conversation GET方法
创建资源(Resource)“conversations",路径"/conversations"
添加GET方法,指向Chat-Conversation-GET方法
在Method Response里面为200状态选择ConversationList模板
测试API
创建Messages GET方法
在资源(Resource)"conversations"下面创建资源"messages",路径"/{id}"
添加GET方法,指向Chat-Messages-GET方法
导航到Integration Request > Mapping Templates > Request body passthrough
选择"When there are no templates defined (recommended)"
向Content-Type添加application/json
将Mapping Templates\Chat-Messages-GET-Input.vtl文件内容复制到模板中保存返回
在Response Method里面为200状态选择Conversation模板
测试API
创建Messages POST方法
为资源"messages"添加POST方法,指向Chat-Messages-POST方法
导航到Method Request > Request Body为application/json(Content-Type)添加NewMessage模板
导航到Integration Request > Mapping Templates > Request body passthrough
选择"When there are no templates defined (recommended)"
向Content-Type添加application/json
将Mapping Templates\Chat-Messages-POST-Input.vtl文件内容复制到模板中保存返回
测试API
更新网站代码
将Site中文件更新S3静态站点。
在浏览器中测试静态站点。
第六章 添加用户身份验证
创建用户池(User Pool)
用户池名称ChatPool
选择Step through settings
勾选allow login with emaill,允许使用email登录,required attributes选择email。
创建AppClient,输入appclient 名字website, 取消 generate client secret勾选, 在attributes中只勾选和email相关的三个字段,取消其它字段勾选。
创建Policy
以文件Policies\lambda-cognito.json内容创建Policy,命名Lambda-Cognito
创建角色(Role)
创建角色Lambda-Cognito
添加Lambda-Cognito策略和AWSLambdaBasicExecutionRole策略。
创建Lambda方法
创建新的Lambda方法Chat-Users-GET
选择角色Lambda-Cognito
复制Lambda\Chat-Users-GET.js 代码到方法文本框
创建API
通过Models\UserList.json文件内容在API Gateway中创建新的Model命名UserList
在根(/)下创建新资源users,路径"/users"。
向资源添加GET 方法,并选择Chat-Users-GET方法。
在Method Response中为200状态选择UserList模板。
为资源/users执行Enable CORS
Deploy API到prod命名的stage
下载API JavaScript SDK
解压缩后将文件夹添加到S3 Bucket中js文件夹下。
这篇关于AWS Serverless培训分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!