2017-11-01 5 views
0

AWS Beanstalk의 다른 환경에 응용 프로그램을 배포해야합니다. 따라서 MSBuild를 사용하여 번들을 만들고 S3 버킷에 zip 파일을 업로드하고 AWS EB에 배포 할 수 있습니다. 그러나 환경에 따라 특정 web.config 매개 변수를 변경하려고합니다. 예 : 연결 문자열을 변경하고 싶습니다. 지금 당장 RDP를 사용하여 web.config에서 이러한 설정을 변경하거나 변경된 구성으로 새 패키지를 만들어야합니다. 하지만 환경간에 지속적인 배포 및 승격을 원하기 때문에 이러한 옵션이 작동하지 않습니다.AWS Elastic Beanstalk에서 ASP.NET 응용 프로그램 구성

답변

1

구성 스크립트 (.config) + 일부 aws 환경 변수를 사용할 수 있습니다.

그 뒤에 숨어있는 생각은 꽤 간단합니다. awh 설정에서 환경 이름을 얻으려면 Fn::GetOptionSetting 함수를 사용하십시오. 그런 다음 예를 들어 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 
+0

너무 감사 :

은 제가 예제로 사용하는 스크립트를 첨부! –