在AWS上部署.NET应用程序

时间:2016-03-09 12:06:55

标签: .net amazon-web-services deployment elastic-beanstalk

我正在尝试使用Elastic Beanstalk在AWS上部署我的.NET应用程序。 该应用程序包含多个项目。这些项目映射到IIS中公共父目录下的不同子目录。

AWS ToolKit for Visual Studio允许一次发布一个项目。 如何将多个项目打包在一起然后进行部署?

我是AWS的新手,真的很感激任何帮助!

3 个答案:

答案 0 :(得分:2)

不幸的是,VS插件无法实现这一点。我们的设置略有不同,我们在同一个EB实例上有一个IIS项目和一个普通的控制台项目。为了安装控制台项目(实际上是Windows服务),我们使用.ebextensions结构从S3下载软件包,并在每次部署Web应用程序时执行脚本来安装它。

在你的情况下,它可能是相似的;您的构建脚本将所有Web应用程序部署到S3(Zip文件),然后使用.ebextensions结构安装它们。但我还没有尝试过Web项目,所以我不知道你的脚本会是什么样子。

您可能希望根据您的情况考虑CodeDeploy AWS服务。 Elastic Beanstalk真正面向一个环境一个项目(本身并没有真正错误)。

答案 1 :(得分:1)

没有可用的微软插件,但亚马逊有一个Visual Studio应用程序部署任务。

有一个名为CodeDeploy的AWS解决方案: enter image description here Visual Studio Team Services - AWS CodeDeploy Application Deployment task 可以在GitHubVisual Studio Marketplace

上下载

自动化的其他替代方案,您可以选择一个可用的AWS框架,如Claudia,APEX,Serverless。另一种选择是serverless framework

EB plugin

交汇处的无服务器框架

使用此替代方法,您可以轻松地在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门户桌面)。之后,需要一些基本的网络连接才能使应用程序达到网络上的域名。如果您有点创意,用这种方法也有一些安全好处。