मेरे पास एक Azure WebJob है जिसके अंदर एक समान कोड है:

public class Functions
{
    public static void GenerateImagesForViewer(
    [QueueTrigger("resize-images-queue")] BlobInformation blobInfo,
    [Blob("unprocessed-pdf-storage-container/{BlobName}", FileAccess.Read)] Stream input,
    [Blob("unprocessed-pdf-storage-container/{BlobNameWithoutExtention}-pdf.jpg")] CloudBlockBlob outputPdf)
    {            
        //Do something here
        string connectionString = "myConnectionString";
        TopicClient Client = 
        TopicClient.CreateFromConnectionString(connectionString, "resize- 
        images-topic");
        var topicMessage = new BrokeredMessage(blobInfo);
        Client.Send(topicMessage);
    }

    public static void GenerateImagesForViewerW80(
    [ServiceBusTrigger("resize-images-topic", "SizeW80")] BlobInformation blobInfo,
    [Blob("unprocessed-pdf-storage-container/{BlobNameWithoutExtention}-pdf.jpg", FileAccess.Read)] Stream input,
    [Blob("processed-image-storage-container/{BlobNameWithoutExtention}-h0-w80.jpg")] CloudBlockBlob outputBlob_0_80)
    {
      // It never comes here
      //Do something here
    }
}

मेरी कतार में डेटा (BlobInformation ऑब्जेक्ट) अपलोड करने के बाद पहली विधि (GenerateImagesForViewer) को ट्रिगर करने में कोई समस्या नहीं है। लेकिन जब मैं विषय पर डेटा (ब्लॉबइन्फॉर्मेशन ऑब्जेक्ट) भेजने की कोशिश करता हूं तो यह कभी भी किसी भी ग्राहक को ट्रिगर नहीं करता है (जेनरेट इमेजेजफॉरव्यूअरडब्ल्यू 80)। क्या कोड में कुछ गड़बड़ है, या Azure में एक आवश्यक कॉन्फ़िगरेशन है?

1
IvanD 5 नवम्बर 2018, 20:13

1 उत्तर

सबसे बढ़िया उत्तर

Program.cs में, ServiceBus ट्रिगर के उपयोग के लिए config.UseServiceBus(); आवश्यक है। यदि आपके मामले की तरह Functions में अन्य ट्रिगर या बाइंडिंग हैं, तो हमें चेतावनी दिखाई नहीं देगी।

नीचे दिए गए कोड का नमूना देखें और अधिक के लिए आधिकारिक मार्गदर्शन देखें। विवरण।

        var config = new JobHostConfiguration();

        if (config.IsDevelopment)
        {
            config.UseDevelopmentSettings();
        }
        config.UseServiceBus();
        var host = new JobHost(config);
        host.RunAndBlock();

इसके अलावा, मुझे आपके इनपुट और आउटपुट ब्लॉब पथ में कुछ संदिग्ध रिक्त स्थान दिखाई देता है। यदि यह आपके मूल कोड जैसा ही है, तो बस उन्हें हटा दें अन्यथा ट्रिगर ब्लॉब ऑपरेशन से संबंधित कोड को सही ढंग से निष्पादित नहीं करेगा।

1
Jerry Liu 6 नवम्बर 2018, 07:26