С каждым днем всё больше организаций обращаются к цифровой трансформации для оптимизации своих бизнес-процессов, повышения эффективности и улучшения взаимодействия с клиентами. В этом контексте, Power Platform от Microsoft выступает как мощный инструментарий, предлагающий решения для создания приложений, автоматизации рабочих процессов и аналитики данных без необходимости в глубоких знаниях программирования. Эта платформа включает в себя Power Apps для разработки приложений, Power Automate для автоматизации задач, Power BI для аналитики данных и Power Virtual Agents для создания чат-ботов.
Однако, с увеличением зависимости бизнеса от этих технологий возникает необходимость в тщательном управлении ресурсами, чтобы обеспечить их доступность и производительность. Важным аспектом этого управления является понимание и контроль над API лимитами, которые Microsoft вводит для запросов в рамках Power Platform. Эти лимиты задуманы для предотвращения чрезмерного использования ресурсов одними пользователями или приложениями в ущерб другим, обеспечивая таким образом стабильность и надежность сервисов.
В данной статье мы подробно рассмотрим, что такое Power Platform запросы, какие существуют типы запросов и лимиты на их использование. Мы также объясним, как эти запросы классифицируются, и представим рекомендации по мониторингу и анализу использования запросов для эффективного управления ресурсами и избежания потенциальных проблем, связанных с превышением установленных лимитов.
А узнать больше про API запросы можно в нашем видео:
Что такое Power Platform запрос?
В основе работы с Power Platform лежит взаимодействие с её компонентами через API — это основной механизм, позволяющий пользователям и приложениям взаимодействовать с сервисами платформы, такими как Power Apps, Power Automate, Power Virtual Agents и Dataverse. Power Platform запрос, в своей сути, является любым вызовом API, который инициируется пользователем или приложением для выполнения операций в рамках этих сервисов. Это может быть запрос на создание, обновление, удаление данных в Dataverse, запуск автоматизации в Power Automate или запрос на получение данных через коннектор в Power Apps.
Важным аспектом работы с запросами в Power Platform является наличие определённых ограничений или лимитов. Microsoft вводит эти ограничения для обеспечения стабильности и надёжности сервисов, предотвращения их перегрузки из-за чрезмерного количества запросов от отдельных пользователей или приложений. Лимиты определяют максимальное количество запросов, которое можно выполнить за определённый временной промежуток — это может быть число запросов в минуту, час или день. Превышение установленных лимитов может привести к временному ограничению доступа к функционалу сервисов или возврату ошибки с кодом 429 (Too Many Requests).
Таким образом, понимание и управление запросами в рамках установленных лимитов крайне важно для разработчиков и администраторов Power Platform, поскольку это напрямую влияет на производительность и доступность приложений и автоматизаций, созданных на платформе. Правильное планирование и оптимизация запросов позволяют избежать потенциальных проблем с превышением лимитов и обеспечить бесперебойную работу решений, разработанных на основе Power Platform.
Типы запросов
Понимание различных типов запросов в Power Platform имеет решающее значение для эффективного управления и оптимизации использования ресурсов платформы. Ограничения API запросов в Power Platform делятся на четыре основные группы, каждая из которых имеет свои спецификации и ограничения:
Power Apps коннекторы: Эта категория включает в себя запросы, идущие через коннекторы в Power Apps, например, при использовании Canvas-приложений для запроса данных из внешних сервисов. Коннекторы могут взаимодействовать с различными внешними и внутренними сервисами, обеспечивая доступ к данным и функциональности за пределами непосредственной экосистемы Power Platform. Все запросы через эти коннекторы учитываются в рамках лимитов Power Apps, требуя тщательного планирования и мониторинга для предотвращения превышения допустимых ограничений.
Power Automate: Запросы, связанные с Power Automate, охватывают все взаимодействия с коннекторами и выполнение действий (actions) и триггеров в рамках автоматизированных процессов. Это включает в себя автоматические процессы, триггеры, инициируемые определенными событиями, и действия, выполняемые в ответ на эти события. Power Automate играет ключевую роль в автоматизации бизнес-процессов, связывая различные сервисы и приложения в единый рабочий процесс.
Power Virtual Agents: В эту группу входят все запросы, происходящие в результате взаимодействия с чат-ботами Power Virtual Agents. Это включает в себя любые запросы данных или выполнение действий, инициированных в ходе диалога пользователя с чат-ботом. Использование чат-ботов для автоматизации коммуникаций и предоставления информации пользователям требует учета соответствующих лимитов на запросы для оптимизации работы и избежания потенциальных проблем с производительностью.
Dataverse: Наиболее значимая категория, включающая в себя CRUD-запросы (Create, Read, Update, Delete), а также операции assign и share, выполненные через любые клиенты, включая Dynamics 365 и доступ к данным через REST или SOAP API. Dataverse представляет собой унифицированное пространство данных, которое служит основой для хранения и управления данными в экосистеме Power Platform и Dynamics 365. Эти запросы лежат в основе многих процессов и приложений, построенных на платформе, и требуют особого внимания к соблюдению установленных лимитов для обеспечения непрерывности бизнес-процессов.
Каждая из этих категорий запросов имеет свои особенности и требует индивидуального подхода к мониторингу и управлению, чтобы обеспечить эффективное использование ресурсов Power Platform и избежать превышения допустимых лимитов.
Dataverse API-лимиты
Dataverse API-лимиты являются ключевым элементом для поддержания производительности и доступности сервисов в рамках Power Platform. Эти лимиты разделяются на две основные категории, каждая из которых играет свою роль в управлении нагрузкой на систему.
Лимиты защиты сервиса
Первая категория — это лимиты защиты сервиса. Они устанавливаются для обеспечения стабильности и надежности сервисов, предотвращая чрезмерную нагрузку, которая может повлиять на производительность. Эти лимиты включают:
Общее количество запросов: Лимит составляет 6000 запросов в пять минут. При превышении этого количества система начнет возвращать ошибку с кодом 429 (too many requests), что означает необходимость снижения частоты запросов.
Общее время выполнения запросов: Ограничение времени обработки запросов установлено на уровне 20 минут в течение пяти минут. Это означает, что если совокупное время выполнения запросов превышает этот порог, дальнейшие запросы будут замедлены.
Количество одновременных запросов: Нельзя выполнять более 52 одновременных запросов. Это предотвращает ситуации, когда чрезмерное количество запросов одновременно может заблокировать ресурсы.
Лимиты, зависящие от пользователя
Вторая категория лимитов зависит от конкретного пользователя и его лицензии, предоставляя гибкость в зависимости от потребностей и использования:
Для обычных пользователей: Стандартный лимит составляет 40 тысяч запросов за сутки на пользователя, но он может варьироваться в зависимости от типа лицензии. Например, лицензия Power Apps per App предоставляет 6000 запросов, а Power Automate per flow — до 250 тысяч запросов на один flow.
Для application users: В случае с Dynamics 365 Enterprise & Professional приложениями, на тенант предоставляется 500 тысяч запросов в сутки, с возможностью получения дополнительных 5000 запросов за каждую лицензию, увеличивая общее количество доступных запросов в зависимости от количества специфических лицензий.
Лимиты на тенант: Независимо от количества пользователей, на тенант могут быть установлены собственные лимиты, как например, 25 тысяч запросов для лицензий Power Apps и Power Automate, обеспечивая общую нагрузку на ресурсы тенанта в рамках допустимых пределов.
Эти лимиты и ограничения играют важную роль в обеспечении баланса между доступностью и производительностью сервисов Power Platform, позволяя предотвратить ситуации, когда чрезмерное использование ресурсов одними пользователями может негативно сказаться на работе сервисов для других. Понимание и управление этими лимитами — ключ к успешной интеграции и использованию Power Platform в бизнес-процессах.
Что считается за Dataverse запрос?
Dataverse запросы играют ключевую роль в функционировании Power Platform, позволяя пользователям взаимодействовать с данными в Dataverse. Важно понимать, что в категорию Dataverse запросов входят не только базовые операции с данными, но и ряд дополнительных действий, обеспечивающих гибкость и мощь платформы. Подробно рассмотрим, что включается в эту категорию:
CRUD-операции: Основой Dataverse запросов являются операции создания (Create), чтения (Read), обновления (Update) и удаления (Delete) данных. Эти действия лежат в основе любых приложений и процессов, использующих Dataverse, позволяя управлять данными в динамичной среде.
Assign и Share операции: Помимо базовых CRUD-операций, важными элементами управления данными являются операции назначения (Assign) и совместного использования (Share). Они позволяют регулировать доступ к данным и делегировать ответственность, что критически важно для совместной работы и безопасности информации.
Внутренние системные операции: Для обеспечения целостности и согласованности данных в процессе выполнения CRUD-транзакций могут потребоваться специфические системные операции. Эти внутренние механизмы гарантируют, что каждая транзакция соответствует требованиям бизнес-логики и правилам безопасности, поддерживая стабильность и производительность платформы.
Важно отметить, что источник запроса не влияет на его категоризацию как Dataverse запрос. Независимо от того, происходит ли взаимодействие с данными через браузер, мобильное приложение, или же через сторонние интеграции с использованием API, все эти операции классифицируются как Dataverse запросы. Это подчеркивает универсальность и централизованность Dataverse как основы для хранения и обработки данных в экосистеме Power Platform.
Что считается за Power Automate запрос?
При работе с Power Automate важно понимать, что каждое действие в рамках процесса автоматизации считается отдельным запросом к API. Это означает, что для учета лимитов Power Platform следует внимательно относиться к структуре создаваемых flow. Рассмотрим детальнее, какие операции учитываются как запросы:
Триггеры: Каждый триггер, запускающий flow, считается за один запрос. Это включает в себя все типы триггеров, будь то ручной запуск, автоматический запуск по условию или запуск по расписанию.
Действия (Actions): Каждое действие внутри flow также считается за один запрос. Это означает, что создание переменной, обращение к внешнему API, получение данных из базы – каждый такой шаг увеличивает счетчик использованных запросов.
Циклы и итерации: Особое внимание стоит уделить действиям, помещенным в циклы. Количество запросов в таком случае умножается на количество итераций цикла. Если в вашем flow присутствует цикл с большим количеством повторений, это может значительно увеличить общее количество запросов.
Повторные попытки и пагинация (Retries and Pagination): Любые дополнительные запросы, связанные с повторными попытками выполнения действий (retries) или обработкой пагинации данных, также учитываются. Это значит, что в ситуациях, когда необходимо повторить определенное действие из-за ошибки или обработать большой объем данных с пагинацией, общее количество запросов возрастает.
Основной генератор запросов в Power Automate — это, без сомнения, циклы. Наличие в циклах сложной логики и большое количество итераций могут привести к генерации значительного количества запросов. Понимание этих аспектов критически важно для оптимизации использования ресурсов Power Platform и избегания превышения установленных лимитов по API запросам.
Переходной период
Переходной период в контексте использования Power Platform означает временное смягчение ограничений на API запросы, установленных Microsoft. В течение этого времени, лимиты запросов становятся менее строгими, и их количество значительно увеличивается, что дает пользователям дополнительную гибкость в использовании сервисов. Этот период предназначен для того, чтобы компании могли адаптировать свои системы и процессы к будущим стандартным ограничениям, не испытывая при этом проблем с производительностью своих решений на Power Platform.
Завершится переходный период с момента, когда специализированные отчеты по использованию API станут общедоступны (general availability). С этого момента, у всех клиентов будет шесть месяцев на анализ своего использования API и настройку систем с целью соответствия установленным лимитам, чтобы избежать превышения и возможных ограничений на использование сервисов.
Важно понимать различие между лимитами для обычных пользователей и application users. Например, общий лимит в 500 тысяч запросов относится к application users, тогда как обычные пользователи, использующие CRM, подпадают под лимит в 40 тысяч запросов. Превышение этих лимитов влечет за собой ограничения, применяемые к аккаунту пользователя.
В контексте Power Automate, важно учитывать, кто является владельцем (owner) flow. Если flow запускается вручную, то за использование лимитов отвечает пользователь, инициировавший запуск. Для автоматизированных flow, лимиты распределяются исходя из аккаунта владельца. Это означает, что в зависимости от конфигурации, лимиты могут быть исчерпаны быстрее, если в процессах используются аккаунты с ограниченным количеством запросов. Также стоит отметить, что application users могут быть назначены владельцами flow, что влияет на распределение доступных запросов на тенант.
Проблематика переходного периода также касается использования внешних коннекторов, например, для доступа к SharePoint. Здесь возникают сложности с определением, какие запросы будут учитываться в рамках установленных лимитов, особенно если коннектор используется под учетной записью отличной от владельца flow. Такие ситуации требуют дополнительного анализа и понимания механизмов учета запросов.
В целом, переходный период предоставляет организациям время для анализа и оптимизации своего использования Power Platform, с целью минимизации рисков превышения лимитов и обеспечения непрерывной работы своих сервисов и приложений.
Анализ Power Platform запросов
Анализ запросов в Power Platform представляет собой фундаментальный элемент для обеспечения эффективного использования ресурсов и предотвращения превышения установленных лимитов API. Отчетность по израсходованным API запросам делится на три ключевые категории, каждая из которых отражает различные аспекты использования ресурсов.
Отчеты по пользователям (Licensed User Reports): Эта категория фокусируется на анализе запросов, совершенных лицензированными пользователями. Отчеты показывают, как активно пользователи взаимодействуют с системой, и помогают выявить тех, кто может превышать установленные лимиты. Например, каждому пользователю с платной лицензией может быть выделено до 40 тысяч запросов в сутки, и отчеты помогут отслеживать использование этих запросов.
Отчеты по потокам (Flow Reports): Эти отчеты предоставляют информацию о количестве запросов, потребляемых отдельными потоками (flows) в Power Automate. Если на flow есть лицензия, то этот отчет покажет, сколько запросов было израсходовано данным потоком. Это особенно полезно для мониторинга сложных автоматизаций, где каждое действие или триггер считается отдельным запросом.
Отчеты по нелицензированным пользователям (Non-Licensed User Reports): Отчеты в этой категории сосредоточены на использовании запросов пользователями или системами, не имеющими прямой лицензии. Это включает в себя приложения или системные аккаунты, которые взаимодействуют с Power Platform. Эти отчеты помогают понять, как внешние или автоматизированные сервисы используют ресурсы платформы и как это влияет на общую производительность системы.
Все эти отчеты доступны в Power Platform Admin Center, где администраторы могут сгенерировать и анализировать данные по использованию API за интересующий период. Эта возможность дает полное представление о загрузке системы и помогает принимать информированные решения по оптимизации работы приложений и управлению лицензиями. Регулярный анализ этих отчетов не только предотвращает нежелательные сбои из-за превышения лимитов, но и способствует более эффективному распределению ресурсов внутри организации.
Пример отчета по licensed user
Пример отчета по использованию запросов лицензированным пользователем предоставляет подробный анализ использования API в Power Platform. В таком отчете отражается важная информация о каждом лицензированном пользователе, включая идентификатор среды и ее имя, что позволяет точно определить, где были сделаны запросы.
Особое внимание уделяется уникальному идентификатору пользователя, или "caller ID", который маппится с Azure Active Directory ID, но фактически является Object ID в Microsoft Entra. Этот идентификатор не совпадает с идентификатором пользователя в CRM, что важно для точной идентификации и анализа активности пользователя. Для получения информации о конкретном пользователе необходимо использовать Microsoft Entra, что добавляет дополнительный уровень безопасности и приватности.
В отчете также указывается тип вызывающего пользователя, который в случае лицензированных пользователей обозначен как "юзер", показывая, что отчет касается действий реальных пользователей системы.
Значимой частью отчета является временной промежуток, за который предоставляется анализ - например, одни сутки, с указанием конкретной даты. Это позволяет понять, насколько активно использовалась система в определенный временной отрезок.
Отчет детализирует количество запросов, доступное пользователю, и сколько из них было использовано. Например, если указано 88 тысяч запросов, это может свидетельствовать о наличии у пользователя более дорогой лицензии, по сравнению с стандартными 40 тысячами запросов. Это дает понять, насколько велика нагрузка на систему со стороны каждого пользователя и как это соотносится с их лицензионными возможностями.
Далее, отчет разбивает использование запросов по категориям: Dataverse, Power Automate и Power Apps, позволяя увидеть, какие именно сервисы были задействованы пользователем. Общее количество использованных запросов ("total consumed") представляет сумму по всем категориям, давая целостное представление о активности пользователя в рамках Power Platform.
Таким образом, отчет по лицензированному пользователю предоставляет комплексный анализ использования API, что позволяет администраторам и менеджерам платформы более эффективно управлять нагрузкой и распределением ресурсов, а также планировать необходимые корректировки в лицензировании или использовании сервисов.
Пример отчета по non-licensed user
Отчеты по использованию запросов non-licensed user в Power Platform весьма похожи на отчеты для лицензированных пользователей, однако имеют ряд особенностей, отражающих уникальные аспекты нелицензированных аккаунтов и системных взаимодействий. Ключевым отличием является указание общего лимита запросов, доступного на уровне тенанта, который может достигать до 10 миллионов запросов, в зависимости от количества и типа приобретенных лицензий.
Особое внимание в отчете уделяется идентификатору сущности, инициировавшей запрос (caller ID). В отличие от отчетов по лицензированным пользователям, где caller ID обычно связан с конкретным пользователем и его Object ID в Microsoft Azure Active Directory, в отчетах по нелицензированным пользователям этот идентификатор может вызывать затруднения при идентификации. Это связано с тем, что в документации не всегда четко указано, к какому типу сущности относится данный идентификатор, и он не всегда соответствует известным Application ID или Object ID. Исследование показывает, что некоторые из этих идентификаторов могут быть связаны с внутренними приложениями Microsoft, необходимыми для работы Dynamics и других сервисов Power Platform.
В отчете также указывается тип колонки (column type), который может быть классифицирован как system или non-interactive user application, указывая на системные запросы или запросы от приложений без интерактивного доступа пользователя. Тип ресурса (Resource type) может включать не только Dataverse, но и другие компоненты Power Platform, такие как Power Apps и Power Automate, отражая широкий спектр возможных взаимодействий в рамках платформы.
Отчет далее детализирует категорию счетчика (Meter category) и подкатегорию (Meter subcategory), предоставляя более глубокое понимание типов запросов и их назначения. Временные рамки и количество использованных запросов по каждой категории и подкатегории дополнительно помогают организациям оценить и оптимизировать использование ресурсов Power Platform, предотвращая превышение установленных лимитов.
Эта детализация отчетов по нелицензированным пользователям подчеркивает важность глубокого понимания механизмов работы и лимитов Power Platform для эффективного управления и оптимизации использования ресурсов, особенно в крупных организациях с широким спектром внедренных приложений и сервисов. Надежда на то, что Microsoft со временем предоставит более полную документацию, помогает снизить сложности идентификации и управления запросами от нелицензированных источников, улучшая прозрачность и контроль за использованием ресурсов.
Заключение
В заключение, ключевым аспектом эффективного использования Power Platform является не только понимание и управление лимитами API запросов, но и осознание потенциальных последствий их превышения. Как показывает практика, незначительное превышение установленных лимитов обычно не влечет за собой немедленных санкций со стороны Microsoft. Однако существенное превышение, например, в десять раз, может привести к возвращению статуса 429 (Too Many Requests), что существенно замедлит обработку запросов и может даже временно остановить выполнение определенных операций, например, в Power Automate.
Длительное превышение лимитов способно "застопорить" систему на неопределенное время, от часов до дней или даже недель, что может серьезно нарушить работоспособность бизнес-процессов и доступ к критически важным сервисам. Такие случаи не только демонстрируют важность соблюдения установленных ограничений, но и подчеркивают значимость активного мониторинга и анализа использования API через специализированные отчеты.
В контексте управления запросами и лимитами, предоставляемыми Power Platform, организациям необходимо регулярно анализировать доступные отчеты, чтобы обеспечить оптимальное использование ресурсов и предотвратить потенциальные перебои в работе. Это позволит не только избежать неприятных сюрпризов, связанных с превышением лимитов, но и способствовать более эффективному планированию ресурсов и лицензирования, а также адаптации архитектуры приложений под текущие и будущие потребности бизнеса.
Таким образом, осознанное управление API запросами и внимательное отношение к лимитам становятся неотъемлемой частью успешной работы с Power Platform, обеспечивая стабильность и надежность системы на долгосрочную перспективу.
Рекомендации
Мониторинг использования запросов: Регулярно проверяйте отчеты использования в Power Platform Admin Center, чтобы отслеживать текущее потребление и предотвращать неожиданное превышение лимитов.
Оптимизация запросов: Анализируйте ваши процессы и приложения на предмет неэффективного использования запросов. Используйте пакетные операции, кэширование данных и другие техники для снижения количества запросов к API.
Планирование расширения лицензий: Если анализ показывает, что существующие лимиты не соответствуют потребностям вашей организации, рассмотрите возможность приобретения дополнительных лицензий или перехода на более подходящие планы лицензирования.
Использование альтернативных решений: Для некоторых задач могут подойти другие продукты и сервисы Microsoft, не требующие интенсивного использования API Power Platform. Изучите возможности интеграции с такими инструментами, как Azure Logic Apps, для расширения функционала без дополнительной нагрузки на лимиты Power Platform.
Обучение и соблюдение лучших практик: Обеспечьте, чтобы ваша команда разработчиков и пользователей была информирована о лимитах запросов и лучших практиках их использования. Регулярное обучение может помочь избежать распространенных ошибок и оптимизировать использование платформы.
Автоматизация уведомлений о лимитах: Настройте уведомления о приближении к лимитам запросов, чтобы вовремя реагировать на возможные проблемы и предпринимать необходимые действия до того, как сервисы будут затронуты.
Comentarios