Aak*_*ash 7 angular-universal angular
直到今天,我有一个简单的、主要是静态的 Angular 9 应用程序,它将使用 CloudFront/S3 和一些 Lambda 函数提供服务。它运行良好,但没有服务器端渲染。今天我升级到 Angular 10 并按照说明添加了 angular 通用https://angular.io/guide/universal。我找到了 @ng-toolkit/universal 和 @ng-toolkit/serverless 选项,但这不适用于 Angular 10。https ://medium.com/better-programming/getting-started-with-serverless-angular-universal- on-aws-lambda-8754bcc4dc19。这告诉我 Lambda 是一个选项,但不确定哪一段 (server.ts) 代码应该是 lambda?
在本地主机上添加 Universal 后,TLDR 一切正常。通常,对于这个项目的 CI/CD,我有一个 AWS Codepipeline 跟踪 repo 的 master 分支,一旦我将代码合并到 master,它就会拉取和构建并将 dist 文件夹复制到 S3 和 S3 存储桶作为 CloudFront 的源发行版。在 S3 存储桶 dist 文件夹更新后,CodePipeline 自动使我的分配无效,并且新的更改在 CloudFront 上生效。
由于我添加了 Universal,我必须重新设计 CI/CD,问题是是否在 EC2 和 Lambda 上部署 SSR。
当我运行npm run build:ssrAngular 时ng build --prod && ng run proj:server:production,一切准备就绪。如果我不使用 EC2 节点/快速服务器,究竟需要将什么部署为 Lambda?
如果我必须使用 EC2 而 Lambda 不是一个选项,我打算按照以下步骤操作:
npm run build:ssr(可能是 pm2 或其他保持活动状态的东西)或其他一些命令?任何帮助确定这个 Angular Universal 部署部分都会非常有帮助,特别是如果我可以使用 Lambda 进行无服务器 SSR,那么持续的头痛就会少很多。
小智 0
您可以尝试在 Cloudfront 中的 Lambda@Edge 上运行 SSR,但之前请检查您的用例的限制/限制和配额。
您必须将快速代码包装在 lambda-wrapper 中:https://www.npmjs.com/package/aws-serverless-express-edge
| 归档时间: |
|
| 查看次数: |
2034 次 |
| 最近记录: |