Zure 연결 문자열 모범 사례
나는 이제 막 애저로 이주하는 애플리케이션이 있습니다.현재 web.config 변환을 사용하여 dev/staging/prod 환경을 연결하는 데이터베이스 변경을 관리하고 있습니다.Azure에서 이러한 여러 연결 문자열을 관리하는 가장 좋은 방법은 무엇입니까?
개발자가 프로덕션 자격 증명을 볼 수 있는지 여부가 중요하지 않은 경우 기본 제공되는 Visual Studio 10 구성 변환을 사용할 수 있습니다.이것이 당신이 찾고 있는 것이라면, 다음 단계를 따르십시오.
1.파일 탐색기에서 Azure 프로젝트 폴더로 이동합니다.
ServiceConfiguration.cscfg의 복사본을 만듭니다.
복사 이름을 서비스 구성으로 변경합니다.Base.cscfg
각 빌드 구성(예: 개발, 스테이징, 프로덕션)에 대해 서비스 구성을 생성합니다.<빌드 구성 이름> .cscfg 파일.이러한 파일에서 일반 구성 변환 구문을 사용할 수 있습니다.
텍스트 편집기에서 .ccproj 파일 열기
다음 노드를 찾습니다.
<ItemGroup>
<ServiceDefinition Include="ServiceDefinition.csdef" />
<ServiceConfiguration Include="ServiceConfiguration.cscfg" />
</ItemGroup>
다음으로 대체합니다. 빌드 구성과 일치하도록 이 블록을 편집해야 합니다.
<ItemGroup>
<ServiceDefinition Include="ServiceDefinition.csdef" />
<ServiceConfiguration Include="ServiceConfiguration.cscfg" />
<None Include="ServiceConfiguration.Base.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Dev.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Staging.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
<None Include="ServiceConfiguration.Production.cscfg">
<DependentUpon>ServiceConfiguration.cscfg</DependentUpon>
</None>
</ItemGroup>
7. .ccproj 파일의 바로 위 끝에 다음을 추가합니다.</Project>:
<Import Project="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.targets" />
<Target Name="BeforeBuild">
<TransformXml Source="ServiceConfiguration.Base.cscfg" Transform="ServiceConfiguration.$(Configuration).cscfg" Destination="ServiceConfiguration.cscfg" />
</Target>
8.Visual Studio 10이 설치되지 않은 CI 서버를 사용하는 경우 C:\Program Files\를 복사해야 합니다.MSBuild\Microsoft\VisualStudio\v10.0\웹 폴더 및 개발 컴퓨터에서 서버로 이동하는 내용입니다.
업데이트: @SolarSteve가 언급했듯이 ServiceConfiguration.*.cscfg 파일에 네임스페이스를 추가해야 할 수 있습니다.다음은 서비스 구성의 예입니다.Base.cscfg:
<sc:ServiceConfiguration serviceName="MyServiceName" osFamily="1" osVersion="*" xmlns:sc="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform">
<sc:Role name="MyRoleName">
<sc:Instances count="1" />
<sc:ConfigurationSettings>
<sc:Setting name="DataConnectionString" value="xxx" />
</sc:ConfigurationSettings>
</sc:Role>
</sc:ServiceConfiguration>
개인적으로 우리는:
- 웹 구성 변환이 완전히 삭제되었습니다.
- 설정은 cscfg에서 검색됩니다.
- cscfg의 개발 버전은 로컬 개발 환경(버전 제어에 저장됨)을 가리킵니다.
- 프로덕션에 배포하는 동안 프로덕션 SQL Azure 및 스토리지에 대한 보안 자격 증명을 제공합니다.
애플리케이션 설정 및 클라우드 환경에서 구성 값을 검색하는 설정 관리 클래스의 샘플의 경우 오픈 소스 Lokad를 확인할 수 있습니다.윈도우즈용 CQRS Azure 프로젝트(클라우드 설정 공급자 참조)
클라우드 구성 관리자는 Azure SDK 1.7 http://msdn.microsoft.com/en-us/LIBRARY/microsoft.windowsazure.cloudconfigurationmanager 에서 사용할 수 있습니다.
먼저 ServiceConfiguration.cscfg 등을 확인합니다.서비스 구성.구성 설정을 위한 Cloud.cscfg.없으면 web.config 및 app.config로 돌아갑니다.
예를들면
CloudConfigurationManager.GetSetting("StorageConnectionString")
StorageConnectionString 설정에 대한 적절한 cscfg 파일을 찾은 다음 web.config를 검색하고 app.config를 검색합니다.
다양한 환경(개발 패브릭 내부의 로컬 개발, 개발 패브릭 외부의 로컬 개발, 테스트 및 릴리스/스테이지)이 있으며, 20개의 프로젝트 중 일부는 구성 설정의 변동성이 필요합니다.우리는 환경에 맞는 하위 폴더를 포함한 작은 "config" 프로젝트를 만들어 이 문제를 해결했습니다.컴파일할 때마다 구성 프로젝트의 루트 폴더에 어떤 빌드를 수행하는지에 따라 하위 폴더에서 파일을 복사합니다.
다른 모든 프로젝트는 .config 파일에 대한 구성 프로젝트에 연결됩니다.또한 다양한 환경에서 항상 동일한 정보를 반복하는 광기를 유지하기 위해 부분 구성 파일을 사용합니다.
이것이 도움이 되길 바랍니다.
서비스 구성을 변환하는 데도 같은 요구 사항이 있었습니다.
jmac(감사합니다!)의 답변으로 갔지만 기본 버전의 네임스페이스에 문제가 있었습니다.
<ServiceConfiguration serviceName="TestCloud2" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
좀 더 자세히 살펴본 후 앤드류 패터슨(감사합니다)이 발견했습니다.
결과 변환 파일:
<asc:ServiceConfiguration serviceName="TestCloud2" xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform" xmlns:asc="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceConfiguration" osFamily="1" osVersion="*">
<asc:Role name="WebRole1">
<asc:Instances count="1" />
<asc:ConfigurationSettings>
<asc:Setting name="LoggingStorage" value="UseDevelopmentStorage=true" xdt:Transform="SetAttributes" xdt:Locator="Match(name)"/>
</asc:ConfigurationSettings>
</asc:Role>
언급URL : https://stackoverflow.com/questions/4190984/azure-connection-string-best-practices
'codememo' 카테고리의 다른 글
| 그룹화된 테이블 뷰 셀의 배경/경계 색상을 사용자 지정하는 방법은 무엇입니까? (0) | 2023.06.02 |
|---|---|
| 레일에 매개변수가 있는지 테스트하는 방법 (0) | 2023.06.02 |
| 아이폰에서 "홈 화면에 추가"를 위한 자바스크립트? (0) | 2023.06.02 |
| Git의 단계별 변경에서 "이전 모드 100755 new mode 100644"라고 적힌 파일을 제거하려면 어떻게 해야 합니까? (0) | 2023.06.02 |
| 이중 *(스플랫) 연산자는 무엇을 합니까? (0) | 2023.06.02 |