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


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

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

Примечание.

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

По возможности следует разрабатывать функции локально.

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

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

Чтобы завершить этот урок:

Примечание.

Привязки Azure Cosmos DB поддерживаются только для использования с Azure Cosmos DB для NoSQL. Поддержка Azure Cosmos DB для Table предоставляется с помощью привязок Table storage, начиная с версии расширения 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 RU/с и 25 ГБ места в хранилище бесплатно для одной учетной записи. Ознакомьтесь с дополнительными сведениями о категории "Бесплатный".
    Ограничить общую пропускную способность учетной записи Выбран или нет Ограничить общий объем пропускной способности, которую можно подготовить для этой учетной записи. Это ограничение предотвращает непредвиденные расходы, связанные с подготовленной пропускной способностью. Вы можете обновить или удалить это ограничение после создания учетной записи.

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

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

    Примечание.

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

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

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

    Примечание.

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

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

  7. Выберите Просмотр и создание.

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

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

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

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

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

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

  2. На странице "Создать" выберите Приложение-функцию.

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

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

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

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

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

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

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

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

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

  1. В приложении-функции выберите "Обзор" , а затем нажмите кнопку "Создать " в разделе "Функции". Если вы не видите кнопку "Создать", необходимо добавить триггер Azure Cosmos DB в локальный проект кода, а затем выполнить повторное развертывание в Azure. Дополнительные сведения см. в статье Как программировать и тестировать Функции Azure в локальной среде.

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

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

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

    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. На странице Добавить контейнер используйте параметры, перечисленные в таблице под изображением.

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

    Настройка Предлагаемое значение Описание
    Идентификатор базы данных Задачи Имя новой базы данных. Должен соответствовать имени, заданному в привязке функции.
    Идентификатор контейнера Элементы Имя нового контейнера. Должен соответствовать имени, заданному в привязке функции.
    Ключ раздела /категория Ключ секции, который равномерно распределяет данные по всем секциям. Для создания высокопроизводительного контейнера важно выбрать правильный ключ раздела.
    Пропускная способность 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".

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