У меня уже есть база данных космоса, и я хочу использовать ее для запуска функции лазури.
Вот мой код функции Azure:
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System.Collections.Generic;
namespace CosmosTriggerFunc
{
public static class MyFunc
{
[FunctionName("Func")]
public static void Run([CosmosDBTrigger(
databaseName: "dbname",
collectionName: "collectionname",
ConnectionStringSetting = "connectionStringSetting",
LeaseCollectionName = "leases",
CreateLeaseCollectionIfNotExists = true)]IReadOnlyList<Document> documents,
TraceWriter log)
{
if (documents != null && documents.Count > 0)
{
log.Info($"Documents modified: {documents.Count}");
log.Info($"First document Id: {documents[0].Id}");
}
}
}
}
А вот мой local.settings.json:
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "<validstring>",
"AzureWebJobsDashboard": "<validstring>",
"type": "CosmosDBTrigger",
"name": "documents",
"direction": "in",
"leaseCollectionName": "leases",
"connectionStringSetting": "<valid-conn-string>",
"createLeaseCollectionIfNotExists": true
}
}
А вот и моя ошибка:
A ScriptHost error has occurred
Exception while executing function
Exception binding parameter 'documents'.
Binding can only be done with IReadOnlyList<Document> or JArray
Parameter name: type.
У меня есть класс в другом проекте, которые являются документами в этой коллекции. Но я попытался вставить его там, где в настоящее время используется класс Document, и получил ту же ошибку.