【问题标题】:Deploying .NET application on AWS在 AWS 上部署 .NET 应用程序
【发布时间】:2016-06-23 19:14:43
【问题描述】:

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

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

我是 AWS 新手,非常感谢任何帮助!

【问题讨论】:

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


    【解决方案1】:

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

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

    您可能需要根据自己的情况考虑 CodeDeploy AWS 服务。 Elastic Beanstalk 确实面向单一环境单一项目(这本身并没有错)。

    【讨论】:

      【解决方案2】:

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

      有一个名为 CodeDeploy 的 AWS 解决方案: 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
      

      【讨论】:

        【解决方案3】:

        一种可行的方法是使用提供的示例代码为 Windows 创建一个 Elastic Beanstalk 环境,然后在您的 EB 环境中为 Windows 创建一个 EC2 服务器实例,尽管需要使用更多资源。然后通过远程连接 RDP 桌面门户(它是一个虚拟机实例)在 EC2 实例中使用 IIS。像在本地一样使用 IIS 发布应用程序解决方案(压缩应用程序,然后使用剪贴板将其从本地桌面 c + p 到 RDP 门户桌面)。之后需要一些基本的网络才能使应用程序在网络上获得域名。如果您有点创意,这样做还有一些安全优势。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-05-25
          • 2016-12-25
          • 2013-12-19
          • 1970-01-01
          • 1970-01-01
          • 2018-05-15
          • 2018-09-09
          • 2014-05-21
          相关资源
          最近更新 更多