如何设计几乎所有后端,并且无需代码即可将其部署到AWS

2020年12月30日10:42:01 发表评论 35 次浏览

本文概述

在本文中, 我将向你展示如何设计四个不同的示例应用程序-SimpleNote克隆, Twitter克隆, Slack克隆和电子商务商店。我们将使用在AWS re:Invent 2020上发布的最酷的新玩具来做到这一点。

引入放大沙箱

放大管理界面是用于构建应用程序后端的新的低代码界面, 不需要任何AWS专业知识。但是, 许多人可能会错过的是Amplify Admin还包括一个很棒的新沙盒这使你无需使用AWS账户即可上手。

此沙盒是Amplify Admin UI的公共共享版本, 你无需登录到AWS帐户即可创建和建模数据模型!

目前只数据沙箱内置, 但随着时间的推移, 其他AWS Amplify类别也将可用。

首次输入沙箱时, 你将进入一个可视化构建器, 可以在其中添加你的模型, 枚举和自定义类型。通常, 你只会创建模型。

你可以命名模型, 添加字段并指定类型(包括它们是可选字段还是数组字段), 甚至可以添加一对一, 一对多或多对多关系之间楷模。

如何设计几乎所有后端,并且无需代码即可将其部署到AWS1

此外, 它甚至可以让你分享你创建的数据模型!这意味着你不必在每次创建项目时都从头开始, 并且你可以像共享代码要点一样共享数据模式.

我们的四个样本沙箱

我认为通过勾勒四个可以使用的示例沙箱来展示它的强大功能是一个好主意:

  • 一种笔记应用程式(受免费笔记应用程式启发SimpleNote)
  • 一种聊天室应用程式(受Slack启发)
  • 一种社交媒体应用程式(受Twitter启发)
  • An电子商务后端(受每次购物体验启发)

如何创建实体关系图

使用Amplify Admin UI可以轻松进行操作, 但是值得在开始之前进行一些计划。

经过时间考验的方法是绘制实体关系图。我们选择为我们使用Lucidcharts, 但是你可以使用任何图表工具来执行此操作。

image.png

笔记应用

这是我每天个人使用的最小应用程序, 因此我喜欢它的简单性。我们有两种模型:便笺和标签, 它们之间只有一个多对多关系, 以便于查询。

你可以通过提供基于角色的协作式编辑来扩展此功能, 部署此模型后即可使用。你还应该利用

客户端数据存储库

确保笔记可以离线使用。

你可以在此处查看沙盒:

https://sandbox.amplifyapp.com/schema-design/1c782f02-1fe7-4785-9a02-22a27cc96d0d/clone

。请注意, 我们使用双向

多对多

模型之间的关系, 因为注释可以具有零个或多个标签, 反之亦然。

image.png

松弛克隆

我们中的许多人使用聊天应用程序来工作, 因此我们从用户角度熟悉此应用程序用例。

这里的新差别是每个消息都属于一个通道和一个用户, 并且每个用户都可以创建通道并加入它们。因此, 三个主要模型之间存在有趣的三向关系。

你可以在此处查看沙盒:

https://sandbox.amplifyapp.com/schema-design/5f863684-fd1e-41b4-bca1-36c2271e21a1/clone

.

渠道

是这里最复杂的模型–请注意我们如何充分利用沙盒中可用的所有关系类型:

  • 频道可以有许多用户, 并且用户可以加入许多频道
  • 频道只能由一用户, 无需跟踪任何特定用户创建了哪些渠道
  • 频道可以有许多消息, 但每个消息只能属于一渠道
image.png

Twitter的克隆

社交媒体通常是最复杂的数据模型之一。我们实施了最小可行的社交媒体应用程序–我们提供的推文和用户模型。

但是, 推文本身具有复杂的关系集。它具有一个作者用户, 以及一组需要建模的喜欢, 回复和报价。

你可以考虑针对此应用进行其他修改:提供其他类型的推文, 包括民意测验, 图像和视频, 内置广告和直接消息。

你可以在此处查看沙盒:

https://sandbox.amplifyapp.com/schema-design/ad5b5b7e-f207-42d1-92b1-0ccef056a26b/clone

。请注意, 此处通过将喜欢, 回复和引号建模为

Array

各自的用户名和推特ID。

image.png

电子商务商店

当涉及金钱时, 赌注会更高。跟踪订单并确保出色的客户体验至关重要。

我们通过确保对供应商, 产品, 订单和客户使用单独的模型来对典型的电子商务后端进行建模。为了充分利用典型订购体验的细微差别, 我们还提供了在单个订单中指定产品数量以及应用优惠券的功能。

由于电子商务体验的变化无穷无尽, 因此我们无法对它们全部进行建模, 但是我希望这可以作为一个很好的起点。如果你对此概念有疑问, 请分享你自己的内容!

你可以在此处查看沙盒:

https://sandbox.amplifyapp.com/schema-design/aa0e7a61-aa72-4b27-b6db-ea8e2031f95e/clone

。请注意, 沙盒的功能可以轻松处理此模型的复杂性。一个订单只能有一个客户, 但是一个客户可以有多个订单。

在"客户"模型上进行设置时, 沙盒足够智能, 可以自动将相应的"客户ID"字段设置为"关系源"在订购模型上。对于以后的GraphQL查询, 这将非常方便。

如何设计几乎所有后端,并且无需代码即可将其部署到AWS2

如何将模型部署到AWS

模型制作完成后, 沙盒会提示你通过使用以下工具下载来进行本地测试:放大CLI。但是, 如果你只想在AWS上发布它, 则可以跳过该过程, 直接进入"部署到AWS"阶段:

如何设计几乎所有后端,并且无需代码即可将其部署到AWS3

点击"登录以部署到AWS"后, 你就完成了!想象一下–你刚刚创建了一个实际的后端数据模型无需编写任何代码并将其直接部署到AWS。 🤯

如何设计几乎所有后端,并且无需代码即可将其部署到AWS4

在这里, 你可以设置进一步的自定义, 包括添加身份验证, 邀请用户和分配角色, 在每个模型上添加授权规则, 使用我们的WYSIWYG编辑器创建内容等。

如果你想了解更多, Ali Spittel撰写了精彩的博文有关在部署Amplify Admin UI后如何强大的功能, 而本文是关于无需帐户的沙盒环境之前部署。

纳德·达比特(Nader Dabit)也写过你可能想尝试的其他10个功能.

使用Amplify Sandbox, 可以很容易地在任何应用程序后端场景中进行建模和思考, 因此希望这些示例能激发你的创造力。如果你有任何要求或意见, 请告诉我!

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: