Azure的功能DocumentClient绑定
问题描述:
我想我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与新的更新包绑定整个文件。
答
根据你的描述,我检查这个问题,如下转载此问题:
请告诉我怎样才能得到我的DocumentClient与新的更新包绑定整个文件。
根据你的情况,我建议你自己构建DocumentClient
,而不是使用结合DocumentClient
的解决方法,达到你的目的的。
DocumentClient client = new DocumentClient(new Uri("https://<your-account-name>.documents.azure.com:443/"), "<your-account-key>");
而且你可以配置在你local.settings.json
文件serviceEndpoint
和accountKey
就像应用程序设置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());
}
}
喜布鲁斯,当蔚蓝的功能可以让我们的documentclient直接绑定所以不希望明确创建documentclient对象。在documentDB的1.13版本中,它可以正常工作,但是在1.18版本中,它的失败在于要求我使用设置中配置的id绑定单个文档。我的要求是绑定没有Id的documentclient。 – Dinesh
我更新了一些研究的答案,你可以参考它。此外,我认为有一个错误,你可以添加你的问题[这里](https://github.com/Azure/azure-webjobs-sdk-extensions/issues)。 –