0

我已經下載了VS2017社區版來嘗試Azure功能,我無法讓它工作。我已經在Stackoverflow和Azure函數Github頁面上搜索了很多帖子,但沒有看到任何關於任何東西的完整文檔。Azure函數不能正常工作VS2017

這是我有:

Azure的功能:

namespace FunctionApp1 
{ 
    public static class Function1 
    { 
     [FunctionName("Function1")] 
     public static void Run([ServiceBusTrigger("ngctestqueue", AccessRights.Manage, Connection = "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY")]string myQueueItem, TraceWriter log) 
     { 
      log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}"); 
     } 
    } 
} 

host.json

{ 
    "disabled": false, 
    "bindings": [ 
    { 
     "name": "myQueueItem", 
     "type": "serviceBusTrigger", 
     "direction": "in", 
     "queueName": "ngctestqueue", 
     "connection": "connection", 
     "accessRights": "manage" 
    } 
    ] 
} 

local.settings.json

{ 
    "IsEncrypted": false, 
    "Values": { 
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=https;AccountName=ngctest2;AccountKey=STORAGE_ACCOUNT_KEY;EndpointSuffix=core.windows.net", 
    "AzureWebJobsDashboard": "DefaultEndpointsProtocol=https;AccountName=ngctest2;AccountKey=STORAGE_ACCOUNT_KEY;EndpointSuffix=core.windows.net", 
    "AzureWebJobsServiceBus": "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY", 
    "connection": "Endpoint=sb://ngcservicebus.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY" 
    } 
} 

當我在本地運行通過F5的功能,我得到以下錯誤:

Microsoft.Azure.WebJobs.Host: Error indexing method 'Func 
tion1.Run'. Microsoft.Azure.WebJobs.ServiceBus: Microsoft Azure WebJobs SDK Serv 
iceBus connection string 'AzureWebJobsEndpoint=sb://ngcservicebus.servicebus.win 
dows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=SERVICE_BUS_KEY' is missing or empty. 

我的開發環境如下:

1)的Windows 8.1專業版

2)VS2017社區15.3.5

3)Azure功能離子CLI 1.0.4

任何幫助真的不勝感激。

謝謝。

回答

1

Connection屬性應該設置爲連接字符串名稱,而不是值本身。該值將從配置中讀取。

[ServiceBusTrigger("ngctestqueue", AccessRights.Manage, Connection = "AzureWebJobsServiceBus")] 

你並不需要創建本地環境host.json(這將是自動生成的SDK)。

+0

好的,這使得錯誤消失:)但功能不觸發。隊列中有幾條消息,我也只是添加了一條消息,但在控制檯中沒有輸出。有任何想法嗎? – CloudDev