App Service에서 트래픽 라우팅

완료됨

기본적으로 앱의 프로덕션 URL에 대한 모든 클라이언트 요청(http://<app_name>.azurewebsites.net)은 프로덕션 슬롯으로 라우팅됩니다. 트래픽의 일부를 다른 슬롯으로 라우팅할 수 있습니다. 이 기능은 새 업데이트에 대한 사용자 피드백이 필요하지만 프로덕션 환경으로 릴리스할 준비가 되지 않은 경우에 유용합니다.

자동으로 프로덕션 트래픽 라우팅

자동으로 프로덕션 트래픽을 라우팅하려면 다음을 수행합니다.

  1. 앱의 리소스 페이지로 이동한 후 배포 슬롯을 선택합니다.

  2. 라우팅하려는 슬롯의 트래픽 % 열에서 라우팅할 트래픽의 총량을 나타내는 백분율(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으로 설정되어 있으므로 자동으로 슬롯에 라우팅되지 않습니다. 이는 내부 팀이 슬롯에 대한 변경 내용을 테스트할 수 있도록 하면서 일반인에게 스테이징 슬롯을 "숨길" 수 있는 고급 시나리오입니다.