Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Microsoft Power Platform предоставляет способ масштабирования бизнес-приложений при интеграции с облачными службами корпоративного уровня для операций с большим объемом. Масштабируемая система уведомлений использует эту возможность для отправки SMS и напоминаний по электронной почте для встреч, хранящихся в Microsoft Dataverse. К ключевым функциям относятся:
- Уведомления автоматически активируются на одну неделю, один день и один час до встречи.
- Возможность обновлять или отменять уведомления при изменении или отмене встреч.
- Power Apps служит пользовательским интерфейсом для эффективного управления встречами.
- Поддерживает тысячи уведомлений в день, сохраняя надежность и производительность.
Система использует Служебная шина Azure для планирования больших объемов, Функции Azure для обработки и доставки, а также Dataverse для постоянного отслеживания встреч и уведомлений. Уведомления отправляются через SendGrid для электронной почты и Twilio или Службы коммуникации Azure для SMS.
Эта архитектура обеспечивает масштабируемость, надежность и удобство обслуживания, преодолевая ограничения, связанные с использованием исключительно Power Automate для оркестрации больших объемов уведомлений.
Подсказка
В этой статье приведен пример сценария и обобщенный пример архитектуры для иллюстрации отправки SMS-напоминаний по электронной почте для встреч, хранящихся в Dataverse. Пример архитектуры можно модифицировать для различных сценариев и отраслей.
Диаграмма архитектуры
Рабочий процесс
Системный рабочий процесс надежно отправляет уведомления в правильное время и поддерживает обновления и отмены:
Создание встречи: пользователи создают встречи с помощью приложения холста Power Apps. Приложение записывает данные встречи непосредственно в Dataverse, обеспечивая доступ только авторизованных пользователей к данным на основе ролей безопасности.
Запуск событий: когда создается, обновляется или отменяется встреча, Dataverse запускает процесс на стороне сервера, такой как подключаемый модуль, веб-перехватчик или упрощенный поток Power Automate. Это событие инициирует логику планирования.
Планирование уведомлений: Функция планирования Azure вычисляет время уведомления за одну неделю, один день и один час до встречи. Затем он создает соответствующие записи уведомлений в Dataverse и планирует сообщения в служебной шине Azure, сохраняя порядковые номера для будущих обновлений или отмен.
Обновления встреч: если встреча изменена, функция планировщика отменяет ранее запланированные уведомления, используя порядковые номера служебной шины. Он обновляет записи уведомлений в Dataverse и перепланирует уведомления на основе новых сведений о встрече.
Отмена встречи: Когда встреча отменяется, функция планировщика удаляет все ожидающие сообщения из Служебная шина Azure и обновляет соответствующие записи уведомлений в Dataverse, отмечая их как отменённые.
Доставка уведомлений. Функция доставки Azure обрабатывает запланированные сообщения из служебной шины Azure. Он отправляет уведомления по электронной почте через SendGrid и SMS через Twilio или Службы коммуникации Azure. После отправки функция обновляет запись уведомлений с состоянием, повторными попытками и любыми сведениями об ошибке.
Мониторинг и наблюдаемость: Application Insights и Azure Monitor отслеживают выполнение функций, работоспособность очереди, успешность доставки и сбои. Очереди недоставленных сообщений в служебная шина сохраняют недоставленные сообщения для последующего анализа.
Компоненты
Power Apps (приложение Canvas): приложение холста Power Apps служит основным пользовательским интерфейсом для управления встречами. Он позволяет пользователям создавать, обновлять или отменять встречи в интуитивно понятном интерфейсе с низким кодом. Приложение на основе холста напрямую взаимодействует с Dataverse для чтения и записи записей встреч и уведомлений. Он также предоставляет отзывы пользователя о успешном создании, обновлении или отмене встреч в режиме реального времени. Пользовательский интерфейс предназначен для проверки записи данных, обработки конфликтов, таких как перекрывающиеся встречи, и предоставления локализованных часовых поясов для уведомлений.
-
Таблица встреч: Dataverse выступает в качестве системы записи для всех сведений о встрече. Каждая запись встречи включает такие сведения, как пациент или пользователь, время встречи, тип службы и состояние. Таблица встреч предназначена для активации событий при выполнении операций создания, обновления или удаления. Функция Планировщика Azure прослушивает эти события для вычисления и планирования уведомлений. Dataverse обеспечивает встроенную безопасность с помощью управления доступом на основе ролей, разрешений на уровне полей и аудита, что гарантирует, что конфиденциальная информация о встрече доступна только правильным пользователям. Кроме того, интеграция с Power Platform обеспечивает доступ с низкой задержкой и простое взаимодействие с другими компонентами.
Таблица уведомлений: в таблице уведомлений хранятся метаданные для каждого запланированного уведомления, отслеживание канала (SMS или электронной почты), запланированное время доставки, состояние (запланированное, отправленное, неудачное или отмененное), количество попыток и связанный номер последовательности служебной шины. Система обеспечивает отслеживание, составление отчетов и обработку ошибок в режиме реального времени для всех уведомлений, сохраняя эти данные в Dataverse. Таблица позволяет администраторам проверять журнал доставки, отслеживать неудачные попытки и при необходимости выполнять корректирующие действия. Она также поддерживает автоматические обновления, активированные изменениями встречи, гарантируя, что уведомления остаются точными.
-
Планировщик: Функция планировщика вычисляет время уведомления на основе сведений о встрече. Он определяет напоминания на одну неделю, один день и один час до встречи и создает соответствующие записи в Dataverse. Кроме того, он выполняет планирование сообщений в Служебная шина Azure, сохраняет порядковые номера, чтобы обеспечить возможность их последующей отмены или изменения расписания. Эта функция может обрабатывать большие объемы встреч без снижения производительности и гарантирует идемпотентность, чтобы не запланировать повторяющиеся уведомления. Его бессерверная конструкция позволяет автоматически масштабироваться на основе нагрузки событий и обеспечивает эффективность работы.
Delivery: Сообщения из Служебная шина Azure обрабатываются функцией доставки, когда наступает запланированное время их доставки. Он определяет правильный канал для каждого уведомления, например электронной почты через SendGrid или SMS через службы коммуникации Twilio/Azure, и отправляет сообщение соответствующим образом. После доставки он обновляет запись уведомления в Dataverse с данными о состоянии и повторных попытках в случае сбоя. Функция также реализует механизмы обработки ошибок, ведения журнала и повторных попыток, обеспечивая надежную доставку сообщений при временном сбое или ограничении скорости поставщика. Она автоматически масштабируется в зависимости от количества сообщений в служебной шине, чтобы справляться с пиковыми объемами уведомлений.
Служебная шина Azure: Служебная шина Azure является основой системы планирования уведомлений. Он обеспечивает устойчивую, высокую пропускную способность и очередь сообщений по времени, обеспечивая доставку сообщений точно при необходимости. Номера последовательности позволяют отменить или перепланировать сообщения при изменении встречи, сохраняя согласованность. Служебная шина также поддерживает очереди недоставленных сообщений для записи сообщений, которые не удалось доставить после нескольких повторных попыток, позволяя администраторам исследовать и исправлять ошибки. Его возможность отделить планирование от доставки гарантирует, что система остается гибкой и масштабируемой.
Поставщики электронной почты и SMS: внешние службы коммуникации обрабатывают фактическую доставку уведомлений. SendGrid используется для отправки уведомлений по электронной почте, предоставления надежных механизмов отслеживания, аналитики и повторных попыток. Twilio и Службы коммуникации Azure предоставляют SMS-уведомления, поддерживая большой объём сообщений и обеспечивая надежность. Функция доставки взаимодействует с этими поставщиками с помощью безопасных ключей API, хранящихся в Azure Key Vault, и реализует стратегии повторных попыток для обработки временных ошибок или проблем с ограничением скорости. Благодаря аутсорсингу доставки специализированным поставщикам система обеспечивает высокую надежность и снижает операционные издержки.
Azure Key Vault. Вы можете безопасно хранить все конфиденциальные учетные данные и ключи API в Azure Key Vault. Функции Azure получают доступ к секретам с помощью управляемых удостоверений, что устраняет необходимость хранения конфиденциальных данных в файлах кода или конфигурации. Key Vault гарантирует, что он шифрует учетные данные в состоянии покоя, выполняет аудит доступа и автоматически применяет политику ротации для обеспечения соответствия безопасности.
Средства мониторинга и наблюдения: система использует Application Insights и Azure Monitor для обеспечения полной возможности наблюдения за работоспособностью и производительностью решения. Application Insights отслеживает выполнение функций, длину очереди, состояние доставки и сбои, в то время как Azure Monitor предоставляет оповещения об аномальном поведении, невыполненной работе сообщений или сбоях служб. Журналы и данные телеметрии можно использовать для устранения неполадок, оперативного анализа и планирования емкости, обеспечивая, чтобы администраторы имели информацию, необходимую для обеспечения высокой надежности и производительности.
Подробности сценария
Это решение предназначено для организаций, которые должны отправлять своевременные напоминания о запланированных встречах, таких как медицинские клиники, центры вакцинации или сервисные предприятия. Пользователи взаимодействуют с Power Apps для ввода сведений о встрече, которые хранятся в Dataverse и немедленно обрабатываются для планирования уведомлений. Система автоматически вычисляет время напоминания, например одну неделю, один день и один час до встречи, и гарантирует, что она предоставляет эти напоминания через соответствующий канал.
Система может обрабатывать тысячи ежедневных уведомлений без снижения производительности, благодаря разграничению между управлением назначениями, планированием расписания и отправкой сообщений. Это обеспечивает, что напоминания остаются точными, даже если встречи сдвигаются или отменяются путем перепланирования или динамического удаления сообщений служебная шина. Каждый шаг процесса регистрируется и отслеживается. Такой подход гарантирует, что как администраторы, так и сотрудники службы поддержки имеют представление о поведении системы и состоянии каждого отправленного уведомления.
Рекомендации
Эти соображения реализуют основы Power Platform Well-Architected — набора руководящих принципов, повышающих качество рабочей нагрузки. Дополнительные сведения см. в разделе Microsoft Power Platform Well-Architected.
Безопасность
Система интегрирует безопасность на всех уровнях, используя Microsoft Entra ID для управления идентификацией и роли Dataverse для ограничения доступа к встречам и уведомлениям. Пользователи Power Apps проходят проверку подлинности с помощью идентификатора Microsoft Entra, гарантируя, что все взаимодействия с Dataverse авторизованы и регистрируются. Функции Azure используют управляемые удостоверения для безопасного взаимодействия с Dataverse, служебная шина и Key Vault без хранения учетных данных в конфигурационных или кодовых файлах.
Храните конфиденциальные учетные данные, такие как ключи SendGrid и Twilio, только в Azure Key Vault и получайте доступ к ним с помощью управляемых идентификаторов. Вы можете дополнительно защитить обмен данными между службами Azure с помощью частных конечных точек и виртуальных сетей, что снижает уязвимость к общедоступному Интернету. Все обмены сообщениями между компонентами системы соответствуют зашифрованным стандартам связи для защиты неактивных и передаваемых данных.
Операционная эффективность
Благодаря непрерывному мониторингу, наблюдаемости и автоматическому оповещению вы достигаете операционного превосходства. Application Insights собирает подробные данные телеметрии из Функции Azure, включая время выполнения, сбои, повторные попытки и метрики производительности. Azure Monitor отслеживает работоспособность очередей Служебная шина Azure, выявляя потенциальные узкие места или задержки. Очереди недоставленных писем предоставляют механизм для записи и устранения неполадок сообщений, которые не могут обрабатываться после нескольких попыток.
Администраторы могут настроить оповещения, чтобы уведомить их о сбоях, связанных с обработкой сообщений, сбоями поставщика или ненормальным ростом очередей. Dataverse поддерживает путь аудита в таблице уведомлений, позволяя администраторам отслеживать жизненный цикл каждого уведомления. Так как функции Azure являются бессерверными и масштабируются автоматически, система может реагировать на внезапный рост объема сообщений без вмешательства вручную, обеспечивая согласованную производительность и время простоя.
Эффективность работы
Архитектура оптимизирована для обеспечения высокой производительности и масштабируемости. Служебная шина Azure обеспечивает эффективную обработку запланированных уведомлений без дополнительных расходов, которые вызывали бы задержки, основанные на Power Automate. Разделение планирования и доставки на отдельные функции позволяет каждому компоненту масштабироваться независимо по требованию. Функция доставки дает преимущества автоматического масштабирования, позволяя обрабатывать пики исходящих сообщений без влияния на системы, доступные для пользователей.
Кроме того, использование управляемых удостоверений и стратегий кэширования для проверки подлинности поставщика снижает задержку во время доставки сообщений. Система сводит к минимуму ненужные затраты на хранилище, сохраняя только важные метаданные в Dataverse и поддерживая стратегии архивации для старых уведомлений. Сочетая возможности Power Platform с масштабируемой инфраструктурой обмена сообщениями Azure, система обеспечивает быструю, эффективную и экономичную доставку уведомлений в масштабе всей организации.
Участник
Ведение этой статьи осуществляет Microsoft. Следующие авторы написали эту статью.
Основные авторы:
- Саммит Bajracharya, архитектор решений