0

나는 Azure에서 시스템을 작성하려고하는데, 그 중 일부는 대기열에 많은 코드를 쓰고 하나의 코드를 작성할 수 있기를 원합니다. 처리 코드 비트는 큐의 각 항목을 처리합니다.Azure Queue 트리거가 null 큐 항목을 잘못 제공 함

항목이 큐에 올바르게 추가됩니다. 나는 이것을 검사했다. Azure 플러그인이있는 Visual Studio가 있습니다. 그런 다음 Cloud Explorer를 사용하여 저장소 계정을 끌어 대기열을 볼 수 있습니다. 여기에서 큐 내용은 정확할 것입니다. 메시지 텍스트 미리보기가 예상대로 나타납니다.

그러나 트리거를 실행하는 동안 대기열 트리거가있는 Azure 함수를 추가하면 대기열 항목이 비어있게됩니다. 튜토리얼 코드를 시도해 보았습니다. 조금 줄였습니다. 내가 실행 기능을 설정하면 될 : 나는 그것이 아니라는 것을 알고 때 다음 큐 항목과 출력을 얻을

public static void Run(string myQueueItem, 
    DateTimeOffset expirationTime, 
    DateTimeOffset insertionTime, 
    DateTimeOffset nextVisibleTime, 
    string queueTrigger,   
    TraceWriter log) 
{ 
    log.Info($"C# Queue trigger function processed:  '{myQueueItem.GetType()}'\n" + 
     $"queueTrigger={queueTrigger}\n" + 
     $"expirationTime={expirationTime}\n" + 
     $"insertionTime={insertionTime}\n" + 
     $"nextVisibleTime={nextVisibleTime}\n"); 
} 

는 비어 있습니다. 대기열 트리거 요소도 비어 있습니다.

016-11-01T13:47:41.834 C# Queue trigger function processed: 
queueTrigger= 
expirationTime=12/31/9999 11:59:59 PM +00:00 
insertionTime=11/1/2016 1:47:41 PM +00:00 

이 전혀 트리거 및 합리적인 찾고 삽입 시간이 있다는 사실 내가 바로 큐에 연결하고있어 제안 : 나는 푸른 함수에서 함수를 직접 실행할 때 몇 가지 샘플 출력이다.

누구든지 왜 문자열 myQueueItem가 비어있는 지 알 수 있습니까? 대기열 엿보기 도구가 전체 미리보기 문자열을 볼 수 있습니까?

답변

1

저는 이제이 작업을했습니다. 나는 두 가지를했다.

먼저 '독'대기열을 정리했습니다. 이전에 큐에서 일부 개체를 deserialize하려고했습니다.

그런 다음 대기열을 활성화했습니다. 이전에 비활성화되었습니다. 비활성화 된 큐 트리거를 수동으로 실행하면 가짜 정보를 제공하고 대기열에서 아무 것도 가져 가지 않습니다. 메시지를 대기열에서 제외하지도 않으며 힌트와도 같습니다.

이 시점부터 큐를 추가하면 제대로 처리됩니다.

+0

이것이 좋은 소식입니다. 명확히하기 위해, "수동으로 비활성화 된 대기열을 실행할 때"라고 할 때 무엇을 의미합니까? Azure 함수 포털에서 "실행"옵션을 사용하고 있습니까? –

+0

예, Azure 포털에서 실행 옵션을 사용했지만 함수가 비활성화되었습니다. 큐의 다음 항목을 큐에서 제거하고이를 보내지 만 자동으로 트리거하지 않을 것으로 예상했습니다. 이 일을하는 주된 요점은 dev 테스팅을위한 것이므로 핸들러에 null 데이터를 보내기를 기대하지 않았으며, 당신은 null 입력에 대한 함수를 실제로 테스트 할 수 없습니다. –

관련 문제