体验亚马逊云科技产品使用 AWS Amplify 构建和部署一个 Web 应用程序

news2025/2/27 2:53:56

前言

如果你是IT从业者,会有一个非常明显的感觉,那就是上云已经成为了趋势。

以前公司如果有什么互联网业务,都要自己买服务器,自建机房,或者搬到运营商的IDC机房里面去进行托管。

但现在,大家都是找云服务器厂商,租几台云服务器了事,不用自己买服务器,配置也非常灵活,也省了很多运维工程师,这就是云计算带来的好处。

我们从全球范围内看一下这个21年的市场占比就知道亚马逊云科技到底有多厉害,当然近几年其它厂商占比逐渐在增加,处于你追我敢的势头,但是亚马逊云科技依然是带头大哥。

cb0077538a09a7d1b51cca9499b33a02.jpeg

注册账号

主要分为5个步骤,按照提示填写即可,中途会给你发邮件或者短信验证码验证。

c5e9a2f3e0f6bfbdccbb079f78c6fe41.jpeg

1b3c4621065310c1fe96c02320770363.jpeg

这里需要填写一个visa卡或者借记卡,我用的招商的visa卡。

67fa16a7a55207a0336145c9441c235c.jpeg

验证身份,使用短信验证码加语音提示。

de74ef81d3879139a3ccb67f36f546a3.jpeg

选择白嫖一年。

42cffb102af0d3cd9c4af9fe8b7da36a.jpeg

到这里注册成功,它会发邮件问候你一下,让你快速入门。

a854775fc3738162a5b4db3911d75938.jpeg

项目构建

创建第一个 Amplify 项目

使用 React (用于构建用户界面的 JavaScript 库) 新建一个 Web 应用程序。

检查node版本。

68e179f0de17a0772c17b637d79f2501.jpeg

检查npm版本

74757b282f5bd7389b822966d796c0e3.jpeg

安装 Amplify CLI

1fd0ce289604c79f4445ce6599743d3c.jpeg

配置 Amplify

amplify configure

创建 IAM 用户

93dda2bd9bdb999bbf0ce2c6f85f6e44.jpeg

创建 AdministratorAccess 权限的用户

71c9232f3f2fd5a4c612550e02172b68.jpeg

创建 React 应用程序

创建名为 amplify-app 的应用程序,

adb3fb5ad1b5ac5c5ec826ae5261d411.jpeg

a21f2b9f0dc6948a256bbe6198883c08.jpeg

使用CD命令进入 amplify-app文件夹下

987f793836378176c61f090f5d3b9d5f.jpeg

使用 amplify init 对其进行初始化:

ca88daa246efb03359ec3a7c67969de9.jpeg

8285a7a7e39f909af12905d34dd82e9b.jpeg

在 AWS Amplify 控制台中为查看和管理自己的云 Amplify 项目。

e34edd00f87243459fe0507a3385280a.jpeg

安装 Amplify 库

30d0c77014299b5fdbe0309cda2e97c7.jpeg

在电脑端找到这个文件

1d29aa1e61f4fb09dc0a0d725d375ec2.jpeg

使用记事本工具打开并替换如下代码

feb57e98806049491c0efac9868ef6df.jpeg

使用 Amplify 添加 GraphQL API

GraphQL 架构是对象及其字段的表示。定义 GraphQL 架构, Amplify 将创建所需的 DynamoDB 表,并配置 GraphQL 来自动处理读取、写入、更新和删除。打开 amplify/backend/api/amplifyapp/schema.graphql 文件并将内容替换为以下代码:

0c0dd8dc604da59a387dfe1756960633.jpeg

输入 Yes 来编辑架构。

创建 GraphQL 架构

GraphQL 架构是对象及其字段的表示。定义 GraphQL 架构,而 Amplify 将创建所需的 DynamoDB 表,并配置 GraphQL 来自动处理读取、写入、更新和删除。打开 amplify/backend/api/amplifyapp/schema.graphql 文件并将内容替换为以下代码:

a7e17b65cf928bfb02e812b2f5363910.jpeg

此架构定义了一个以 id 和文本作为必填字段的备注类型。它还包含若干指令,这些指令属于 Amplify 的 GraphQL 转换库:

@model:以 @model 注释的类型存储在 DynamoDB 中,系统自动为其创建 CRUDL (创建、读取、更新、删除、列表) 操作。

@auth:以 @auth 注释的类型受一组授权规则的保护。在这里,我们使用拥有者授权来确保只有备注的拥有者才能访问和修改。

部署应用程序

通过运行 amplify push 来部署自己的 Amplify Web 应用程序。将应用程序上传到自己的 AWS 账户,而 Amplify 将显示正在部署的更改,并要求确认部署:

