(2021-05-09 기준. Azure는 메뉴같은게 익숙해지려고하면 조금씩 바껴있어서 불편하다.)
[문제]
서버시간으로 데이터를 넣어주는 부분이 많은데 기존 환경을 Azure App Servie로 옮기고 이 부분에서 문제가 생겼다.
다른 시간대를 받아오니까 시간이 기대한 값으로 들어가지않았다.
[원인]
Azure App Service를 사용하는데 서버 시간대가 UTC 기준으로 되어있다는 것을 알게되었다.
[해결방법]
Application Setting을 추가해서 해결했다. (Settings - Configuration - Application Setting)
App Service 환경이 Windows면 WEBSITE_TIME_ZONE을 넣고
App Service 환경이 Linux면 TZ를 넣어서 설정할 수 있다.
(참고사이트 : sajeetharan.com/2019/11/12/how-to-set-timezone-in-azure-app-service/)
나는 Linux 환경에서 App이 돌아가기때문에 TZ를 넣어 설정해주었다.
Linux 환경이고 Time Zone을 한국으로 설정하고 싶다면 name에 TZ value에 Asia/Seoul 을 넣어주면 된다.
(환경에 따라 구분되어야하는지 모르고 WEBSITE_TIME_ZONE을 넣어서도 시도해봤는데
WEBSITE_TIME_ZONE은 Korea Standard Time을 value에 넣으면 된다.)
** 다른 시간대가 필요하다면 맨아래에 기재한 사이트 참고
1. Settings - Configuration - Application Settings 에서 New Application Setting을 누른다.
2. Linux 환경이고 한국 시간대로 설정하고 싶다면 Name에 TZ를 넣고 value에 Asia/Seoul 을 넣는다.
* Deployment slot setting은 체크하면 swap할 때 swap 대상환경에 이 setting값을 가져가서 선택해주었다. 필요없다면 체크하지 않아도 된다.
3. 제대로 들어간것을 확인하고 Save 버튼을 누른다. (Save 버튼 누르는걸 깜박해서 적용안된적이 많다...)
4. Service에 반영됐다면 확인한다.
* 가끔씩 바로 반영이 안될 때가 있는데, 그럴 때는 앱서비스를 재시작하기전에 refresh를 하고 재시작하면 반영된다.
(나는 다른 App Serive는 바로 반영됐는데 관리중인 한 App Service가 반영까지 시간이 오래 걸려서 새로고침도 많이하고 많이 껐다켰는데 시간지나니까 반영되어있었다.)
** 다른시간대 value 참고 사이트
TZ (Linux) - en.wikipedia.org/wiki/List_of_tz_database_time_zones
WEBSITE_TIME_ZONE (Windows) - docs.microsoft.com/en-us/previous-versions/windows/embedded/ms912391(v=winembedded.11)
[참고]
- 여러가지 방법을 시도해보다가 Application Setting에 WEBSITE_TIME_ZONE을 넣었는데 다른 Setting값들은 잘 지워지는데 이 값만 지워지지도않고 수정도 안되는 현상이 있었다. (2021-05-07 기준)
<위 현상에 대한 해결법 링크>
[Azure App Service] WEBSITE_TIME_ZONE 설정이 지워지지않을때 해결방법 (Application Setting이 지워지지않을때 해결방법)