1

Azure 함수를 로컬로 개발하여 Azure 클라우드에 푸시 했으므로 eventhub-trigger 함수가 있습니다. 일반적으로 VScode를 통해 코드를 로컬 디버깅하는 데 사용되었지만 이제는 func host start --debuge을 실행할 때, 내 응용 프로그램의 기능은 시작되었지만 아무 것도 트리거되지 않고 로그를 통해 클라우드에서 트리거 된 것을 볼 수 있습니다. 내게 화를 내고, 왜 로컬로 트리거되지 않으며, 활성화되어 있고, 여러 번 내 함수 앱을 다시 시작했지만 아무 것도 얻지 못했습니다. . 내 앱은 https://butterflyfnapp.azurewebsites.netAzure 함수가 로컬로 트리거되지 않았습니다.

+0

이 같은 물방울 저장을 로컬로 사용하십니까과 Azure에서? 서로 경쟁하고 있습니까? – Mikhail

+0

테이블 저장소를 사용하고 있습니다. 동일한 코드가 클라우드와 로컬에 모두 있습니다. 코드를 로컬에서 개발/추가해야합니다. 클라우드로 푸시 할 때 클라우드를 삭제해야한다고 생각합니까? 코드를 먼저 읽거나 무엇을해야합니까? – Ayman

답변

2

Mikhail 이외에 다른 옵션은 클라우드 및 개발/VS와 같은 각 환경에 대한 이벤트 허브의 개별 소비자 그룹을 만들고 응용 프로그램 설정 또는 local.settings.json에서 구성하는 것입니다. 그런 다음 ConsumerGroup = "% consumergroup %"을 함수의 EventHubTrigger 인수에 추가하십시오. 여기서 consumergroup은 설정에서 변수 이름의 예입니다.

위 옵션 외에도 Http POST 요청을 사용하여 로컬로 비 Http 트리거 기능을 테스트 할 수 있습니다. 즉, 귀하의 기능은 포털에서와 같은 방식으로 로컬에서 테스트 할 수 있습니다. 더 자세한 내용 here.

는 다음 테스트 EventHubTrigger의 예입니다 HTTP를 POST 요청을 사용하여 기능 :

URL : http://localhost:7071/admin/functions/MyFunction

페이로드 :

{ 
    "input": '{"Id":1234,"Name":"abcd"}' 
} 
2

이벤트 허브 소비자 정보 (체크 포인트)는 Blob 저장소에 저장됩니다. 개발/프로덕션 환경간에 BLOB 저장소에 연결 문자열을 공유하면 동일한 검사 점을 사용하므로 서로 경쟁하게됩니다.

내 생각에 클라우드 배포에서는 항상 이벤트를 처리하고 검사 점을 최신 위치로 업데이트 한 다음 로컬 배포에서이 검사 점을 취하여 아무 것도하지 않습니다.

이 문제가 발생하지 않도록하려면 추가 "Blob"저장소를 만들고 해당 저장소에 로컬 연결 문자열 설정을 지정하십시오.