Хранение неструктурированных данных с помощью Azure Cosmos DB и службы "Функции Azure"

Azure Cosmos DB — это отличный способ хранения неструктурированных данных и данных в формате JSON. В сочетании с Функции Azure Azure Cosmos DB обеспечивает быстрое и простое хранение данных с гораздо меньшим объемом кода, чем требуется для хранения данных в реляционной базе данных.

Примечание

Сейчас триггер, входные и выходные привязки Azure Cosmos DB работают только с учетными записями API SQL и API Graph.

В Функциях Azure входные и выходные привязки предоставляют декларативный способ подключения данных внешних служб к функции. В этой статье вы узнаете, как обновить имеющуюся функцию, чтобы добавить выходную привязку, которая сохраняет неструктурированные данные в документе Azure Cosmos DB.

Предварительные требования

Для работы с этим руководством сделайте следующее:

В этой статье в качестве отправной точки используются ресурсы, созданные при работе со статьей Создание первой функции на портале Azure. Выполните шаги в этой статье для создания приложения-функции, если вы еще не сделали этого.

создание учетной записи Azure Cosmos DB;

Перед созданием выходной привязки необходимо получить учетную запись Azure Cosmos DB с API SQL.

  1. На домашней странице или в меню портала Azure выберите Создать ресурс.

  2. Выполните поиск по запросу Azure Cosmos DB. Выберите Создать>Azure Cosmos DB.

  3. На странице Создание учетной записи Azure Cosmos DB выберите параметр Создать в разделе Azure Cosmos DB для NoSQL .

    Azure Cosmos DB предоставляет несколько API:

    • NoSQL для данных документа
    • PostgreSQL
    • MongoDB для данных документа
    • Apache Cassandra
    • Таблица
    • Apache Gremlin для данных графа

    Дополнительные сведения об API для NoSQL см. в статье Добро пожаловать в Azure Cosmos DB.

  4. На странице Создание учетной записи Azure Cosmos DB введите основные параметры для новой учетной записи Azure Cosmos DB.

    Параметр Значение Описание
    Подписка имя подписки; Вы подписку Azure, которую нужно использовать для этой учетной записи Azure Cosmos DB.
    Группа ресурсов Имя группы ресурсов Выберите группу ресурсов или Создать, затем введите уникальное имя для новой группы ресурсов.
    Имя учетной записи Уникальное имя Введите имя для идентификации учетной записи Azure Cosmos DB. Так как элемент documents.azure.com добавляется к указанному вами имени для создания URI, используйте уникальное имя. Имя может содержать только строчные буквы, цифры и символ дефиса (-). Он должен содержать от 3 до 44 символов.
    Расположение Ближайший к пользователям регион Выберите географическое расположение для размещения учетной записи Azure Cosmos DB. Используйте ближайшее к пользователям расположение, чтобы предоставить им максимально быстрый доступ к данным.
    Режим емкости Подготовленная пропускная способность или Бессерверный режим Выберите Подготовленная пропускная способность, чтобы создать учетную запись в режиме подготовленной пропускной способности. Выберите Бессерверный, чтобы создать учетную запись в режиме Бессерверный.
    Применение скидки на основе категории "Бесплатный" для Azure Cosmos DB Применить или не применять В категории "Бесплатный" Azure Cosmos DB для учетной записи бесплатно предоставляются первые 1000 единиц запросов в секунду и 25 ГБ свободного места в хранилище. Ознакомьтесь с дополнительными сведениями о категории "Бесплатный".
    Ограничение общей пропускной способности учетной записи Выбрано или нет Ограничьте общую пропускную способность, которую можно подготовить для этой учетной записи. Это ограничение предотвращает непредвиденные расходы, связанные с подготовленной пропускной способностью. Это ограничение можно обновить или удалить после создания учетной записи.

    Вы можете иметь до одной учетной записи Azure Cosmos DB бесплатного уровня для каждой подписки Azure и должны согласиться на ее создание. Если вы не видите варианта подачи заявки на скидку на основе категории "Бесплатный", это означает, что в подписке уже включена другая учетная запись категории "Бесплатный".

    Снимок экрана: страница

    Примечание

    Следующие параметры недоступны, если вы выбрали значение Бессерверный для параметра Режим емкости:

    • Применение скидки на основе категории "Бесплатный"
    • Ограничение общей пропускной способности учетной записи
  5. На вкладке Глобальное распределение настройте следующие сведения. При работе с этим кратким руководством можно оставить значения по умолчанию.

    Параметр Значение Описание
    Геоизбыточность Отключить Включает или отключает глобальное распределение в вашей учетной записи, связывая ваш регион с парным регионом. В дальнейшем в учетную запись можно добавить дополнительные регионы.
    Операции записи с поддержкой нескольких регионов Отключить Поддержка записи в несколько регионов позволяет использовать подготовленную пропускную способность для баз данных и контейнеров по всему миру.
    зоны доступности; Отключить Зоны доступности помогают повысить доступность и устойчивость приложения.

    Примечание

    Следующие параметры недоступны, если выбрать бессерверный режим в качестве режима емкости на предыдущей странице Основные сведения .

    • Геоизбыточность
    • Выполнение операций записи в нескольких регионах
  6. При необходимости можно настроить дополнительные сведения на следующих вкладках:

  7. Выберите Review + create (Просмотреть и создать).

  8. Проверьте параметры учетной записи, а затем нажмите кнопку Создать. Создание учетной записи занимает несколько минут. Дождитесь, пока на странице портала появится сообщение Развертывание выполнено.

    Снимок экрана: развертывание завершено.

  9. Выберите Перейти к ресурсу, чтобы перейти на страницу учетной записи Azure Cosmos DB.

    Снимок экрана: страница учетной записи Azure Cosmos DB.

