博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AWS Serverless培训分享
阅读量:4227 次
发布时间:2019-05-26

本文共 4123 字,大约阅读时间需要 13 分钟。

最近公司大牛组织培训了一些有关aws的serverless培训,小编把整理后的PPT带过来了,有需要的一起来看看吧!

内容主要分为两个板块,第一是PPT介绍,第二是手动操作指导。

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

640?wx_fmt=png

PPT部分结束

下面是练习指引部分:

登录地址:

https://signin.aws.amazon.com

AWS无服务器计算应用动手实验

 

前提条件

  • AWS账号或CIO AWS环境访问权限(仅限公司内部)

  • VPN账号访问权限(仅限公司内部)

 

第一章   简介

(略)

 

第二章   创建静态Web站点

  1. 创建S3 Bucket并命名<姓名全拼>-chatapp(如cuichikun-chatapp),为S3 Bucket配置公开访问权限。

  2. 将Policy中的s3-bucket.json文件内容拷贝到"Permissions"标签页"Bucket     Policy"文本框中并替换Bucket名字。

  3. 将Site文件夹内容上传到S3。

  4. 在"属性(Properties)"标签页选择"Static     web hosting",填写默认文档(index     document)后保存。

  5. 使用"Static     Web Hosting"中的Endpoint     URL访问站点。

 

第三章   创建API

  1. 选择IAM服务

  2. 为Lambda创建Role来访问S3中的会话文件

    1. 创建Policy

      1. 服务选择S3

      2. 动作选择GetObject

      3. 输入Bucket名称及选择任意(any)对象

      4. 为Policy命名Lambda-S3-Access

    2. 创建Role

      1. 服务选择Lambda

      2. 查找并添加Lambda-S3-Access

      3. 查找并添加AWSLambdaBasicExecutionRole

      4. 为Role命名Lambda-Data

  3. 选择Lambda服务

  4. 创建代理Lambda方法

    1. 选择"Author      from scratch"

    2. 填写名称Chat-Proxy,Runtime选择"Node.js 6.10",Role选择"Choose      an existing role",Existing Role选择Lambda-Data

    3. 创建方法

    4. 将Lambda\Chat-Proxy.js文件内容复制到代码文本框中,替换Bucket名称

    5. 创建测试事件(test event)

    6. 测试

  5. 创建API,选择API Gateway服务

    1. 新建API并命名Chat-API

    2. 在API根(\)上创建资源(Create Resouce),勾选"Configure as proxy resource"并创建资源。

    3. 在Lambda      Function中选择步骤2中创建的Lambda方法名并保存。

    4. 创建API测试。

    5. 测试。

  6. 部署API

    1. 选择资源"/{proxy+}"后在Actions列表中选择Enable CORS。

    2. Deploy API并创建名为"prod“的stage。

    3. 将API Endpoint复制到剪切板。

  7. 更新代码

    1. 打开Site\js\config.js文件替换API Endpoint。

    2. 上传Site\js文件夹到S3。

    3. 通过网站URL在浏览器中打开网站,使用开发者工具查看API调用及返回结果。

 

第四章使用DynamoDB存储

  1. 选择DynamoDB服务

  2. 创建表Chat-Messages

    1. Primary key为ConversationId类型string

    2. Sort key为Timestamp类型number

    3. 取消'Use default      settings'勾选

    4. 取消'Read      Capacity'和'Write Capacity'勾选

    5. Read capacity units和Write capacity units都填写1

    6. 创建

  3. 创建表Chat-Conversations

    1. Primary key为ConversationId类型string

    2. Sort Key为Username类型string

    3. 创建Partation Key为Username,Sort Key为ConversationId的Index

    4. 取消'Use default      settings'勾选

    5. 取消'Read      Capacity'和'Write Capacity'勾选

    6. Read capacity units和Write capacity units都填写1

    7. 创建

  4. 创建测试数据

    1. Chat-Messages表增加两个字段SenderMessage类型string,添加测试数据。

    2. Chat-Conversations表添加测试数据。

  5. 创建Policy(Lambda访问DynamoDB)

    1. 复制Policies\lambda-data.json文件内容到Policy文本框

    2. 给Policy命名为Lambda-Data-Access

    3. 在IAM里面找到角色(Role)"Lambda-Data",搜索并添加"Lambda-Data-Access" 到角色中。

  6. 更新Lambda代码

    1. 将Lambda\Chat-Proxy.js文件内容替换原Lambda方法代码并保存。

    2. 测试Lambda方法。

  7. 更新网站代码

    1. 将Site中文件更新S3静态站点。

    2. 在浏览器中测试静态站点。

 