be9ca1a37ce01deb45f3799a7b4fca10.jpeg

确认后,根据提示选择后续问题的原定设置值:

c2442a1bffdaf25c3c83345b81255b73.jpeg

更新前端以使用 API

要使用刚部署的新 API,通过将其中的内容替换为以下代码来更新 src/App.js 文件:

842ce3aa43e9de07cb3fa5969191ba77.jpeg

现在就有了一个运转的应用程序。使用多重验证登录,应用程序现在可以与 API 通信以保存/更新/删除备注。可以运行 npm start 进行确认。

总结

官方的文档和教程比较全,作为一名不是特别专业的人员很难提出一些专业性的见解,不过从日常的开发中,我们可以学习一些他们优秀且成熟的架构思维及已有的科技成果。也看一下亚马逊云科技平台的计算服务、网络服务、存储服务、数据库服务、安全责任共担模型、身份和访问管理服务、架构框架及弹性和高可用架构,我比较感兴趣的还是他们的计算服务和网络服务,这个主要是因为平时也玩一些阿里云、华为云、腾讯云的服务器,发现都大同小异,把自己的应用部署到服务器是值得自豪的一件事,比如DNS解析域名,安全组放行,安全管理等。这里有一个比较好的东西是他们的架构思维,值得我们好好学习。还专门花时间了解了一下。

比如他们负载均衡的处理:

96286256b502221b563a66f0f6122ba2.jpeg

cedb3c647d26a95ad90c917370fc076b.jpeg

不同云产品每次迭代性能提升30%~50%,价格还降低了,推荐大家使用数字较大的产品,性价比很高,比如T2和T5,选择T5,这个系列最新的产品性价比之王。

fa7911f86b6e4dcad0a0b7d5402105fe.jpeg

不用产品的优化迭代速度很快,基本现在都是指数级增长了。

40588f29bde96d9bb4b76d81700201b5.jpeg

1381bf39bfb7cc89076411bcaadcb4d0.jpeg

c25d5988275cd51aaf185f102ee9ac3e.jpeg

3f37c6439747c7f34b5ca4e910ebcea3.jpeg

在国内主要有两个点,北京和宁夏两个AZ地区,区域之间主要使用亚马逊云科技主干网络通信。可以充分发挥云产品的价值。

86cc3382da9b65b1798fd9fef14e895b.jpeg

我们可以借助亚马逊云科技的基础设施和服务,在边缘运行延迟敏感性的应用程序,主要依赖于它的低延迟、全托管、还提供最终用户更近的计算、存储、网络和亚马逊云科技服务,为云大哥点赞。

拓展

官方文档:https://docs.aws.amazon.com/?nc2=h_ql_doc_do

了解亚马逊云科技:https://aws.amazon.com/cn/getting-started/?nc2=h_ql_le_gs

ffdc2ff5851fa9691c59e9a212e50881.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/426999.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java用IO实现简单的用户注册登录并玩猜数字小游戏demo

项目场景: 简单的用Java IO读写操作完整实现用户注册登录并玩猜数字小游戏案例。 (猜数字游戏:系统随机生成一位1-100之间的数字让用户猜,给出猜大了,猜小了,及第几次猜对了的提示) 分析&#…

Shell基础知识汇总

一、变量 1.变量的类型 变量根据作用范围的大小主要分为局部变量、全局变量、环境变量: (1)局部变量:在Shell脚本中的函数内显示使用local关键字定义的变量。其作用域局限于函数内,当local变量名与global变量名同名时…

激活函数高频面试题集合

激活函数激活函数的作用是什么?常用的激活函数Relu引入Relu的原因Relu顺序relu在零点可导吗,不可导如何进行反向传播?Geluleaky relu优点缺点softmaxsigmoid缺陷tanh缺点如何选择激活函数Bert、GPT、GPT2中用的激活函数是什么?为什…

我在chatgpt学习requestIdleCallback

