Обработка и создание документов Azure Cosmos DB с помощью Azure Logic Apps

Область применения: Azure Logic Apps (Потребление + Стандартный)

Из рабочего процесса в Azure Logic Apps вы можете подключиться к Azure Cosmos DB и работать с документами с помощью соединителя Azure Cosmos DB. Этот соединитель предоставляет триггеры и действия, которые рабочий процесс может использовать для операций Azure Cosmos DB. Например, действия включают создание или обновление, чтение, запрос и удаление документов.

Вы можете подключиться к Azure Cosmos DB из типов ресурсов приложения логики (потребления) и приложения логики (стандартная версия) с помощью операций управляемого соединителя . Для приложения логики (стандартный) Azure Cosmos DB также предоставляет встроенные операции, которые в настоящее время находятся в предварительной версии и предлагают различные функциональные возможности, более высокую производительность и более высокую пропускную способность. Например, если вы работаете с типом ресурсов приложения логики (стандартный), можно использовать встроенный триггер для реагирования на изменения в контейнере Azure Cosmos DB. Вы можете объединить операции Azure Cosmos DB с другими действиями и триггерами в рабочих процессах приложения логики, чтобы обеспечить такие сценарии, как источник событий и общая обработка данных.

Ограничения

  • В настоящее время только рабочие процессы с отслеживанием состояния в ресурсе приложения логики (стандартный) могут использовать как управляемые операции соединителя, так и встроенные операции. Рабочие процессы без отслеживания состояния могут использовать только встроенные операции.

  • Соединитель Azure Cosmos DB поддерживает только учетные записи Azure Cosmos DB, созданные с помощью Azure Cosmos DB для NoSQL.

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

Добавление триггера Azure Cosmos DB

В Azure Logic Apps каждый рабочий процесс должен начинаться с триггера, который запускается, когда происходит определенное событие или когда выполняется определенное условие.

Если вы работаете с типом ресурса приложения логики (стандартный ), встроенный триггер, вызываемый при создании или изменении элемента (предварительная версия), доступен и основан на шаблоне канала изменений Azure Cosmos DB. Этот триггер недоступен для типа ресурса приложения логики (потребления ).

Триггеры Azure Cosmos DB недоступны для типа ресурса Приложения логики (потребления ).

Добавление действия Azure Cosmos DB

В Azure Logic Apps действие — это шаг в рамках рабочего процесса, выполняемый после срабатывания триггера или другого действия. Соединитель Azure Cosmos DB предлагает действия для типов ресурсов приложения логики (потребления) и приложения логики (стандартный ). В следующих примерах для каждого типа ресурса показано, как использовать действие, которое создает или обновляет документ.

Чтобы добавить действие Azure Cosmos DB в рабочий процесс приложения логики в мультитенантных Azure Logic Apps, выполните следующие действия.

  1. В портал Azure откройте рабочий процесс в конструкторе.

  2. Если рабочий процесс пуст, добавьте любой нужный триггер.

    Этот пример начинается с триггера получения HTTP-запроса.

  3. В разделе триггера или действия, в котором необходимо добавить действие Azure Cosmos DB, выберите новый шаг или добавьте действие, если между шагами.

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

    В этом примере используется действие с именем Create or update document (V3).

    Screenshot showing the designer for a Consumption logic app workflow with the available Azure Cosmos DB actions.

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

  6. Укажите необходимые сведения для действия.

    Свойство Обязательное поле значение Description
    Имя учетной записи Azure Cosmos DB Да Выберите " Использовать параметры подключения" (<Azure-Cosmos-DB-account-name>)или введите имя вручную. Имя учетной записи Azure Cosmos DB.
    Идентификатор базы данных Да <идентификатор базы данных> База данных, которую требуется подключить.
    Идентификатор контейнера Да <идентификатор контейнера> Контейнер, который требуется запрашивать.
    Документ Да <JSON-document> Документ JSON, который требуется создать. В этом примере используется текст запроса из выходных данных триггера.

    Совет. Если маркер текста триггера HTTP не отображается в списке динамического содержимого для добавления, рядом с именем триггера нажмите кнопку "Дополнительные сведения".

    Примечание. Убедитесь, что текст хорошо сформирован JSON, а как минимум содержит id свойство и свойство ключа секции для документа. Если документ с указанным id ключом секции уже существует, документ обновляется. В противном случае создается новый документ.

    На следующем рисунке показан пример действия:

    Screenshot showing the designer for a Consumption logic app workflow with the Azure Cosmos DB 'Create or update documents (V3)' action and parameters configuration.

  7. При необходимости настройте любые другие параметры действия.

  8. На панели инструментов конструктора выберите Сохранить.

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

Подключение к Azure Cosmos DB

При добавлении триггера или действия, которое подключается к службе или системе, и у вас нет существующего или активного подключения, Azure Logic Apps предложит предоставить сведения о подключении, которые зависят от типа подключения, например:

  • Учетные данные учетной записи
  • Имя, используемое для подключения
  • Имя сервера или системы
  • Тип проверки подлинности
  • Строка подключения

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

В рабочем процессе приложения логики (потребления) подключение Azure Cosmos DB требует следующих значений свойств:

Свойство Обязательное поле значение Description
Имя подключения Да <имя_соединения> Имя, используемое для подключения.
Тип проверки подлинности Да <тип подключения> Тип аутентификации, который будет использоваться. В этом примере используется ключ доступа.

— Если выбрать ключ доступа, укажите оставшиеся необходимые значения свойств для создания соединения.

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

Ключ доступа к учетной записи Azure Cosmos DB Да <ключ доступа> Ключ доступа для учетной записи Azure Cosmos DB, используемой для этого подключения. Это значение является ключом для чтения и записи или ключом только для чтения.

