部署到 AWS Elastic Beanstalk 时的 ConnectionString 转换
Posted
技术标签:
【中文标题】部署到 AWS Elastic Beanstalk 时的 ConnectionString 转换【英文标题】:ConnectionString Transforms when deploying to AWS Elastic Beanstalk 【发布时间】:2017-05-07 11:01:32 【问题描述】:我的反对
在我当前的项目中,我正在尝试将 .NET MVC 项目部署到 AWS 上的 Elastic Beanstalk。我过去通常使用 Azure,但在跟踪连接字符串的配置转换信息时遇到了困难。
我尝试过的
我已经发现我可以更改/操作 AppSettings,但我不太喜欢将我的连接字符串移动到 appsettings 的想法,如果我不是绝对必须这样做的话。
此外,我不想对生产环境进行 Web.Release.config 转换,因为该项目可能会发布到开发、暂存和生产环境,所有环境都带有单独的连接字符串。
我也尝试查看 ebextensions,但我还没有完全指出改变任何东西的连接字符串的方向。
我在寻找什么
是否有人有任何他们使用过的解决方案或可以推荐的任何资源(博客、指南等)?
tl;博士
寻找一种方法来为部署在 AWS Elastic Beanstalk 上的 ASP.NET MVC 项目执行 ConnectionString 转换。
【问题讨论】:
【参考方案1】:我没有任何指南,但您可以使用以下步骤来实现您想要做的事情:
-
使用配置管理器为每个环境创建新配置
添加其他配置转换(右键单击 Web.config,然后单击“添加配置转换”)
在配置转换中为每个环境设置连接字符串转换值
创建发布配置文件(右键单击 Asp.Net Mvc 项目并单击发布)
将发布方法设置为“Web 部署包”
设置配置以匹配您要使用的环境,这将自动应用正确的配置转换
将包发布到某个位置,然后作为新版本上传到您的 Elastic Beanstalk
为每个环境重复创建配置和发布配置文件
请注意,连接字符串在部署包中进行了参数化,实际值将出现在部署 zip 包中的 parameters.xml 文件中,并且 Web.config 将仅具有替换令牌。部署包时,Elastic Beanstalk 会将参数化应用到 Web.config。
【讨论】:
Web Deploy Package 是我们的正确解决方案。对我来说,缺少的部分是 awsdeploy 工具拾取包并从那里进行部署,如果这有意义的话。 @KevinR。但是这个解决方案是否仍然给您留下了您并不真正想要的多个转换?我正在寻找类似的东西,但能够将连接字符串设置为 Beanstalk 环境的一部分。到目前为止,我已经找到了这个答案:***.com/questions/19917010/… 但这似乎只适用于 AppSettings(和你一样,我想继续使用连接字符串)。 你用的是框架还是核心?使用核心更容易以上是关于部署到 AWS Elastic Beanstalk 时的 ConnectionString 转换的主要内容,如果未能解决你的问题,请参考以下文章
使用 AWS CodeBuild 和 EB CLI 部署到 AWS Elastic Beanstalk
部署到 AWS Elastic Beanstalk 时的 ConnectionString 转换
如何使用TFS 2017部署到Elastic Beanstalk?