Поделиться через


Хранение неструктурированных данных с помощью 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.

    Параметр Предлагаемое значение Description
    Тип привязки 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.