CreateContainerIfNotExistsAsync генерирует исключение с кодом состояния «Неверный запрос», если контейнер не существует в базе данных. Если контейнер существует в БД, то исключение не выдается. Может ли кто-нибудь помочь мне, почему это происходит.
(Спрятал URL и ключ для онлайн-публикации)
using Microsoft.Azure.Cosmos;
using Microsoft.Azure.Cosmos.Linq;
using System.Threading.Tasks;
namespace CosmosDB // Note: actual namespace depends on the project name.
{
class Program
{
public static async Task Main(string[] args)
{
var cosmosUrl = "###########################";
var cosmoskey = "###########################";
var databaseName = "TestDB";
// var containerId = "ToDo";
CosmosClient client = new CosmosClient(cosmosUrl, cosmoskey);
Database database = await client.CreateDatabaseIfNotExistsAsync(databaseName);
Container container = await database.CreateContainerIfNotExistsAsync(
id: "ToDoList",
partitionKeyPath: "/category",
throughput: 100
);
}
}
}
@Саджитаран, да.
Не могли бы вы поделиться полной информацией об исключении (exception.ToString())?
Команда завершается ошибкой, потому что ваш ввод недействителен. Пропускная способность должна быть в диапазоне от 400 до 10 000 ЕЗ/с (для обычной базы данных или контейнера), и, поскольку вы используете значение 100, возникнет исключение.
Ошибка не возникнет, если ваш контейнер уже существует, потому что он не будет проверять (на стороне сервера) или выполнять обновление пропускной способности.
Редактировать: Ссылка на документацию Microsoft по ограничениям на услуги. Ссылка на Microsoft REST API (используется SDK).
Спасибо за помощь. Теперь понял и исправил. Можете ли вы поделиться ссылкой на документацию, где я могу узнать больше об этом?
Добавил ссылку в ответ.
БД создана?