在AWS Elastic Beanstalk上配置ASP.NET应用程序

时间:2017-11-01 17:39:48

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

我需要将应用程序部署到AWS Beanstalk中的不同环境。因此,我可以使用MSBuild创建捆绑包,将zip文件上传到S3存储桶,然后部署到AWS EB。但是,我想根据环境更改某些web.config参数。例如,我想更改连接字符串。 现在我正在使用RDP手动更改web.config中的这些设置,或者必须使用更改的配置创建新包。但我希望在环境之间进行持续部署和升级,因此这些选项无效。

1 个答案:

答案 0 :(得分:1)

为此,您可以使用配置脚本(.config)+一些aws环境变量。

背后的想法很简单。您可以使用函数Fn::GetOptionSetting从aws设置中获取环境名称。然后,您可以使用powershell编辑文件,例如。

http://docs.aws.amazon.com/elasticbeanstalk/latest/dg/ebextensions.html

我正在使用类似的方法在asp.net核心中设置windows环境变量。下面的脚本创建了一个PWS脚本并简单地执行它。

我附上了我用的脚本作为例子:

files:
   "c:/cfn/set-aspnetcore-environment.ps1":
       content: |
          $envtype = "`{"Fn::GetOptionSetting": {"Namespace": "aws:elasticbeanstalk:application:environment", "OptionName": "AspNetCoreEnv"}}`"
          $envtype | Out-File c:\cfn\set-aspnetcore-environment.txt 
          [Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", $envtype, "Machine")
commands:
    01_writeenv:
       command: powershell.exe -ExecutionPolicy Bypass -File c:\\cfn\\set-aspnetcore-environment.ps1