代码之家  ›  专栏  ›  技术社区  ›  prime

如何在AWS Lambda上构建无服务器框架和微服务

  •  3
  • prime  · 技术社区  · 7 年前

    我一直在研究微服务和无服务器解决方案,并正在使用托管在S3和Lambda函数上的角度前端,这些函数通过AWS上的API网关与各种DynamoDb表进行对话。

    我阅读/观看的每个示例和视频都使用简单的CRUD微服务作为简单的“待办事项”应用程序或类似应用程序的一部分。我的问题是业务逻辑在哪里?如果我在构建一个复杂的应用程序,我不希望所有的业务逻辑都出现在前端应用程序中。还是我?我可以构建一个应用程序API,然后调用CRUD微服务,但这感觉像是一种整体方法。

    我很感激可能没有一个明确的答案,但有谁能就最佳实践向新手提供建议吗?

    1 回复  |  直到 7 年前
        1
  •  3
  •   Ashan    7 年前

    在设计无服务器微服务时,我遵循了几个最佳实践

    • 从很少的微服务开始(越少越好,除非你确切地知道服务分离应该如何,否则会推迟拆分的决定)
    • 分离到API的业务逻辑,并将处理程序用作MVC中的控制器来调用业务逻辑。(这也有助于在不依赖Lambda的情况下进行单元测试逻辑)。
    • 没有必要在API中只编写简单的CRUD。这取决于所需的域和业务逻辑。(但不要在不将代码分离到不同服务的情况下构建另一个整体。几个AWS服务限制还将为您提供一些关于服务中应该有多少端点的指导等。)
    • 使用Angular应用程序放置大部分演示逻辑。
    • 使用CloudFront作为代理和CDN以避免CORs。

    如果你需要更多信息,可以参考我写的以下文章。

    在AWS中部署Angular/React应用程序 以最佳实践自动化S3和CloudFront的创建。