第五章   拆解单块应用

  1. 选择Lambda服务

    1. 根据Lambda\Chat-Conversation-GET.js文件内容创建Chat-Conversation-GET方法并测试

    2. 根据Lambda\Chat-Messages-GET.js文件内容创建Chat-Messages-GET方法并测试

    3. 根据Lambda\Chat-Messages-POST.js文件内容创建Chat-Messages-POST方法并测试

  2. 选择API Gateway服务并选择Chat-API

    1. 选择Models,按Models文件夹下各文件内容创建Conversation、ConversationList和NewMessage三个Model。

    2. 选择左侧菜单Resources

    3. 删除资源/{proxy+}

    4. 创建Conversation      GET方法

      1. 创建资源(Resource)“conversations",路径"/conversations"

      2. 添加GET方法,指向Chat-Conversation-GET方法

      3. 在Method       Response里面为200状态选择ConversationList模板

      4. 测试API

    5. 创建Messages GET方法

      1. 在资源(Resource)"conversations"下面创建资源"messages",路径"/{id}"

      2. 添加GET方法,指向Chat-Messages-GET方法

      3. 导航到Integration Request > Mapping Templates > Request body       passthrough

        1. 选择"When there are no templates defined (recommended)"

        2. 向Content-Type添加application/json

        3. 将Mapping        Templates\Chat-Messages-GET-Input.vtl文件内容复制到模板中保存返回

      4. 在Response       Method里面为200状态选择Conversation模板

      5. 测试API

    6. 创建Messages POST方法

      1. 为资源"messages"添加POST方法,指向Chat-Messages-POST方法

      2. 导航到Method Request > Request Body为application/json(Content-Type)添加NewMessage模板

      3. 导航到Integration Request > Mapping Templates > Request body       passthrough

        1. 选择"When there are no templates defined (recommended)"

        2. 向Content-Type添加application/json

        3. 将Mapping        Templates\Chat-Messages-POST-Input.vtl文件内容复制到模板中保存返回

      4.  测试API

  3. 更新网站代码

    1. 将Site中文件更新S3静态站点。

    2. 在浏览器中测试静态站点。

 

第六章   添加用户身份验证

  1. 创建用户池(User     Pool)

    1. 用户池名称ChatPool

    2. 选择Step through      settings

    3. 勾选allow login      with emaill,允许使用email登录,required attributes选择email。

    4. 创建AppClient,输入appclient 名字website, 取消 generate      client secret勾选, 在attributes中只勾选和email相关的三个字段,取消其它字段勾选。

  2. 创建Policy

    1. 以文件Policies\lambda-cognito.json内容创建Policy,命名Lambda-Cognito

  3. 创建角色(Role)

    1. 创建角色Lambda-Cognito

    2. 添加Lambda-Cognito策略和AWSLambdaBasicExecutionRole策略。

  4. 创建Lambda方法

    1. 创建新的Lambda方法Chat-Users-GET

    2. 选择角色Lambda-Cognito

    3. 复制Lambda\Chat-Users-GET.js      代码到方法文本框

  5. 创建API

    1. 通过Models\UserList.json文件内容在API Gateway中创建新的Model命名UserList

    2. 在根(/)下创建新资源users,路径"/users"。

    3. 向资源添加GET 方法,并选择Chat-Users-GET方法。

    4. 在Method      Response中为200状态选择UserList模板。

    5. 为资源/users执行Enable CORS

  6. Deploy     API到prod命名的stage

  7. 下载API JavaScript     SDK

  8. 解压缩后将文件夹添加到S3     Bucket中js文件夹下。

 

 

转载地址:http://ymnqi.baihongyu.com/

你可能感兴趣的文章
剑指Offer——二叉搜索树中第K大的节点
查看>>
剑指Offer——数据流中的中位数
查看>>
剑指Offer——查找队列中的最大值
查看>>
剑指Offer——顺时针遍历矩阵
查看>>
剑指Offer——栈的压入、弹出顺序
查看>>
剑指Offer——从上到下打印二叉树
查看>>
剑指Offer——字符串的排列
查看>>
剑指Offer——把数组排成最小的数
查看>>
剑指Offer——丑数
查看>>
剑指Offer——字符串中第一个只出现一次的字符
查看>>
Linux 中的硬链接与软连接有什么区别
查看>>
Python 图像处理库
查看>>
使用PHPMailer-master发送邮件
查看>>
利用smtp协议实现命令行发送邮件
查看>>
利用php的mail()函数发送邮件
查看>>
(一).postman学习——前期知识准备
查看>>
qt入门级使用
查看>>
Web Stotage——本地储存详解及案例
查看>>
File Reader文件操作
查看>>
地理位置服务——navigator.geolocation
查看>>