我正在使用 AWS 来设置 Elastic Beanstalk ,我将在其中运行.Net(Umbraco CMS)应用程序。我面临的问题是,该应用程序在Web.config上具有秘密和connectionStrings。另外,现在,该配置已添加到存储库中,该存储库已推送到codeCommit,如果一切正常,我想设置管道以将推送部署到beantalk。
因此,我想了解创建单独文件的最佳方法,以便在推送本地更改时,不会覆盖AWS上的web.config。
我想到的一些解决方案,但我不知道如何执行它们:
1)设置环境变量,并以此方式转换web.config值。
2)在服务器中创建单独的文件(不知道如何),并忽略本地web.config。我不知道那是一个好的解决方案。
3)创建一些构建过程以转换web.config。
也许有更好的方法。请帮忙!
答案 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中建立数据库连接。