java - 天蓝色函数java CosmosDBTrigger输入和@SignalROutput输出,错误:Cannot create Collection Information

标签 java azure-functions azure-cosmosdb azure-cosmosdb-mongoapi cosmosdbtrigger

我已用占位符替换了安全数据

本地运行以及部署后出错 -

Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.<Function-Name>'. Microsoft.Azure.WebJobs.Extensions.CosmosDB: Cannot create Collection Information for <Collection-Name> in database <Database-Name> with lease <Lease-Collection-Name> in database <Database-Name> : 
RequestUri: https://<Azure-Cosmos-DB-Account>.mongo.cosmos.azure.com/;
RequestMethod: GET;
Header: x-ms-version Length: 10;
Header: User-Agent Length: 48;
Header: x-ms-date Length: 29;
Header: Authorization Length: 82;
, Request URI: /, RequestStats: , SDK: Windows/10.0.18362 documentdb-netcore-sdk/2.10.1. Microsoft.Azure.DocumentDB.Core: 

local.settings.json 文件 -

{
  "IsEncrypted": false,
  "Values": {
    "JAVA_OPTS": "-Djava.net.preferIPv4Stack=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005",
    "AzureWebJobsStorage": "<Required value>",
    "AzureWebJobsDashboard": "<Required value>",
    "AzureSignalRConnectionString": "<Endpoint connection string>",
    "AzureCosmosDBConnection": "AccountEndpoint=https://<Azure Cosmos Db Account>.mongo.cosmos.azure.com:443/;AccountKey=<Required key>",
    "FUNCTIONS_WORKER_RUNTIME": "java"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "http://localhost:8080,http://localhost:4200",
    "CORSCredentials": true
  }
}

代码-

@FunctionName("Notify-Update")
    public void notifyDBUpdate(
            @CosmosDBTrigger(name = "dataInput",
                    databaseName = "demo",
                    collectionName = "bagi",
                    leaseDatabaseName = "demo",
                    leaseCollectionName = "leasebagi",
                    createLeaseCollectionIfNotExists = true,
                    connectionStringSetting = "AzureCosmosDBConnection")
                    String document,
            @SignalROutput(name = "dataOutput", hubName = "chat", connectionStringSetting = "AzureSignalRConnectionString") OutputBinding<String> dataOutput,
            final ExecutionContext context) {

        context.getLogger().info("Java CosmosDB Notification trigger processed a request: " + document);

集合和数据库已创建,但我尚未创建租赁集合。

我正在使用 cosmos db、signalr 和 azure 函数开发实时应用程序,但我已经被这个错误困扰了一段时间了。

最佳答案

您似乎正在使用 Mongo 帐户(您的端点是 <Azure-Cosmos-DB-Account>.mongo.cosmos.azure.com )。

根据 documentation :

Azure Cosmos DB bindings are only supported for use with the SQL API.

关于java - 天蓝色函数java CosmosDBTrigger输入和@SignalROutput输出,错误:Cannot create Collection Information,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60929069/

相关文章:

java - 如何将信息添加到 sqlite 数据库,然后使用 javafx 显示信息?

Azure 服务总线功能未运行

Azure 流分析到 Cosmos 数据库

azure - 如何加快从 Azure Data Lake 到 Cosmos DB 的复制速度

java - 我应该(可以吗?)我重写 Robot 类以通过重复的屏幕捕获节省内存,或者 GC 是否足够好?

java - 如何使用单 Spark 上下文在 Apache Spark 中运行并发作业(操作)

c# - Azure TimerTrigger 无法在 .NET 7 独立工作进程中工作

azure - cosmosdb 是否更新删除记录,即使只有单个字段更改

c# - 在 Google App Engine 上从 Java 调用 C# dll

c# - 列出 Azure 表值