2017-11-09 6 views
0

DocumentDB 출력 바인딩을 사용하여 Azure 함수를 CosmosDB 컬렉션과 연결하려고합니다.Azure 함수를 CosmosDB에 바인딩하는 중 오류가 발생했습니다.

내 기능 :

mscorlib: Exception while executing function: HttpTriggerSave. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'outputDoc'. Microsoft.Azure.Documents.Client: Value cannot be null. 
Parameter name: authKeyOrResourceToken. 

가 어떻게 그 문제를 해결할 수 :
{ 
"IsEncrypted": false, 
"Values": { 
    "AzureWebJobsStorage": "", 
    "AzureWebJobsDashboard": "", 
    "AzureWebJobsServiceBus": "Endpoint=sb://<namespace>/;SharedAccessKeyName=<keyname>;SharedAccessKey=<key>", 
    "AzureWebJobsDocumentDBConnectionString": "mongodb://..." 
    } 
} 

그러나 나는 때마다 같은 오류가

public static class HttpTriggerSave 
{ 
    [FunctionName("HttpTriggerSave")] 
    public static void Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)] HttpRequestMessage req, [DocumentDB("dbName", "collectionName", Id = "id")] dynamic outputDoc, TraceWriter log) 
    { 
     outputDoc = new 
     { 
      Text = "text", 
      id = Guid.NewGuid() 
     }; 
    } 
} 

내 local.settings.json?

+1

것 같습니다. 아직 Azure 기능을 지원하는지 모르겠습니다. –

+0

아래와 같이 속성을 변경해야 할 수도 있습니다. 새 문서가 추가 될 때 샘플을 판독한다 [FUNCTIONNAME ("FUNCTIONNAME")] publicstaticasync 태스크 실행 ( [CosmosDBTrigger ("DBNAME", "수집"ConnectionStringSetting = "코스모스")] IReadOnlyList 변경 목록, TraceWriter 로그) 물론 당신은이 NuGet 패키지가 필요합니다 아래 링크에서 Microsoft.Azure.WebJobs.Extensions.DocumentDB 더 많은 업데이트를 https://docs.microsoft.com/en-us/azure/azure- function/functions-create-cosmos-db-triggered-function – Baskar

+0

Cosmos MongoDB와의 통합이 불가능한 [Azure 기능] 중복 가능성 있음 (https://stackoverflow.com/q/46145356/5641598) –

답변

0

mscorlib: Exception while executing function: HttpTriggerSave. Microsoft.Azure.WebJobs.Host: Exception binding parameter 'outputDoc'. Microsoft.Azure.Documents.Client: Value cannot be null. Parameter name: authKeyOrResourceToken.

예외에 따르면 예외가 발견되면 Documentdb에 액세스 할 수 없음을 나타냅니다. local.settings.json에 따르면 MongoDb 연결 문자열을 사용합니다.

그래서 documentdb 연결 문자열을 사용하십시오.

AccountEndpoint=https://{documentDbName}.documents.azure.com:443/;AccountKey=xxxxx; 

또한 내 측면에서 데모를 수행하면 올바르게 작동합니다. 당신이 몽고의 연결 문자열을 사용하는 것처럼

[FunctionName("HttpTriggerSave")] 
public static void Run([HttpTrigger(AuthorizationLevel.Function, "get", "post", Route = null)]HttpRequestMessage req,[DocumentDB("tomdb", "collectionId")] out dynamic outputDoc, TraceWriter log) 
{ 
    outputDoc = new 
    { 
      Text = "text", 
      Id= Guid.NewGuid() 
    }; 
    } 

enter image description here

+0

고마워, 작동한다. –

관련 문제