react对接chatgpt,导入json形成记忆数据继续提问,想要私聊 [{"role": "user","content": "requestIdleCallback 怎么使用" }, {"role": "assistant","content": "requestI…

电子采购系统的优缺点分析及选型建议

在现今,电子采购系统的出现,为企业采购带来了全新的解决方案。它可以使采购过程更加自动化、高效化,减少采购成本和人力资源的浪费。本文将对电子采购系统的优缺点进行分析,并提供选型建议。 电子采购系统优点: 1、自…

(Linux) make/makefile的简单介绍以及使用

make和makefile的功能make和makefile的使用规则make和makefile的功能 什么是make和makefile,它有什么作用?我相信这是大部分人在刚接触make和makefile时疑惑。那我们就一起来看看它的答案吧。 make是一条命令,makefile是一个文件,两个搭配使…

基于ZC序列的帧同步

Zadoff-Chu序列是一种特殊的序列,具有良好的自相关性和很低的互相关性,这种性能可以被用来产生同步信号,作为对时间和频率的相关运算在TD-LTE系统中,Zadoff-Chu(ZC)序列主要应用于上行RS序列生成、PRACH前导序列生成以及主同步信号…

CIMCAI mature AI product, digital port intelligent port waterway

全球港航人工智能领军企业中集飞瞳CIMCAI,成熟港航人工智能产品全球领先,核心技术世界顶尖水平数字化港航自动化。全球集装箱人工智能AI领军企业CIMCAI中集飞瞳,全球航运港口高科技领军企业,率先将港口人工智能Ceaspectus™产品做…

python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作

文章目录课程目标认识openCV如何安装openCVOpenCV 读取、缩放、翻转、写入图像读取图片缩放图片翻转图片写入图片openCV绘制图形和文字创建一个纯黑色的底图画一个矩形再画一个正方形再画一个圆形再画一个实心圆画一条线画多边形在真实的图片上加载图形在真实的图片上加载文字O…

创建菜单栏、菜单、菜单项

1、QMainWindow窗口 1.1、创建菜单栏 this 代表的是 当前窗口(主窗口),也就是 当前窗口中添加/设置 菜单栏 this->resize(800,600); //创建 菜单栏 QMenuBar *menuBar new QMenuBar(this); //将菜单栏 添加到主窗口的特殊位置 this-&g…

第12届蓝桥杯省赛真题剖析-2020年12月20日Scratch编程初级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第123讲。 第12届蓝桥杯省赛举办了两次,这是2020年10月20日举行的第一次省赛初级组试题,比赛仍…

<STM32>STM32CubeMX-串口收发通信(DMA传输)(6)

<STM32>STM32CubeMX-串口收发通信(DMA传输)(6) 本节主要讲解串口DMA通信的功能,主要采用DMA接收数据的方式; DMA、串口的详细解说可参考《STM32F4XXX中文参考手册》,资料有详细的讲解和说明&am…

【机器视觉------标定篇(二)】三点成圆算法(求相机旋转中心)

应用场景 机器视觉项目应用中,相机安装在机器人上,并且需要定位产品返回坐标偏差以及角度偏差。 与九点标定配合使用,实现精准角度补偿。 算法输入 不共线的三点坐标 A(X₁,Y₁) ,B(X₂,Y₂&…

关于加解密方法报错java.security.InvalidKeyException: Illegal key size

1、找到自己的jdk安装路径下去; 2、找到java.security查看是否存在#crypto.policyunlimited,如果有把该#号去掉,注释打开; 3、若java.security文件中不存在#crypto.policyunlimited,则应该去从官网下载jce策略文件(补丁…

springboot+vue旧物置换网站(完整源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的旧物置换网站。项目源码请联系风歌,文末附上联系信息 。 目前有各类成品java毕设,需要请看文末联系方式 。ja…

Python|基于粒子群和遗传算法的微电网优化调度

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

Hadoop2.0伪分布式平台环境搭建

一、搭建环境的前提条件 环境:ubuntu-16.04 hadoop-2.6.0 jdk1.8.0_161。这里的环境不一定需要和我一样,基本版本差不多都ok的,所需安装包和压缩包自行下载即可。 因为这里是配置Hadoop的教程,配置Java以及安装VMware Tools就自行…

为什么2017年之后操作系统仍将扮演重要角色?

操作系统的历史虽然不像计算科学那么久远,但却也已经拥有相当可观的发展历程。大型机客户于上世纪五十年代末编写了第一批操作系统,这些系统直到数十年后的今天仍拥有相当的知名度——其中包括来自IBM公司的OS/360以及贝尔实验室打造的Unix。 在可预期的…

详解二叉搜索树 --- key模型和key/value模型

🍀作者:阿润菜菜 📖专栏:数据结构 一、认识二叉搜索树的key模型和key/value模型 key的模型是指每个节点只有一个键值,用于确定节点在树中的位置。节点的键值必须满足二叉搜索树的性质,即左子节点的键值小于…

SpringBoot 中使用Guava实现单机令牌桶限流

SpringBoot项目中如何对接口进行限流,有哪些常见的限流算法,如何优雅的进行限流。 首先就让我们来看看为什么需要对接口进行限流? 为什么要进行限流? 因为互联网系统通常都要面对大并发大流量的请求,在突发情况下&a…