Примечание. Чтобы найти ключ, перейдите на страницу учетной записи Azure Cosmos DB. В меню навигации в разделе Параметры выберите "Ключи". Скопируйте одно из доступных значений ключей.

Идентификатор учетной записи Да <acccount-ID> Имя учетной записи Azure Cosmos DB, используемой для этого подключения.

На следующем рисунке показан пример подключения:

Screenshot showing an example Azure Cosmos DB connection configuration for a Consumption logic app workflow.

Примечание.

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

Справочник по соединителям

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

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

Type Имя Параметры
Триггер При создании или изменении элемента - Идентификатор базы данных: обязательный. Имя базы данных с отслеживаемых и арендных контейнеров.
- Отслеживаемый идентификатор контейнера: обязательный. Имя отслеживаемого контейнера.
- Идентификатор контейнера аренды: обязательный. Имя контейнера, используемого для хранения аренды.
- Создание контейнера аренды: обязательный. Если задано значение true, создайте контейнер аренды, если он еще не существует.
- Пропускная способность контейнера аренды: необязательно. Количество единиц запросов, назначаемых при создании контейнера аренды.
Действие Создание или обновление элемента - Идентификатор базы данных: обязательный. Имя базы данных.
- Идентификатор контейнера: обязательный. Имя контейнера.
- Элемент: обязательный. Элемент для создания или обновления.
- Ключ секции: необязательный. Значение ключа секции для запрошенного элемента.
- Является Upsert: необязательный. Если значение true, замените элемент, если он существует. В противном случае создайте элемент.
Действие Создание или обновление множества элементов в массовом режиме Это действие оптимизировано для сценариев высокой пропускной способности и имеет дополнительную обработку перед отправкой элементов, которые будут созданы в контейнере Azure Cosmos DB. Для большого количества элементов эта дополнительная обработка ускоряет общее время запроса. Для небольших чисел элементов эта дополнительная нагрузка может привести к замедлению производительности, чем при использовании нескольких действий создания одного элемента.

- Идентификатор базы данных: обязательный. Имя базы данных.
- Идентификатор контейнера: обязательный. Имя контейнера.
- Элементы: обязательный. Массив элементов для создания или обновления.
- Является Upsert: необязательный. Если значение true, замените элемент, если он существует. В противном случае создайте элемент.

Действие Чтение элемента - Идентификатор базы данных: обязательный. Имя базы данных.
- Идентификатор контейнера: обязательный. Имя контейнера.
- Идентификатор элемента: обязательный. id Значение запрошенного элемента.
- Ключ секции: обязательный. Значение ключа секции для запрошенного элемента.
Действие Удаление элемента - Идентификатор базы данных: обязательный. Имя базы данных.
- Обязательный идентификатор контейнера. Имя контейнера.
- Идентификатор элемента: обязательный. id Значение запрошенного элемента.
- Ключ секции: обязательный. Значение ключа секции для запрошенного элемента.
Действие Элементы запроса - Идентификатор базы данных: обязательный. Имя базы данных.
- Идентификатор контейнера: обязательный. Имя контейнера.
- Sql Query: обязательный. Текст sql-запроса Azure Cosmos DB.
- Ключ секции: необязательный. Значение ключа секции для запроса, если таковой имеется.
- Токен продолжения: необязательный. Маркер продолжения для этого запроса, предоставленный службой Azure Cosmos DB, если таковой есть.
- Максимальное число элементов: необязательно. Максимальное количество элементов для возвращаемого запроса.

Рекомендации по встроенным операциям Azure Cosmos DB

Получение итерируемых результатов из действия "Элементы запроса"

Встроенное действие "Элементы запроса" в рабочем процессе приложения логики (стандартный) содержит множество динамических выходных данных содержимого, доступных для использования в последующих действиях. Чтобы получить элементы результатов запроса или метаданные элемента в качестве итерируемого объекта, выполните следующие действия.

  1. В портал Azure откройте рабочий процесс в конструкторе.

  2. Если рабочий процесс пуст, добавьте любой нужный триггер.

    В этом примере приложение запускается при срабатывании триггера повторения.

  3. В разделе триггера или действия, в котором требуется добавить действие Azure Cosmos DB, выберите "Вставить новый шаг " (+) >Добавить действие.

  4. В конструкторе убедитесь, что выбрана операция "Добавить". В открывающемся окне "Добавление действия" в поле "Выбор операции" выберите "Встроенный", чтобы найти действия Azure Cosmos DB.

  5. В поле поиска введите Azure Cosmos DB. Выберите действие "Запрос" (предварительная версия).

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

  7. Укажите необходимые сведения для действия.

    Свойства Обязательное поле значение Description
    Идентификатор базы данных Да <идентификатор базы данных> База данных, которую требуется подключить.
    Идентификатор контейнера Да <идентификатор контейнера> Контейнер, который требуется запрашивать.
    Запросы SQL Да <sql-query> SQL-запрос для запроса.

    На следующем рисунке показан пример действия:

    Screenshot showing the designer for a Standard logic app workflow with the Azure Cosmos DB 'Query items' action and parameters configuration.

  8. При необходимости настройте любые другие параметры действия.

  9. В разделе действия выберите "Вставить новый шаг " (+) >Добавить действие. В открывающейся области "Добавление действия" выберите действие, которое требуется выполнить во всех элементах результатов запроса.

В этом примере используется встроенное действие Azure Cosmos DB с именем Delete an item (preview).

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

В этом примере идентификатор элемента ответа в поле "Идентификатор элемента" используется для заполнения идентификаторов на основе результатов запроса.

Screenshot showing the designer for a Standard logic app workflow with the Azure Cosmos DB **Query items** action dynamic content outputs.

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

  2. На панели инструментов конструктора выберите Сохранить.

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

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