Я создаю программу, которая записывает данные в Cosmos DB (OneAuthZDeltaRoleDatabase
), однако, когда я записываю данные, я получаю следующую ошибку:
"The input content is invalid because the required properties - 'id; ' - are missing"
Ниже мой код, в котором я программно создайте Cosmos DB (OneAuthZDeltaRoleDatabase
) и ее контейнер (OneAuthZDeltaRoleContainer
) и попытайтесь вставить данные в Cosmos DB (база данных и контейнер успешно созданы, но вставка данных не удалась):
// Creates the Cosmos DB database where we store the last delta API call for each app
private static async Task CreateDeltaAPICallDatabaseAsync()
{
// Create a new database
lastAPICallDatabase = await cosmosClient.CreateDatabaseIfNotExistsAsync(lastDeltaDatabaseId);
}
// Creates the Cosmos DB container where we store the last delta API for each app
private static async Task CreateDeltaAPICallContainerAsync()
{
// Create a new container
lastAPICallContainer = await lastAPICallDatabase.CreateContainerIfNotExistsAsync(lastDeltaContainerId, "/AppId");
}
/* Timer function that reads the role assignments table (OneAuthZRoleAssignments) on a configurable schedule
* and computes + displays a mapping of users to their corresponding role assignments (e.x. every 2 mins) */
[FunctionName("InitiateChangeMonitoring")]
public static async Task InitiateChangeMonitoring([TimerTrigger("%TimerTriggerPeriod%")] TimerInfo myTimer, ILogger log)
{
// Create the necessary Cosmos DB infastructure
await CreateDeltaAPICallDatabaseAsync();
await CreateDeltaAPICallContainerAsync();
foreach (string appId in oneAuthZAppIds)
{
// Initialize the base delta API call timestamp for that app id (if it does not exist)
await lastAPICallContainer.CreateItemAsync(new DeltaAPIMapping(appId, baselineSnapshotTime), new PartitionKey(appId));
}
}
введите описание изображения здесь
Это код для класса DeltaAPIMapping
(класса, который я добавляю в Cosmos DB).
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.Text;
namespace AccessChangeMonitoring
{
class DeltaAPIMapping
{
[JsonProperty(PropertyName = "AppId")]
public string id { get; set; }
public DeltaAPIMapping(string appId, DateTime callTimestamp)
{
this.id = Guid.NewGuid().ToString();
this.appId = appId;
this.callTimestamp = callTimestamp;
}
public string appId { get; set; }
public DateTime callTimestamp { get; set; }
}
}