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)。 –