本文的目标是向您介绍前五名无服务器的AWS服务,我认为每个技术创始人或独立黑客应该知道。这不是对这些服务的深远潜水,我想以高水平的方式解释它们,并告诉你为什么他们值得使用和学习。使用这些服务,您可以构建几乎每个可以思考的网络和移动应用程序。几乎所有高级编程语言,如Python,TypeScript,JavaScript和Java都可以与这些服务一起使用。所以,让我们直奔。
我从明显的开始,放大。重要的是要注意,有两个(近三个)的“服务”称为AWS中的放大。我们必须区分:
我们在此谈论扩增CLI。使用Amplify CLI,您可以使用命令行界面中的一些命令引导后端。放大有几类可以添加,例如:
有了一些命令,您可以使用引导CLI构建完整的填充应用程序。
我眼中的主要好处是GraphQL-TranForm库。此库使您可以使用型号或连接等自定义注释创建数据架构,并且库将此模式转换为有效的GraphQL架构,同时创建用于创建后端资源的CloudFormation模板,例如DynamoDB表,Cognito Connection等。
它创造了型号持有。模型注释在DynamoDB中创建一个表,其中ID为主键。 CurrentPrice将由Lambda函数Priceresolver解析。
我眼中的主要缺点是,与典型的IAC解决方案一样,与CDK或Terraform等典型的IAC解决方案一起建立基础架构并不灵活。由于大量魔法正在发生扩大,因此您可能会遇到一些问题,特别是当您使用几个团队环境和Lambda层时。
尽管如此,它是一个很好的工具,它拥有一个伟大的社区,团队仍然进一步开发服务。存款的后端完全被放大了。如果您想学习一个服务,请学习这个!
这为我们带来了下一个服务AppSync。 Appsync是AWS完全托管的GraphQL API。 GraphQL使您能够成为开发人员,以便完全获取所需的数据,而无需担心获取太多或太少的数据覆盖&欠凝固)。通常,AppSync中有三个主要函数。这些是查询,突变和订阅。
使用查询,您可以查询来自不同数据源的数据。这意味着您可以拥有一个类型的键,例如从不同来源获取数据。让我们再次拍摄我们的示例:
属性ISIN是来自DynamoDB的字符串,CurrentPrice通过名为PricEresolver的Lambda函数进行解析。 Lambda Resolvers在此提供主要的灵活性。在Lambda函数中,您可以拥有像所需的一样多的自定义代码(请求两个不同的API,Clean& preprocess数据,......)并用您在应用程序中确切的响应此数据。您的数据生活在哪里,AppSync在申请的一个引擎盖下提供了解决它的机会。这是一个很大的灵活性。
使用突变,您可以更改数据并更新它。订阅使您能够实现您的数据更新。
你为什么要将AppSync作为创始人学习?首先,您可以获得使用GraphQL的主要好处,它使用类型安全性,并为前端开发人员提供所需数据的强大功能。其次,您可以通过连接所需的每个数据源具有如此多的灵活性。第三,你让AWS做大部分工作。您有一个单一端点,没有麻烦,具有解析请求并将不同的AWS服务连接在一起。它将减少您的发展时间。
现在让我们回到根源,兰巴德。 Lambda是最常见的知名服务器服务。当人们谈论无服务器的时候,很多人就可以参考兰布。 Lambda服务背后的基本想法是运行代码而不考虑基础设施。 AWS的承诺只是您的代码将被执行。 Lambda支持几个运行时,如Python,JavaScript,Java,C#,Rust,Go等等。最新功能之一是自定义Docker容器可以用作运行时,并且每毫秒而不是每100毫秒都会发生每毫秒。 Lambda的最大运行时间为15分钟,在构建您的申请时考虑到这一点。唯一的基础架构设置是内存设置。
定价:Lambda便宜。每月的第一百万要求是免费的。从该点开始,它将基于Lambda运行的分钟计算。
始终将内存增加到大约4 GB,运行更便宜的速度越快。有一个伟大的图书馆来测试这个假设
声明您的所有静态变量,如DynamoDB,Boto3在您的处理程序功能之外 - >减少冷启动
在设计申请时,请记住冷酷。如果您需要某些响应时间预热您的LAMBDA或之前提供的并发性。
Lambda为您提供了执行代码的能力,而不担心基础设施。定价真的很棒。您的整个应用程序可以基于Lambda。它取决于用例和整体架构(Go Event-Drive!),但我所知道的大多数应用程序都可以轻松采用几个Lambda函数。您只需按需支付,您有小的开发周期,部署更容易。
让我们来看看身份验证。 Cognito是AWS的身份验证和授权的服务。您可以使用它来注册和登录目的,细粒度的用户组控制甚至联合登录,如Facebook,Google& Apple登录。如果您启动SaaS业务,您真的希望为用户提供无缝认证体验并提供社交登录。 Cognito很容易。 Cognito区别了用户池&身份池。
Identity Pools:Identity Pools用于为用户创建唯一身份,并提供对其他AWS服务的访问。例如,需要为匿名用户生成临时凭据。
为什么?为您的用户提供他们应得的无缝的身份验证体验。拥有Cognito,您可以在任何规模那样做到这一点。您可以自定义您的注册和登录页面,但您想要或您甚至可以通过AWS使用预构建的页面。使用联合登录,您可以在单击单击登录时提供。
我想要介绍的最后一项服务是DynamoDB。 DynamoDB是一个完全管理的NoSQL数据库,它是高度可扩展且高度可用的。我几乎每个用例和项目现在使用dynamodb,我是一个巨大的粉丝。
流:您可以在表格上的每一个更新中触发某些东西(例如lambda函数)的流
DynamoDB基本上是一个密钥,值数据库,您可以在其中存储不同的数据类型作为值。值也可以是嵌套列表或嵌套对象列表(如JSON)。 dynamodb项看起来像:
密钥是列名(ISIN),值是具有实际值的数据类型(s:string)。该项目也可以用典型的JSON语法显示:
DynamoDB具有一些巨大的功能,可以提高更高的性能,如全球表,DynamoDB加速器,时间点恢复等等。在设计DynamoDB表时,请记住访问模式始终是重要的。瑞克正在做出一个精彩的工作解释了这个视频中的DynamoDB策略。
定价:定价是基于阅读,写作和存储数据。再次,如果你刚刚开始你的SaaS产品,价格如此之低,它不会花费你一美元。如果您有可预测的读写请求,您甚至可以使用甚至更便宜的配置容量。
就是这样! 这些是您在构建申请时应考虑的服务。 所有这些服务都具有以云原住方式开发您的申请的大效益。 这些都是: 没有风险。 如果没有人使用您的应用,则不会收取费用。 这最大限度地减少了风险。 安全的。 随着AWS工程师,您不会将您的服务器和应用程序安全地保护您的服务器和应用程序。 专注于您的业务逻辑,让无聊的东西吧。 这是一个高级概述当然,并不是作为单一服务的深度潜水或完整。 有许多伟大的服务AWS提供。 如果您想了解更多关于在AWS上建立SaaS服务的信息,请按照我的推特!