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解析器安装指南分享(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

Python中常用的四种取整方式分享

《Python中常用的四种取整方式分享》在数据处理和数值计算中,取整操作是非常常见的需求,Python提供了多种取整方式,本文为大家整理了四种常用的方法,希望对大家有所帮助... 目录引言向零取整(Truncate)向下取整(Floor)向上取整(Ceil)四舍五入(Round)四种取整方式的对比综合示例应

linux进程D状态的解决思路分享

《linux进程D状态的解决思路分享》在Linux系统中,进程在内核模式下等待I/O完成时会进入不间断睡眠状态(D状态),这种状态下,进程无法通过普通方式被杀死,本文通过实验模拟了这种状态,并分析了如... 目录1. 问题描述2. 问题分析3. 实验模拟3.1 使用losetup创建一个卷作为pv的磁盘3.

MySQL8.2.0安装教程分享

《MySQL8.2.0安装教程分享》这篇文章详细介绍了如何在Windows系统上安装MySQL数据库软件,包括下载、安装、配置和设置环境变量的步骤... 目录mysql的安装图文1.python访问网址2javascript.点击3.进入Downloads向下滑动4.选择Community Server5.

CentOS系统Maven安装教程分享

《CentOS系统Maven安装教程分享》本文介绍了如何在CentOS系统中安装Maven,并提供了一个简单的实际应用案例,安装Maven需要先安装Java和设置环境变量,Maven可以自动管理项目的... 目录准备工作下载并安装Maven常见问题及解决方法实际应用案例总结Maven是一个流行的项目管理工具

10个Python自动化办公的脚本分享

《10个Python自动化办公的脚本分享》在日常办公中,我们常常会被繁琐、重复的任务占据大量时间,本文为大家分享了10个实用的Python自动化办公案例及源码,希望对大家有所帮助... 目录1. 批量处理 Excel 文件2. 自动发送邮件3. 批量重命名文件4. 数据清洗5. 生成 PPT6. 自动化测试

10个Python Excel自动化脚本分享

《10个PythonExcel自动化脚本分享》在数据处理和分析的过程中,Excel文件是我们日常工作中常见的格式,本文将分享10个实用的Excel自动化脚本,希望可以帮助大家更轻松地掌握这些技能... 目录1. Excel单元格批量填充2. 设置行高与列宽3. 根据条件删除行4. 创建新的Excel工作表5

Redis多种内存淘汰策略及配置技巧分享

《Redis多种内存淘汰策略及配置技巧分享》本文介绍了Redis内存满时的淘汰机制,包括内存淘汰机制的概念,Redis提供的8种淘汰策略(如noeviction、volatile-lru等)及其适用场... 目录前言一、什么是 Redis 的内存淘汰机制?二、Redis 内存淘汰策略1. pythonnoe

Golang操作DuckDB实战案例分享

《Golang操作DuckDB实战案例分享》DuckDB是一个嵌入式SQL数据库引擎,它与众所周知的SQLite非常相似,但它是为olap风格的工作负载设计的,DuckDB支持各种数据类型和SQL特性... 目录DuckDB的主要优点环境准备初始化表和数据查询单行或多行错误处理和事务完整代码最后总结Duck