2013-07-11 4 views
11

현재 개발 클라우드 서비스 (acme-dev-service) 및 프로덕션 클라우드 서비스 (acme-prod-service)가 있습니다. 우리 솔루션의 현재 설치에는 두 가지 환경 (프로덕션 및 개발)에 프로젝트를 배포하기 위해 .cscfg 및 .csdef 파일의 변환을 사용하는 acme.application이라는 클라우드 서비스 프로젝트가 있습니다. 나는 변형 방법을 좋아하지 않는다. 왜냐하면 그것은 나에게 해킹과 같은 느낌을주기 때문이다. 그래서 몇 가지 조사를 한 후에는 문제의 일부를 해결하는 여러 구성 파일을 가질 수 있지만 하나의 서비스 정의 만 허용되므로 문제가 발생하는 것으로 보입니다. 프로덕션 환경에 devH 환경과 다른 hostHeader 바인딩뿐만 아니라 추가 인증서가 필요하기 때문에 이는 우리에게는 적합하지 않습니다.여러 환경에서 Azure 클라우드 서비스 프로젝트 구성 (.csdef 및 .cscfg)

그래서 우리는 실제로 변환을 사용하지 못하는 것 같습니다. 그래서 내 질문에 맞춰 잘못된 Azure 서비스 프로젝트 파일을보고있는 것일까 요? Azure 프로젝트를 하나의 Azure 클라우드 서비스에 실제로 매핑해야합니까? 생산 용 Azure 프로젝트와 개발 용 Azure 프로젝트가 있어야합니까? 더 좋은 방법이 있나요? Azure의 여러 환경에서 작업하는 가장 좋은 방법은 무엇입니까?

답변

9

CSDefinition 파일이 여기에 있습니다. 두 환경 (dev/test/stage/production 등)간에 차이가 나는 값이 있다면 다음과 같은 세 가지 옵션이 있습니다.

1) 배포 전에 수동으로 값을 수정하십시오. Errr .... 좋아요. 당신에게는 두 가지 옵션이 있습니다.

1) MS 빌드 프로세스를 탭하여 선택한 클라우드 구성 (사용할 .cscfg 파일의 버전을 결정하는 데 사용되는 구성)을 확인한 다음 빌드가 완료된 후 .csdef를 수정하고 패키지하기 전에 파일이 패키징되기 직전 다른 디렉토리에 복사 된 후이 위치에서 변경하려고합니다. 이것은 일찍 일어 났으며 초기 SDK 시절에 나 자신도 그렇게 해 봤지만 까다로울 수 있습니다. 다음은 WebConfigTransformRunner를 사용하여이를 수행하는 예제 인 http://fabriccontroller.net/blog/posts/apply-xdt-transforms-to-your-servicedefinition-csdef-file/을 설명하는 블로그 게시물입니다. 나는 이것이 불투명하기 때문에 이것이 최선의 선택이라고 생각하지 않습니다. 무슨 일이 일어나고 있는지, 그리고 코드를 유지하기 위해 뒤따라 오는 누군가가이 작은 보석에 대해 알지 못할 것이며 영원히 그들이 csdef에 넣은 어떤 가치가 어딘가에 게시 된 후 어떻게 덮어 쓰여지는지 알아 내려고 노력할 것입니다 다른 환경.

2) 언급 한 Azure 프로젝트 접근 방식을 사용하십시오. 당신이 빌드하고 게시 할 Azure 프로젝트를 결정하는 빌드 정의 도구에서 빌드 정의를 설정할 수 있습니다. 개인적으로 이것은 다른 .csdef 파일을 다루는 가장 좋은 방법이라고 생각합니다. 그것은 곧장 앞으로 csproj 파일을 수정하지 않아도됩니다. 나는 csproj 파일을 변경하는 것에 반대하지 않았습니다. 지나치게 명백한 것은 아닙니다. 그런 일을 계승 한 사람으로 말하면, 사람들이 그런 종류의 일을 할 때 쉽게 알 수 없으며, 말할 것도 없습니다 너 그것에 대해.

+0

나는 여기서 파티에 늦었다는 것을 알고 있지만 하늘색 구름 서비스에 UAT라는 개념이 없다고 말하는가? 우리는 제품 주인이 모든 것을 확인하지 않고 찌르다가 직진 할 것을 기대합니다! 그게 우스꽝스럽지, 그렇지? – simonlchilds

+0

아니, 나는 전혀 말하고 있지 않다. 사실, 나는 여러 가지 환경과 테스트를하지 않는 것이 좋지 않을 것이라는 점에 동의합니다. 약간의 작업없이 csdef 파일을 사용하면 문제가 생겨서 다중 환경을 만들기 위해 추가 단계를 수행해야합니다. 하지만 csdef에있는 것은 환경마다 수식어가 될 필요조차 없습니다. 대부분의 연결 문자열은 csconfig에 있습니다. 머신 크기는 csdef에 있는데, 필자가 보았을 때 가장 많이보아야 할 공통점은 다르다. – MikeWo

+0

그래, 알았다. 하늘색 팀인 imho가 실제로 제공 할 수있는 무언가를 성취하기 위해 열심히 노력합니다. – simonlchilds

관련 문제