使用Javascript从CosmosDB获取Azure Function查询集合

时间:2018-05-30 15:38:04

标签: javascript azure timer azure-functions azure-cosmosdb

背景

我试着在过去一小时内从CosmosDB中读取我收藏的文件。

我是怎么做到的:

为此,我按照以下步骤操作:

  1. 使用计时器(0 0 * * * *)
  2. 创建新的azure函数 输入部分中的
  3. 我创建了与我的收藏
  4. 的连接
  5. 试图从集合中读取文档,但我总是出错。
  6. 这是我尝试过的代码:

    module.exports = function (context, myTimer) {
        var timeStamp = new Date().toISOString();
        if(myTimer.isPastDue)
        {
            context.log('JavaScript is running late!');
        }
        context.log('JavaScript timer trigger function ran!:', timeStamp);   
        var documents = context.bindings.documents;
        for (var i = 0; i < documents.length; i++) {
            var document = documents[i];
            context.log('First document modified : ', document);
        }       
        context.done();
    };
    

    我收到的错误:

    执行函数时出现异常:Functions.CosTriggerJs。 Microsoft.Azure.Documents.Client:Message:{&#34; errors&#34;:[{&#34; severity&#34;:&#34; Error&#34;,&#34; location&#34;:{ &#34;开始&#34;:19,&#34;端&#34; 20},&#34;代码&#34;:&#34; 581010&#34;&#34;消息&#34 ;: &#34;语法错误,无效令牌&#39 ;;&#39;。&#34;}]}

    我的问题是:

    因为我在互联网上找不到有关此问题的任何文档,任何人都可以提供文档或回答我如何使用计时器编写函数并阅读CosmosDB集合。

1 个答案:

答案 0 :(得分:0)

我找到了错误的解决方案。

当我在Azure门户中添加CosmosDB输入

时,我犯了一个错误

错误是: 在SQL查询字段中,我在SQL语句的末尾添加了一个(;)。 删除这个(;)使每件事都运作良好。