2017-02-10 2 views
0

App 서비스 계획의 Azure 함수 app에 함수가 있습니다.Azure 함수 freezes (?)

제 기능은 파이썬입니다. 여기에는 tweepy 모듈을 사용하여 트위터 API의 데이터를 소비하고 Azure Storage의 파일에 저장하기 전에 결과를 로컬 임시 파일에 쓰는 루프가 있습니다 (AppenedBlobService를 사용합니다).

문제

문제는 때로는 동결 내 함수이다 (?). 요청을하고, 결과를 얻고, 결과를 저장 한 다음 언제든지 멈출 수 있습니다. 그것은 멈추지 않습니다, 내가 모니터 패널을 볼 때, 여전히 실행 중입니다 (파란색 점 3 개). 그것을 막을 수있는 유일한 방법은 인스턴스를 다시 시작해야한다는 것입니다 (그리고 잠시 후에 파란색 점은 주황색 느낌표가됩니다). 오류를 표시하지 않으며 결과를 생성하지도 않습니다. 그것은 아무 예외도 일어나지 않으며, 마침내 블록이 실행되지 않는다. 새로운 라인을 실행하지 않고, 멈추지 않고, 아무것도없는 것처럼 느껴진다.

완전히 당황한 것은 이것이 실행 중 다른 단계에서 발생한다는 것입니다. 때로는 결과가 저장 될 때 가끔 BlockBlobService를 통해 저장 됨)에서 BLOB 존재를 확인할 때 API를 호출 할 때 (즉, 해당 메소드가 반환하지 않는 것처럼 보입니다.) 발생합니다.

가정

내 가정은 API에 문제가있는 것이 었습니다. 그러나 로컬에서 테스트했을 때 API에는 문제가 없습니다. 나는 Azure 함수에서 3-5 요청 후에 동결하는 동안 문제없이 연속적인 요청을 많이 할 수 있습니다. (또한 속도가 훨씬 느립니다.) 또 다른 가능성은 파일을 저장소에 저장하는 것이 잘못되었다는 것입니다.하지만 문제는 결과를 올바르게 저장하는 경우가 있습니다. 저장 한 다음 API 호출로 되돌아 가서 멈추거나 API 호출을 완료하고 저장하지 않거나 다른 걸 막히게됩니다.

모든 것이 로컬 환경에서 완벽하게 작동하므로 여기에서 계속하는 법을 모르겠습니다. 나는 각 단계 사이에 인쇄하여 추적을 시도하고 위에서 언급 한 것처럼 멈춘 곳을 발견했다. 그러나 코드의 덩어리가 잘 작동하기 때문에 왜 멈추는 지 아직 알지 못한다.

문제의 원인에 대한 제안 또는 어떻게 디버깅해야합니까? 감사!

답변

3

EDIT는 :

이 때문에 응용 서비스/기능 (2.7.8) 및 urllib3 모듈이 사용 파이썬 버전 문제이다 here 참조. 웹 응용 프로그램이 파이썬 버전을 업데이트 할 때까지 응용 프로그램을 크래시하는 오류는 무시하거나 기록 할 수 있습니다.

당신은 기능에 파이썬의 사용자 지정 버전을 가져올 수 : https://github.com/Azure/azure-webjobs-sdk-script/wiki/Using-a-custom-version-of-Python


그것은 API를 사용하여 동시성 문제가 가능성이 있습니다. 가능하면 모든 로직을 입/출력 바인딩으로 이동하십시오. 또한 동시성을 제한하려고 시도 할 수도 있습니다. 저장소 큐 트리거를 사용하고 host.json에서 batchSize를 1 (동시성 없음)으로 설정하십시오.

로그를 보면 tweepy 라이브러리에서 오는 기능에 약간의 오류가 있습니다.

Here은 로그에 액세스하는 방법에 대한 기사이거나 <sitename>.scm.azurewebsites.net/debugConsole ->LogFiles/Application/Functions을 직접 볼 수 있습니다. host.json을 통해 로깅 동작을 변경할 수도 있습니다.

+0

대기열에 항상 항목이 하나만 있습니다. 당신이 내 기능을 들여다 볼 수 있다면 좋을 것입니다. 사이트 : http://data-analysis.azurewebsites.net/ 함수 이름이 _search로 끝납니다 – Mind

+0

LogFiles/Applicaton/Functions의 로그를 이미 보았습니다. 함수 포털에서보다 더 많은 정보를 가지고 있지 않습니다. 어떤 단계에서 무엇이든 인쇄). Kudu에서 이러한 호출 로그는 모니터 분할 창에 표시된 것과 동일합니다. 함수가 멈 추면 상태는 "끝나지 않습니다"이므로 바인딩 매개 변수 값 및 컨텍스트 이외의 정보는 없습니다. 저기 저 놈들의 오류 로그를 어디서 찾을 수 있을지 직접 알려 줄 수 있니? – Mind