Создание функции, активируемой с помощью Azure Cosmos DB

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

Примечание.

Редактирование на портале поддерживается только для функций скрипта JavaScript, PowerShell и C#. Редактирование Python на портале поддерживается только при выполнении в плане потребления. По возможности следует разрабатывать функции локально.

Дополнительные сведения об ограничениях на редактирование кода функции в портал Azure см. в разделе об ограничениях разработки в портал Azure.

Необходимые компоненты

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

Примечание.

Привязки Azure Cosmos DB поддерживаются только для использования с Azure Cosmos DB для NoSQL. Поддержка Azure Cosmos DB для таблицы предоставляется с помощью привязок хранилища таблиц, начиная с расширения 5.x. Для всех других API Azure Cosmos DB необходимо получить доступ к базе данных из функции с помощью статического клиента для API, включая Azure Cosmos DB для MongoDB, Azure Cosmos DB для Cassandra и Azure Cosmos DB для Apache Gremlin.

Вход в Azure

Войдите на портал Azure с помощью своей учетной записи 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.

Создание приложения-функции в Azure

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

  2. На странице Создать щелкните Вычислительные ресурсы>Приложение-функция.

  3. В разделе "Выбор варианта размещения" выберите "Выбор потребления>", чтобы создать приложение в плане потребления по умолчанию. В этом бессерверном варианте размещения вы платите только за время выполнения функций. План "Премиум" также предлагает динамическое масштабирование. Когда выполняется план службы приложений необходимо управлять масштабированием приложения-функции.

  4. На странице Основные сведения используйте параметры приложения-функции как указано в таблице ниже:

    Параметр Предлагаемое значение Description
    Подписка Ваша подписка Подписка, в которой создается новое приложение-функцию.
    Группа ресурсов myResourceGroup Имя новой группы ресурсов, в которой создается приложение-функция. Необходимо создать новую группу ресурсов, так как при создании приложений-функций в существующей группе ресурсов существуют известные ограничения.
    Имя приложения-функции Глобально уникальное имя Имя, которое идентифицирует ваше новое приложение-функцию. Допустимые символы: a-z (без учета регистра), 0-9 и -.
    Стек среды выполнения Предпочитаемый язык Выберите среду выполнения, которая поддерживает нужный функциональный язык программирования. Редактирование на портале доступно только для скрипта JavaScript, PowerShell, Python, TypeScript и C#. Библиотека классов C# и функции Java должны быть разработаны локально.
    Версия Номер версии Выберите версию установленной среды выполнения.
    Регион Предпочтительный регион Выберите регион, ближайший к вам или к другим службам, к которым могут обращаться функции.
    Операционная система Windows Операционная система предварительно выбирается на основе выбора стека среды выполнения, но при необходимости можно изменить этот параметр. Редактирование на портале поддерживается только в Windows.
  5. Примите параметры по умолчанию на оставшихся вкладках, включая поведение по умолчанию для создания новой учетной записи хранения на вкладке служба хранилища и нового экземпляра Application Insights на вкладке "Мониторинг". Вы также можете использовать существующую учетную запись хранения или экземпляр приложения Аналитика.

  6. Выберите "Проверка и создание ", чтобы просмотреть выбранную конфигурацию приложения, а затем выберите "Создать ", чтобы подготовить и развернуть приложение-функцию.

  7. Выберите значок Уведомления в правом верхнем углу портала. Вы должны увидеть сообщение Развертывание выполнено.

  8. Выберите Перейти к ресурсу для просмотра нового приложения-функции. Можно также установить флажок Закрепить на панели мониторинга. Это упростит возвращение к этому ресурсу приложения-функции из панели мониторинга.

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

Затем создайте функцию в новом приложении-функции.

Создание триггера Azure Cosmos DB

  1. В приложении-функции выберите "Обзор" и нажмите кнопку "Создать " в разделе "Функции".

  2. В разделе "Выбор шаблона" прокрутите вниз и выберите шаблон триггера Azure Cosmos DB.

  3. В сведениях о шаблоне настройте новый триггер с параметрами, указанными в этой таблице, а затем нажмите кнопку "Создать".

    Параметр Предлагаемое значение Description
    Новая функция Примите значение по умолчанию. Имя функции.
    Подключение учетной записи Azure Cosmos DB Примите новое имя по умолчанию. Выберите Создать и Учетная запись базы данных, которую вы создали ранее, а затем щелкните ОК. Будет создан параметр приложения для подключения к учетной записи. Этот параметр используется в привязке для подключения к базе данных.
    Имя базы данных Задачи Имя базы данных, которая включает отслеживаемую коллекцию.
    Имя коллекции Товаров Имя отслеживаемой коллекции.
    Имя коллекции для аренды leases Имя коллекции, в которой хранятся сведения об аренде.
    Создать коллекцию аренды, если ее не существует Да Проверяет существование коллекции аренды и автоматически создает ее при необходимости.

    Azure создает активированную функцию Azure Cosmos DB на основе предоставленных значений.

  4. Чтобы отобразить код функции на основе шаблона, выберите Код + тестовый.

    Шаблон функции Azure Cosmos DB в C#

    Этот шаблон функции записывает в журналы количество документов и идентификатор первого документа.

