티스토리 뷰

아래는 테스트한 샘플 코드이다.

        [FunctionName("Function2")]
        public static async Task<HttpResponseMessage> Run([HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)]HttpRequestMessage req, TraceWriter log)
        {
            return req.CreateResponse(HttpStatusCode.OK, "Hello world2");
        }

간단한, 별 문제 없는 코드인데, 이슈가 발생한다. (404 에러)

Azure 대시보드에서 콘솔에 뜬 로그를 보면

"The request does not have an associated configuration object or the provided configuration was null."

라고 나온다.

경고문대로 문제를 해결해주자면..

req.Properties[HttpPropertyKeys.HttpConfigurationKey] = new HttpConfiguration();

라는 코드를 앞에 추가하면 별 문제없이 동작한다. 그동안 잘 쓰다가, 왜 뜬금없이 위 코드를 추가해야 동작하는 걸까?

이유는 불명확하지만, Azure Function의 경우, 버전 1과 2로 나눠져 있다. 나는 dotnet core에서 azure storage library를 활용시 이슈가 있어 버전 1을 활용중인데, 여기서 이슈가 발생한 것 같다. 그래서 Application settings에 있는 FUNCTIONS_EXTENSION_VERSION 값을 ~2 -> ~1로 수정했다.

위와 같이 수정하면, 코드 추가없이 잘 동작한다. 버전1과 버전2의 호환성 이슈가 아닐까 싶다.