为本地和AWS Elastic Beanstalk配置不同的Web.config

时间:2019-01-25 00:55:29

标签: asp.net amazon-web-services web-config umbraco amazon-elastic-beanstalk

我正在使用 AWS 来设置 Elastic Beanstalk ,我将在其中运行.Net(Umbraco CMS)应用程序。我面临的问题是,该应用程序在Web.config上具有秘密和connectionStrings。另外,现在,该配置已添加到存储库中,该存储库已推送到codeCommit,如果一切正常,我想设置管道以将推送部署到beantalk。

因此,我想了解创建单独文件的最佳方法,以便在推送本地更改时,不会覆盖AWS上的web.config。

我想到的一些解决方案,但我不知道如何执行它们:

1)设置环境变量,并以此方式转换web.config值。

2)在服务器中创建单独的文件(不知道如何),并忽略本地web.config。我不知道那是一个好的解决方案。

3)创建一些构建过程以转换web.config。

也许有更好的方法。请帮忙!

1 个答案:

答案 0 :(得分:0)

执行此操作的一个好方法是通过锁定的S3存储桶。 Here is an example来自Elastic Beanstalk文档。您将创建一个.ebextensions配置文件,告诉EB部署时检索您的机密。

示例:

Resources:
  AWSEBAutoScalingGroup:
    Metadata:
      AWS::CloudFormation::Authentication:
        S3Auth:
          type: "s3"
          buckets: ["my-secret-bucket-123456789012"]
          roleName: "aws-elasticbeanstalk-ec2-role"

files:
  "/tmp/beanstalk-database.json" :
    mode: "000644"
    owner: root
    group: root
    authentication: "S3Auth"
    source: https://s3-us-west-2.amazonaws.com/my-secret-bucket-123456789012/beanstalk-database.json

有多种语言的指南,描述了如何在EB including .NET中建立数据库连接。