Затем подключитесь к учетной записи Azure Cosmos DB и создайте контейнер Items в базе данных Tasks.

Создание контейнера элементов

  1. Откройте второй экземпляр портала Azure на новой вкладке в браузере.

  2. В левой части портала разверните панель значков, введите cosmos в поле поиска и выберите Azure Cosmos DB.

    Поиск службы Azure Cosmos DB

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

  4. В разделе API SQLвыберите базу данных Задачи и Новый контейнер.

    Создание контейнера

  5. На странице Добавить контейнер используйте параметры, перечисленные в таблице под изображением.

    Определение контейнера

    Параметр Предлагаемое значение Description
    Идентификатор базы данных Задачи Имя новой базы данных. Должен соответствовать имени, заданному в привязке функции.
    Идентификатор контейнера Товаров Имя нового контейнера. Должен соответствовать имени, заданному в привязке функции.
    Ключ секции /по категориям Ключ секции, который равномерно распределяет данные в каждой секции. Для создания высокопроизводительного контейнера важно выбрать правильный ключ раздела.
    Пропускная способность 400 ЕЗ Используйте значение по умолчанию. Чтобы сократить задержку, позже вы можете увеличить масштаб пропускной способности.
  6. Нажмите кнопку ОК, чтобы создать контейнер "Элементы". Процесс создания контейнера может занять некоторое время.

После создания контейнера, указанного в привязке функции, функцию можно протестировать, добавив в новый контейнер элементы.

Проверка функции

  1. Разверните новый контейнер Элементы в Data Explorer, выберите Элементы, а затем — Новый элемент.

    Создание элемента в контейнере

  2. Замените содержимое нового элемента следующим содержимым, а затем выберите Сохранить.

    {
        "id": "task1",
        "category": "general",
        "description": "some task"
    }
    
  3. На портале переключитесь на первую вкладку браузера, содержащую функцию. Разверните журналы функций и убедитесь, что новый документ активировал функцию. На экране будет видно, что значение идентификатора документа task1 записано в журналы.

    Просмотр сообщения в журналах.

  4. (Необязательно.) Перейдите обратно к документу, внесите изменения и нажмите кнопку Изменить. Затем вернитесь к журналам функций и убедитесь, что изменение также активировало функцию.

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

Другие краткие руководства в этой коллекции созданы на основе этого документа. Если вы планируете работать с последующими руководствами или краткими руководствами, а также или любыми службами, созданными при работе с этим руководством, не очищайте ресурсы.

Под ресурсами в Azure подразумеваются приложения-функции, функции, учетные записи хранения и т. д. Они объединяются в группы ресурсов, при удалении которых удаляются и все данные в них.

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

  1. На портале Azure перейдите на страницу Resource group (Группа ресурсов).

    Чтобы перейти на эту страницу со страницы приложения-функции, перейдите на вкладку Обзор,и щелкните ссылку в разделе Группа ресурсов.

    Снимок экрана: выбор группы ресурсов, которую требуется удалить со страницы приложения-функции.

    Чтобы перейти на эту страницу с панели управления, выберите Resource groups (Группы ресурсов), а затем выберите группу ресурсов, которая использовалась в этой статье.

  2. На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.

  3. Выберите Удалить группу ресурсов и следуйте инструкциям.

    На удаление может потребоваться несколько минут. После этого на несколько секунд появится уведомление. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.

Следующие шаги

Вы создали функцию, которая запускается при добавлении или изменении документов в Azure Cosmos DB. Дополнительные сведения о триггерах Azure Cosmos DB см. в статье Привязки Azure Cosmos DB для службы "Функции Azure".

Итак, вы создали первую функцию. Теперь давайте добавим к ней выходную привязку, которая позволяет записывать сообщения в очередь службы хранилища.