0

我想我DocumentDB NuGet包升级,从1.13到1.18Azure的功能DocumentClient绑定

我面临的问题,同时升级它具有DocumentClient结合我蔚蓝功能。

在DocumentDB 1.13的结合部不采取:{ID}作为结合参数和被完全创建DocumentClient对象。而DocumentDB 1.18需求{ID}作为结合参数[我不想,因为我想通过收集在整个文件遍历]

我host.json 1.18之前结合是

{ 
"frameworks": { 
"net46": { 
"dependencies": { 
"Dynamitey": "1.0.2", 
"Microsoft.Azure.DocumentDB": "1.13.0", 
"Microsoft.Azure.WebJobs.Extensions.DocumentDB": "1.0.0" 
} 
} 
} 

我local.settings.json只有

{ 
"IsEncrypted": false, 
"Values": { 
"AzureWebJobsStorage": " 
DefaultEndpointsProtocol=xxxxx/xxxxx==;EndpointSuffix=core.windows.net", 
"AzureWebJobsDashboard": "", 
"AzureWebJobsDocumentDBConnectionString": 
"AccountEndpoint=xxxxx/;AccountKey=xxxx==;", 
} 
} 

和我的蔚蓝的功能看起来像

[FunctionName("DeleteAVFeedAuditData")] 
    public static async Task Run([TimerTrigger("0 0/1 * * * *")]TimerInfo myTimer, [DocumentDB]DocumentClient client, 
    TraceWriter log) 
{ 

    var c = client; 
    log.Info($"C# Timer trigger function executed at: {DateTime.Now}"); 
    var value=ConfigurationManager.AppSettings["AVAuditFlushAfterDays"]; 

    var collectionUri = UriFactory.CreateDocumentCollectionUri("AVFeedAudit", "AuditRecords"); 
    //var documents = client.CreateDocumentQuery(collectionUri,"Select * from c where c.EndedAt"); 

    //foreach (Document d in documents) 
    //{ 
    // await client.DeleteDocumentAsync(d.SelfLink); 
    //} 

} 

}

现在有了更新包documentDB 1.18的运行蔚蓝的功能时,它说,绑定{ID}这将给只能与指定标识的单个文档。而我的需求与之前版本的DocumentDB 1.13相同。

请告诉我怎样才能得到我的DocumentClient与新的更新包绑定整个文件。

回答

0

根据你的描述,我检查这个问题,如下转载此问题:

enter image description here

请告诉我怎样才能得到我的DocumentClient与新的更新包绑定整个文件。

根据你的情况,我建议你自己构建DocumentClient,而不是使用结合DocumentClient的解决方法,达到你的目的的。

DocumentClient client = new DocumentClient(new Uri("https://<your-account-name>.documents.azure.com:443/"), "<your-account-key>"); 

而且你可以配置在你local.settings.json文件serviceEndpointaccountKey就像应用程序设置AzureWebJobsStorage。然后,你可以使用下面的代码检索您的设定值:

ConfigurationManager.AppSettings["your-appsetting-key"]; 

而且,这里是一个issue关于从连接字符串构建DocumentClient,你可以参考一下吧。

UPDATE:

对于1。18,下面的代码可以按预期工作:

[FunctionName("Function1")] 
public static void Run([TimerTrigger("*/10 * * * * *")]TimerInfo myTimer, [DocumentDB("brucedb01", "brucecoll01",ConnectionStringSetting = "AzureWebJobsDocumentDBConnectionString")] IEnumerable<dynamic> documents, TraceWriter log) 
{ 
    foreach (JObject doc in documents) 
    { 
     //doc.SelectToken("_self").Value<string>(); 
     log.Info(doc.ToString()); 
    } 
} 

enter image description here

+0

喜布鲁斯,当蔚蓝的功能可以让我们的documentclient直接绑定所以不希望明确创建documentclient对象。在documentDB的1.13版本中,它可以正常工作,但是在1.18版本中,它的失败在于要求我使用设置中配置的id绑定单个文档。我的要求是绑定没有Id的documentclient。 – Dinesh

+0

我更新了一些研究的答案,你可以参考它。此外,我认为有一个错误,你可以添加你的问题[这里](https://github.com/Azure/azure-webjobs-sdk-extensions/issues)。 –