Добавление выходной привязки

  1. На портале Azure перейдите к ранее созданному приложению-функции и выберите его.

  2. Выберите Функции, а затем выберите функцию HttpTrigger.

    Выберите нужную функцию на портале Azure.

  3. Последовательно выберите Интеграция и Добавить вывод.

    Добавление выходной привязки к Azure Cosmos DB.

  4. Укажите приведенные в таблице значение в области Добавить вывод.

    Настройка выходной привязки к Azure Cosmos B.

    Параметр Рекомендуемое значение Описание
    Тип привязки Azure Cosmos DB Имя типа привязки, которое нужно выбрать для создания выходной привязки к Azure Cosmos DB.
    Имя параметра документа taskDocument Имя, ссылающееся на объект Azure Cosmos DB в коде.
    Имя базы данных taskDatabase Имя базы данных для сохранения документов.
    Имя коллекции taskCollection Имя коллекции базы данных.
    Если задано значение true, создается база данных и коллекция Azure Cosmos DB. Да Коллекция не существует, создайте ее.
    Подключение учетной записи Azure Cosmos DB Новый параметр Щелкните Создать, выберите вариант Учетная запись Azure Cosmos DB и созданную ранее учетную запись базы данных, а затем щелкните OK. Создает параметр приложения для подключения к учетной записи. Этот параметр используется в привязке для подключения к базе данных.
  5. Нажмите ОК, чтобы создать привязку.

Обновление кода функции

Замените имеющийся код функции следующим кодом для выбранного языка:

Замените имеющуюся функцию C# следующим кодом:

#r "Newtonsoft.Json"

using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;

public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
    string name = req.Query["name"];
    string task = req.Query["task"];
    string duedate = req.Query["duedate"];

    // We need both name and task parameters.
    if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
    {
        taskDocument = new
        {
            name,
            duedate,
            task
        };

        return (ActionResult)new OkResult();
    }
    else
    {
        taskDocument = null;
        return (ActionResult)new BadRequestResult();
    }
}

Этот пример кода считывает строки HTTP-запроса и назначает их в качестве полей объекта taskDocument. Привязка taskDocument отправляет данные объекта из этого параметра привязки для их сохранения в связанной базе данных документов. База данных создается при первом запуске функции.

Тестирование функции и базы данных

  1. Выберите Тест и "Выполнить". В разделе Запрос щелкните Добавить параметр и добавьте в строку запроса следующие параметры.

    • name
    • task
    • duedate

    Тестирование функции.

  2. Щелкните Выполнить и убедитесь, что возвращается состояние 200.

    Снимок экрана: код HTTP-отклика с состоянием 200, выделенный после выбора пункта

  3. На портале Azure найдите и выберите Azure Cosmos DB.

    Найдите службу Azure Cosmos DB.

  4. Выберите нужную учетную запись Azure Cosmos DB, а затем щелкните Обозреватель данных.

  5. Разверните узлы TaskCollection, выберите новый документ и убедитесь, что этот документ содержит ваши значения для строки запроса, а также некоторые дополнительные метаданные.

    Проверка строковых значений в документе.

Вы успешно добавили привязку к триггеру HTTP для хранения неструктурированных данных в экземпляре Azure Cosmos DB.

Очистка ресурсов

На предыдущем шаге вы создали ресурсы Azure в группе ресурсов. Если вы считаете, что в будущем эти ресурсы вам не понадобятся, их можно удалить, удалив группу ресурсов.

В меню или на странице Главная портала Azure выберите Группы ресурсов. Затем на странице Группы ресурсов выберите myResourceGroup.

На странице myResourceGroup убедитесь, что перечислены те ресурсы, которые нужно удалить.

Выберите Удалить группу ресурсов, введите myResourceGroup в текстовое поле для подтверждения и щелкните Удалить.

Дальнейшие действия

Дополнительные сведения о привязке к экземпляру Azure Cosmos DB см. в статье Функции Azure привязки Azure Cosmos DB.