AWS Serverless培训分享

2024-04-17 08:08
文章标签 分享 aws 培训 serverless

本文主要是介绍AWS Serverless培训分享,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近公司大牛组织培训了一些有关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文件夹下。

 

 

这篇关于AWS Serverless培训分享的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/911242

相关文章

Python中你不知道的gzip高级用法分享

《Python中你不知道的gzip高级用法分享》在当今大数据时代,数据存储和传输成本已成为每个开发者必须考虑的问题,Python内置的gzip模块提供了一种简单高效的解决方案,下面小编就来和大家详细讲... 目录前言:为什么数据压缩如此重要1. gzip 模块基础介绍2. 基本压缩与解压缩操作2.1 压缩文

Go语言代码格式化的技巧分享

《Go语言代码格式化的技巧分享》在Go语言的开发过程中,代码格式化是一个看似细微却至关重要的环节,良好的代码格式化不仅能提升代码的可读性,还能促进团队协作,减少因代码风格差异引发的问题,Go在代码格式... 目录一、Go 语言代码格式化的重要性二、Go 语言代码格式化工具:gofmt 与 go fmt(一)

Python虚拟环境与Conda使用指南分享

《Python虚拟环境与Conda使用指南分享》:本文主要介绍Python虚拟环境与Conda使用指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、python 虚拟环境概述1.1 什么是虚拟环境1.2 为什么需要虚拟环境二、Python 内置的虚拟环境工具

Python处理大量Excel文件的十个技巧分享

《Python处理大量Excel文件的十个技巧分享》每天被大量Excel文件折磨的你看过来!这是一份Python程序员整理的实用技巧,不说废话,直接上干货,文章通过代码示例讲解的非常详细,需要的朋友可... 目录一、批量读取多个Excel文件二、选择性读取工作表和列三、自动调整格式和样式四、智能数据清洗五、

JDK9到JDK21中值得掌握的29个实用特性分享

《JDK9到JDK21中值得掌握的29个实用特性分享》Java的演进节奏从JDK9开始显著加快,每半年一个新版本的发布节奏为Java带来了大量的新特性,本文整理了29个JDK9到JDK21中值得掌握的... 目录JDK 9 模块化与API增强1. 集合工厂方法:一行代码创建不可变集合2. 私有接口方法:接口

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

SpringBoot请求参数接收控制指南分享

《SpringBoot请求参数接收控制指南分享》:本文主要介绍SpringBoot请求参数接收控制指南,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Spring Boot 请求参数接收控制指南1. 概述2. 有注解时参数接收方式对比3. 无注解时接收参数默认位置

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Python解析器安装指南分享(Mac/Windows/Linux)

《Python解析器安装指南分享(Mac/Windows/Linux)》:本文主要介绍Python解析器安装指南(Mac/Windows/Linux),具有很好的参考价值,希望对大家有所帮助,如有... 目NMNkN录1js. 安装包下载1.1 python 下载官网2.核心安装方式3. MACOS 系统安

Java嵌套for循环优化方案分享

《Java嵌套for循环优化方案分享》介绍了Java中嵌套for循环的优化方法,包括减少循环次数、合并循环、使用更高效的数据结构、并行处理、预处理和缓存、算法优化、尽量减少对象创建以及本地变量优化,通... 目录Java 嵌套 for 循环优化方案1. 减少循环次数2. 合并循环3. 使用更高效的数据结构4