我正在尝试使用Elastic Beanstalk在AWS上部署我的.NET应用程序。 该应用程序包含多个项目。这些项目映射到IIS中公共父目录下的不同子目录。
AWS ToolKit for Visual Studio允许一次发布一个项目。 如何将多个项目打包在一起然后进行部署?
我是AWS的新手,真的很感激任何帮助!
答案 0 :(得分:2)
不幸的是,VS插件无法实现这一点。我们的设置略有不同,我们在同一个EB实例上有一个IIS项目和一个普通的控制台项目。为了安装控制台项目(实际上是Windows服务),我们使用.ebextensions结构从S3下载软件包,并在每次部署Web应用程序时执行脚本来安装它。
在你的情况下,它可能是相似的;您的构建脚本将所有Web应用程序部署到S3(Zip文件),然后使用.ebextensions结构安装它们。但我还没有尝试过Web项目,所以我不知道你的脚本会是什么样子。
您可能希望根据您的情况考虑CodeDeploy AWS服务。 Elastic Beanstalk真正面向一个环境一个项目(本身并没有真正错误)。
答案 1 :(得分:1)
没有可用的微软插件,但亚马逊有一个Visual Studio应用程序部署任务。
有一个名为CodeDeploy的AWS解决方案: Visual Studio Team Services - AWS CodeDeploy Application Deployment task 可以在GitHub和Visual Studio Marketplace
上下载自动化的其他替代方案,您可以选择一个可用的AWS框架,如Claudia,APEX,Serverless。另一种选择是serverless framework。
交汇处的无服务器框架使用此替代方法,您可以轻松地在serverless.yml文件上定义模块部署,并使用命令行进行部署。
provider:
...
plugins:
- serverless-plugin-elastic-beanstalk
custom:
elastic-beanstalk:
variables:
enter your EB definitions here
使用
运行sls deploy
答案 2 :(得分:0)
一种有效的方法(尽管使用了更多资源)是通过使用提供的示例代码为Windows创建Elastic Beanstalk环境,然后在EB环境中为Windows创建EC2服务器实例。然后,通过与RDP桌面门户(它是虚拟机实例)远程连接,在EC2实例内部使用IIS。像在本地一样,使用IIS发布应用程序解决方案(压缩应用程序,然后使用剪贴板将其从本地桌面c + p到RDP门户桌面)。之后,需要一些基本的网络连接才能使应用程序达到网络上的域名。如果您有点创意,用这种方法也有一些安全好处。