将 Angular 2 应用程序部署到 AWS Elastic Beanstalk

Posted

技术标签:

【中文标题】将 Angular 2 应用程序部署到 AWS Elastic Beanstalk【英文标题】:Deploying Angular 2 application into AWS Elastic Beanstalk 【发布时间】:2018-04-21 04:24:58 【问题描述】:

我现在正在使用 Angular 2 开发一个前端应用程序。这个 id 用于与部署在云中的另一个微服务进行通信。在这个 Angular 2 应用程序中,我没有使用数据库交互。

我需要在弹性 beanstalk (AWS PaaS) 中部署这个 Angular 2 应用程序。部署到云中需要遵循哪些重要程序?我是角度框架和云平台的新手。如何?

【问题讨论】:

【参考方案1】:

您需要完全弹性 beanstalk 还是只需使用任何建议的解决方案部署到 AWS?

如果第二种最简单的方法是将 Angular2 部署到 S3 存储桶,配置为提供静态文件:

转到 S3 创建新存储桶 开桶 转到“属性”选项卡 选择“静态网站托管” 选中“使用此存储桶托管网站”并为索引页面和错误页面提供“index.html” 使用“ng build”构建解决方案 将“build”文件夹中的构建结果复制到此存储桶中 导航到链接,显示在“静态网站托管”部分

【讨论】:

谢谢您的回复先生。实际上我的 angular 2 不是静态网站。它将与同一亚马逊云中的微服务进行通信。 Angular 对我的 Spring Boot 微服务应用程序进行 ReST API 调用。当我探索时,我发现弹性 beanstalk 是 AWS 的平台即服务。这就是我搜索弹性 beantalk 部署教程的原因。您能说出为什么该平台不适合我的 Angular 2 部署吗?对于我的 angular 2 应用程序,AWS 中的正确部署方法是什么,因为它将与我的微服务通信。 如果您只从您的 SPA 调用 REST - 您可以轻松使用 S3。如果您有服务器端生成的页面 - 您需要使用其他服务。请检查 - 如果您构建经典的 Angular2 应用程序 - 您可以将它托管在 S3 上并向任何 REST 服务发出请求。它有效。 是的,先生。只有对我的 spring boot 微服务的 ReST 调用会从 angular 2 调用。没有其他后端数据库相关操作。 Json 数据将来自微服务。 Angular 只会显示和发送 POST、PUT 休息方法。但是我可以知道为什么 AWS PaaS (Elastic Beanstalk ) 不适合我目前的要求吗? Den 我在哪里使用弹性豆茎?你能澄清这个疑问吗?我还有困惑吗? 在这里提供静态网站 S3 更便宜。对于弹性beantalk,您需要创建EC2,对于S3,您不需要它。此外,您还有其他好处,例如 S3 之上的 Cloudfront,以支持 CDN 进行分发 但是为什么我需要为 beanstalk 创建 EC2? Elastic Beanstalk 本身是一个部署平台,不需要照顾它的基础设施。这就是我理解的原因。你能帮我正确理解这个概念吗,因为我是云新手。请纠正我的探索方式好吗?【参考方案2】:

我认为这与导入的需要节点运行时环境才能正确执行的 aws-sdk 有关。因此,EBS 机器和 EC2 实例适用于该特定用例,因为通过 s3 托管 SPA 没有 nodejs 运行时环境。

【讨论】:

以上是关于将 Angular 2 应用程序部署到 AWS Elastic Beanstalk的主要内容,如果未能解决你的问题,请参考以下文章

如何根据 AWS 中的域名将数据动态加载到 Angular 应用程序?

Angular Universal - 部署到 AWS Elastic Beanstalk

Angular 7 应用程序中的 AWS Codepipeline 部署错误

如何将多个服务部署到 AWS ECS?

将 AWS Cognito 添加到 Angular 应用程序

AWS S3 Angular 应用程序通过 Route 53 地址调用 ECS 任务