데이터 용 API를 참조하는 각도 응용 프로그램이 있습니다. Build and Release 파이프 라인과 Azure App Service에 대해 Visual Studio Team Services (TFS 온라인)를 사용하여 호스팅하고 있습니다.하늘색 배포 슬롯을 기반으로 각도 구성을 변경하십시오.
응용 프로그램이 파이프 라인에있는 환경 (Dev -> Stage -> Prod)에 따라 응용 프로그램은 해당 데이터에 대해 다른 API를 사용해야합니다. 예를 들어 Dev 환경에있는 경우 http://someapi-dev.azurewebsites.net을 참조하고 스테이지에있는 경우 http://someapi-stage.azurewebsites.net을 참조해야합니다.
Dev 환경은 자체 Azure App Service입니다. Stage 및 Prod 환경은 동일한 Azure App Service의 배포 슬롯입니다. Stage에서 Prod로 릴리스하면 간단한 슬롯 스왑 작업입니다.
문제는 모든 환경에서 동일한 각도 구성을 수행 할 수 없다는 것입니다. 사용하려는 적절한 API를 반영하도록 설정을 변경해야합니다.
어떻게 동적으로 만들 수 있습니까? Dev에 배포 할 때 명령 줄 단계를 사용하여 구성 파일을 덮어 쓸 수 있습니다 (예 : "move/Y config.dev.json config.json"). 그러나 Stage에서 Prod로 슬롯을 바꿀 때 어떻게 비슷한 작업을 수행합니까? 여기
내가 app.component.ts에서 런타임에 적절한 API URL을로드하고있어 방법은 다음과 같습니다
ngOnInit() {
this.http.get('assets/environments/config.json')
.map(res => res.json())
.toPromise()
.then((config) => {
this.apiSvc.baseUrl = config.urlToApi;
this.isConfigReady = true;
});
그래서 명확하게하기 위해, 당신의 API 엔드 포인트는 JSON 구성 파일에 지정되어있는 현재의 환경을 얻을 수 있습니다 이것에 기반을 희망 환경의 콘텐츠를 무엇입니까? 또한 ASP.NET MVC + Angular를 사용하고 있습니까? –
@RobReagan - 예, API 엔드 포인트는 JSON 구성 파일에 지정됩니다. 나는 그것을 반영하기 위해 질문을 편집했다. 예,이 프로젝트는 ASP.NET MVC + Angular를 사용하고 있습니다. – aobrientrin