簡體   English   中英

如何從NodeJS中的單個azure函數向azure服務總線和事件發送消息到事件集線器總線?

[英]How to send a message to azure service bus & event to event hub bus from single azure functions in NodeJS?

我有一個azure函數,它根據http post發送請求並獲得響應; 現在我想將此響應發送到服務總線和另一個事件中心(天藍色功能由不同的事件中心觸發)。

函數表示它已在事件中心的情況下成功執行,但沒有發送任何事件。 在服務總線的情況下,我收到此錯誤NamespaceConnectionString should not contain EntityPath.

module.exports = async function (context, eventHubMessages) {
    context.log(`JavaScript eventhub trigger function called for message array ${eventHubMessages}`);

    var completeData = '';

    eventHubMessages.forEach((message, index) => {
        context.log(`Processed message ${message}`);
        completeData = message;
    });

    var output = '';

    const axios = require('axios');

    try {
        const response =  await axios.post('http://fake-endpoint', 
        {  data-json : completeData
        })
        context.log(`statusCode: ${response.statusCode}`);
        context.log(response.data);
        output += response.data;

        var time = new Date().toString(); 
        context.log('Event Hub message created at: ', time);
        context.bindings.outputEventHubMessage = out;
        context.bindings.outputSbMsg = out;
        context.done()
        return response.data; // or return a custom object using properties from response
    } catch (error) {
        // If the promise rejects, an error will be thrown and caught here
        context.done(error);
    }

};

預期產出:成功執行; 服務總線和事件中心可用於接收的數據。 實際輸出: Error: NamespaceConnectionString should not contain EntityPath.

如錯誤消息所示,您需要查看連接字符串並刪除EntityPath變量。 如果在查看特定主題或隊列時復制連接字符串而不是從主Service Bus刀片中復制連接字符串, 則會包含此選項

端點= SB:// {servicebus名} .servicebus.windows.net /; SharedAccessKeyName =測試隊列的發送者; SharedAccessKey = {SharedAccessKey} =; EntityPath = test-queue ;

VS

端點= SB:// {servicebus名} .servicebus.windows.net /; SharedAccessKeyName =測試隊列的發送者; SharedAccessKey = {SharedAccessKey};

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM