0

Azure 서비스 버스 대기열 트리거 기능이 있고 생성했을 때 3 개의 필드, 액세스 권한, 연결 및 대기열 이름을 묻습니다.경고 게시 Azure 서비스 버스 대기열 트리거가 local.settings.json에서 명명 된 값을 찾을 수 없습니다.

나는 액세스 권한에 귀를 기울였다. 연결을 위해 내가 만든 서비스 버스의 'RootManageSharedAccessKey'에 제공된 '기본 연결'이름을 사용했습니다. 그것은이

엔드 포인트 = SB 같은 같습니다; SharedAccessKeyName = RootManageSharedAccessKey; //yogaband2017.servicebus.windows.net/ SharedAccessKey = JG0gwJ90bkbGl1BU =

를하고 내 서비스 버스에서 큐를 생성 yogaband라고 불리우며 세 번째 매개 변수로 큐 이름에 사용한 이름입니다. 나는이 경고를

.nuget의 \ 패키지를 얻을 기능을 게시 할 때

내 기능이

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

처럼 보인다 \ microsoft.net.sdk.functions \ 1.0.2 \ 빌드 \ netstandard1.0 \ Microsoft.NET.Sdk.Functions.Build.targets (31,5) : 경고 : 함수 [PostEventEmails] : 'Endpoint = sb : //yogaband2017.servicebus.windows.net/; 값을 찾을 수 없습니다. SharedAccessKeyName = 'serviceBusTrigger'에 설정된 'connection'속성과 일치하는 local.settings.json의 [RootManageSharedAccessKey; SharedAccessKey = 0bkbGl1BU = '[C : \ Users \ Sourc 전자 \ 작업 공간 \ YogaBand2017 \ YogaBand2017 \ PostEventEmails] PostEventEmails.csproj \

및 내 사이트에 내가 메시지 큐를 전달할 수 있으며, 내 푸른 포털 큐에서 메시지를 볼 수 있지만, 함수가 아니다 메시지를 집어 내고 처리하는 것. 따라서 대기열의 활성 메시지 수에는 여전히 '1 메시지'가 표시됩니다. 함수가 그것을 집어 들고 처리 한 후 창에 로그 추적이 표시되면 0이라고 가정합니다. 하지만 나는 연결이 올바르지 않다고 생각하지 않거나 올바르게 구성하지 않았지만 무엇을 모르겠습니다! 여기에 내가 C#을

var queueClient = QueueClient.Create("yogaband2017"); 
      BrokeredMessage message = new BrokeredMessage("some test message"); 
      message.MessageId = newEvent.YogaSpaceEventId.ToString(); 

      queueClient.Send(message); 

에 내 웹의 큐에 메세지를 지정하지 않고를 전송하는 방법입니다 - 여기

내가 참고 local.settings.json 파일

{ 
"IsEncrypted": false, 
"Values": { 
"AzureWebJobsStorage": "Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=bGl1BU=", 
"AzureWebJobsDashboard": ""}} 

에 넣어 것입니다. 설정 파일 나는 ServiceBusTrigger

<add key="Microsoft.ServiceBus.ConnectionString" value="Endpoint=sb://yogaband2017.servicebus.windows.net/;SharedAccessKeyName=RootManageSharedAccessKey;SharedAccessKey=0gwJ90bkbGl1BU="/> 
+0

솔직히 인터넷에는 많은 예제가 있고 이에 관한 비슷한 질문이 있습니다. 네가 그들을 찾으려고 한 것 같지 않아. – Mikhail

답변

2

Connection 속성이 설정 남으로 설정해야합니다 추가 전자,하지 연결 문자열 자체 :

[ServiceBusTrigger("yogaband2017", AccessRights.Listen, Connection = "MyConn")] 

당신은 다음 로컬 개발 환경 local.settings.json이 이름의 설정을 정의

{ 
    "IsEncrypted": false, 
    "Values": { 
    "AzureWebJobsStorage": "... azure storage connection string ...", 
    "MyConn": "... service bus connection string ..." 
    } 
} 

과 푸른 배포 앱 설정에서

.

AzureWebJobsStorage은 서비스 버스 연결이 아닙니다.