App Service에서 트래픽 라우팅
기본적으로 앱의 프로덕션 URL에 대한 모든 클라이언트 요청(http://<app_name>.azurewebsites.net
)은 프로덕션 슬롯으로 라우팅됩니다. 트래픽의 일부를 다른 슬롯으로 라우팅할 수 있습니다. 이 기능은 새 업데이트에 대한 사용자 피드백이 필요하지만 프로덕션 환경으로 릴리스할 준비가 되지 않은 경우에 유용합니다.
자동으로 프로덕션 트래픽 라우팅
자동으로 프로덕션 트래픽을 라우팅하려면 다음을 수행합니다.
앱의 리소스 페이지로 이동한 후 배포 슬롯을 선택합니다.
라우팅하려는 슬롯의 트래픽 % 열에서 라우팅할 트래픽의 총량을 나타내는 백분율(0~100)을 지정합니다. 저장을 선택합니다.
설정이 저장되면 지정된 클라이언트 비율이 비프로덕션 슬롯에 임의로 라우팅됩니다.
클라이언트가 특정 슬롯에 자동으로 라우팅되면 해당 슬롯에 클라이언트 세션의 수명 동안 "고정"됩니다. 클라이언트 브라우저에서 HTTP 헤더의 x-ms-routing-name
쿠키를 확인하여 세션이 고정된 슬롯을 볼 수 있습니다. "스테이징" 슬롯에 라우팅되는 요청에는 쿠키 x-ms-routing-name=staging
이 있습니다. 프로덕션 슬롯으로 라우팅되는 요청에는 쿠키 x-ms-routing-name=self
가 있습니다.
수동으로 프로덕션 트래픽 라우팅
자동 트래픽 라우팅 외에도 App Service는 특정 슬롯에 요청을 라우팅할 수 있습니다. 사용자가 베타 앱에 옵트인 또는 옵트아웃할 경우 유용합니다. 수동으로 프로덕션 트래픽을 라우팅하려면 x-ms-routing-name
쿼리 매개 변수를 사용합니다.
예를 들어 사용자가 베타 앱을 옵트아웃하도록 하려면 웹 페이지에 이 링크를 둘 수 있습니다.
<a href="<webappname>.azurewebsites.net/?x-ms-routing-name=self">Go back to production app</a>
문자열 x-ms-routing-name=self
는 프로덕션 슬롯을 지정합니다. 클라이언트 브라우저는 링크에 액세스한 후 프로덕션 슬롯으로 리디렉션됩니다. 모든 후속 요청에는 프로덕션 슬롯에 세션을 고정하는 x-ms-routing-name=self
쿠키가 있습니다.
사용자가 베타 앱에 참여하게 하려면 비프로덕션 슬롯의 이름에 동일한 쿼리 매개 변수를 설정합니다. 예를 들면 다음과 같습니다.
<webappname>.azurewebsites.net/?x-ms-routing-name=staging
기본적으로 새 슬롯에는 0%
의 라우팅 규칙이 지정됩니다. 기본값은 회색으로 표시됩니다. 명시적으로 회람 규칙 값을 0%
로 설정하면 검은색으로 표시되고, 사용자들은 x-ms-routing-name
쿼리 매개 변수를 사용하여 수동으로 스테이징 슬롯에 액세스할 수 있습니다. 그러나 라우팅 백분율이 0으로 설정되어 있으므로 자동으로 슬롯에 라우팅되지 않습니다. 이는 내부 팀이 슬롯에 대한 변경 내용을 테스트할 수 있도록 하면서 일반인에게 스테이징 슬롯을 "숨길" 수 있는 고급 시나리오입니다.