Використання веб-API засобу перевірки Power Apps
Засіб перевірки веб-API Power Apps надає механізм для виконання статичного аналізу настроювань і розширень платформи Microsoft Dataverse. Розробники можуть використовувати його, щоб виконувати широкий спектр перевірок статичного аналізу своїх рішень та швидко визначати проблемні схеми, маючи для цього набір кращих рекомендацій. Ця служба містить логіку для функції перевірки рішення на порталі розробника Power Apps і включається як частина автоматизації для програм, надісланих до AppSource. Безпосередня взаємодія зі службою таким чином дає змогу аналізувати рішення, які входять до складу локального (усі підтримувані версії) та онлайн-середовищ.
Для отримання відомостей про використання служби перевірки з коду PowerShell зверніться до розділу Робота з рішеннями за допомогою PowerShell.
Нотатка
- Застосування засобу перевірки Power Apps не гарантує, що імпорт рішення буде успішним. Засобу перевірок у режимі статичного аналізу, що виконуються щодо рішення, не відомий стан налаштування середовища призначення, а успішний імпорт може залежати від інших рішень або конфігурацій у середовищі.
Альтернативні підходи
Перш ніж читати подробиці про те, як взаємодіяти на найнижчому рівні з веб-API, розгляньте можливість використання нашого модуля PowerShell, Microsoft.PowerApps Checker.PowerShell, натомість. Це повністю підтримуваний інструмент, доступний у Галереї PowerShell. Поточне обмеження полягає в тому, що для нього потрібна програма Windows PowerShell. Якщо ви не можете виконати цю вимогу, то найкращим підходом є безпосередня взаємодія з API.
Початок роботи
Важливо зазначити, що аналіз розчину може призвести до тривалого процесу. Зазвичай це може зайняти від шістдесяти (60) секунд до п’яти (5) хвилин залежно від різних факторів, таких як кількість, розмір і складність налаштувань і коду. Потік аналізу є багатоступінчастим і асинхронним, починаючи із запуску завдання аналізу зі станом API, що використовується для запиту виконання завдання. Приклад потоку для аналізу описано нижче.
- Отримати OAuth токен
- Передавання виклику (для кожного файлу паралельно)
- Аналіз викликів (запуск завдання аналізу)
- Стан виклику до завершення (циклічно, з паузою між викликами до сповіщення про завершення або досягнення порогового значення)
- Завантаження результатів з наданого URI SAS
Кілька варіантів наведено нижче.
- Додайте підстановку набору правил або правила як попереднього кроку. Але буде трохи швидше передати ідентифікатор налаштованого або жорстко кодованого набору правил. Рекомендовано використовувати набір правил, який відповідає вашим потребам.
- Можна не використовувати механізм передавання (див. розділ про передавання, щоб дізнатися про обмеження).
Потрібно визначити такі вимоги:
Зверніться до наступних статей для отримання документації щодо окремих API:
Отримання списку наборів правил
Отримайте список правил
Завантажити файл
Аналіз виклику
Перевірка статусу аналізу
Визначення географічного регіону
Коли ви взаємодієте зі службою Power Apps перевірки, файли тимчасово зберігаються в Azure разом із створеними звітами. За допомогою API для певного географічного регіону можна керувати тим, де зберігаються дані. Запити щодо кінцевої географічної точки спрямовуються до регіональної інсталяції, виходячи з критерію найкращої продуктивності (затримки для запитувача). Після надходження запиту до регіональної інсталяції служби вся обробка та збережені дані залишаються в цьому конкретному регіоні. Деякі відповіді API повертають URL-адреси регіональних екземплярів для наступних запитів, як тільки завдання аналізу спрямовується до певного регіону. У кожному регіоні може бути розгорнута різна версія служби в будь-який момент часу. Використання різних версій сервісу обумовлено багатоетапним процесом безпечного розгортання, що забезпечує повну сумісність версій. Отже, для кожного виклику API в життєвому циклі аналізу має використовуватися одне й те саме географічне розташування. Окрім цього, це може скоротити загальний час виконання, оскільки це може запобігти пересиланню даних на далекі відстані дротовими з’єднаннями. Нижче наведено доступні географічні регіони.
Центр обробки даних Azure | Ім'я | Місцезнаходження | Базовий URI |
---|---|---|---|
Громадська діяльність | Ознайомлення | Сполучені Штати | unitedstatesfirstrelease.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Сполучені Штати | unitedstates.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Європа | europe.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Азія | asia.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Австралія | australia.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Японія | japan.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Індія | india.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Канада | canada.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Південна Америка | southamerica.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Сполучене Королівство | unitedkingdom.api.advisor.powerapps.com |
Громадська діяльність | Виробництво | Франція | france.api.advisor.powerapps.com |
Загальнодоступні | Виробниче | Німеччина | germany.api.advisor.powerapps.com |
Загальнодоступні | Виробниче | Об'єднані Арабські Емірати | unitedarabemirates.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Швейцарія | switzerland.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Південно-Африканська Республіка | southafrica.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Південна Корея | korea.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Норвегія | norway.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Сінгапур | singapore.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | Швеція | sweden.api.advisor.powerapps.com |
Загальнодоступне | Виробниче | US Government | gov.api.advisor.powerapps.us |
Громадська діяльність | Виробництво | Державні установи США Р4 | high.api.advisor.powerapps.us |
Громадська діяльність | Виробництво | Державні установи США Р5 (Міністерство оборони) | mil.api.advisor.appsplatform.us |
Громадська діяльність | Виробництво | Китай із оператором 21Vianet | china.api.advisor.powerapps.cn |
Нотатка
Можна використати попередній перегляд географічного регіону, щоб раніше включити найновіші функції та зміни. Проте зверніть увагу, що в області попереднього перегляду використовуються лише регіони Сполучених Штатів Azure.
Керування версіями
Хоча це не обов’язково, рекомендується включити параметр рядка запиту api-version із бажаною версією API. Поточна версія API — 2.0 для наборів правил і правил і 1.0 для всіх інших запитів. Наприклад, наступний набір правил – це HTTP-запит, який визначає використання версії API 2.0:
https://unitedstatesfirstrelease.api.advisor.powerapps.com/api/ruleset?api-version=2.0
Якщо не вказано, за замовчуванням використовується остання версія API. Рекомендується використовувати явний номер версії, оскільки версія збільшується, якщо вводяться несумісні зміни. Якщо номер версії задано в запиті, підтримку зворотної сумісності в пізніших версіях (номер яких більше) буде збережено.
Набори правил і правила
Засобу перевірки Power Apps потрібен список правил під час виконання. Ці правила можуть бути надані у формі окремих правил або групи правил, яка називається набір правил. Набір правил – це зручний спосіб задати групу правил замість того, щоб вказувати кожне правило окремо. Наприклад, засіб перевірки рішень використовує набір правил, який називається Засіб перевірки рішень. У міру додавання або видалення нових правил сервіс включає ці зміни автоматично, не вимагаючи будь-яких змін з боку програми-споживача. Якщо потрібно, щоб список правил не змінювався автоматично, як описано вище, ці правила можна вказувати окремо.
Набори правил можуть мати одне або кілька правил без обмеження. Правило може не належати до набору правил або належати до кількох наборів правил. Ви можете ознайомитися зі списком усіх наборів правил, викликавши API наступним чином: [Geographical URL]/api/ruleset
. Ця кінцева точка тепер вимагає автентифікації.
Набір правил засобу перевірки рішень
Засіб перевірки рішень містить набір найвпливовіших правил, які мають обмежений шанс помилкових результатів. Якщо ви проводите аналіз наявного рішення, радимо почати з цього набору правил. Цей набір правил використовується функцією перевірки рішень.
Набір правил сертифікації AppSource
Під час публікації програм на AppSource ви повинні сертифікувати свою програму. Заявки, що публікуються на, AppSource повинні відповідати високим стандартам якості. Набір AppSource правил сертифікації містить правила, які є частиною набору правил перевірки рішень, а також інші правила, що гарантують, що в магазині публікуються лише високоякісні програми. Деякі правила AppSource сертифікації більш схильні до помилкових спрацьовувань і можуть вимагати більшої уваги для вирішення.
Пошук ідентифікатора клієнта
Ідентифікатор клієнта потрібен для взаємодії з API, для яких потрібен маркер. Додаткові відомості про отримання ідентифікатора клієнта див. в цій статті. Крім того, для отримання ідентифікатора клієнта можна використовувати команди PowerShell. У наведеному нижче прикладі командлети застосовуються в модулі AzureAD.
# Login to Microsoft Entra ID as your user
Connect-AzureAD
# Establish your tenant ID
$tenantId = (Get-AzureADTenantDetail).ObjectId
Ідентифікатор клієнта — це значення властивості ObjectId
, яке повертається з Get-AzureADTenantDetail
. Ви також можете побачити його після входу в систему за допомогою командлета Connect-AzureAD у вихідних даних командлета. В даному випадку він буде названий TenantId
.
Автентифікація та авторизація
Для запиту правил і наборів правил не OAuth потрібен токен, але всі інші API вимагають цей токен. Ці API підтримують пошук авторизації, викликаючи будь-який API, для якого потрібен маркер. Відповіддю є неавторизований код статусу HTTP 401 із заголовком WWW-Authenticate, URI авторизації та ідентифікатором ресурсу. Крім того, слід надати ідентифікатор клієнта у заголовку x-ms-tenant-id
. Зверніться до розділу Power Apps Автентифікація та авторизація Checker для отримання додаткової інформації. Нижче наведено приклад заголовка відповіді, що повертається із запиту API:
WWW-Authenticate →Bearer authorization_uri="https://login.microsoftonline.com/0082fff7-33c5-44c9-920c-c2009943fd1e", resource_id="https://api.advisor.powerapps.com/"
Отримавши ці відомості, ви можете використовувати бібліотеку Microsoft Authentication Library (MSAL) або інший механізм для отримання токена. Нижче наведено приклад того, як це можна зробити за допомогою C# та бібліотеки MSAL .NET :
// Substitute your own environment URL here.
string resource = "https://<env-name>.api.<region>.dynamics.com";
// Example Microsoft Entra app registration.
// For your custom apps, you will need to register them with Microsoft Entra ID yourself.
// See https://docs.microsoft.com/powerapps/developer/data-platform/walkthrough-register-app-azure-active-directory
var clientId = "51f81489-12ee-4a9e-aaae-a2591f45987d";
var redirectUri = "http://localhost"; // Loopback required for the interactive login.
var authBuilder = PublicClientApplicationBuilder.Create(clientId)
.WithAuthority(AadAuthorityAudience.AzureAdMultipleOrgs)
.WithRedirectUri(redirectUri)
.Build();
var scope = resource + "/.default";
string[] scopes = { scope };
AuthenticationResult tokenResult =
await authBuilder.AcquireTokenInteractive(scopes).ExecuteAsync();
Повний робочий код можна знайти у зразку QuickStart для веб-API.
Після того, як ви придбали токен, рекомендується надати той самий токен наступним дзвінкам протягом життєвого циклу запиту. Однак більша кількість запитів може вимагати придбання нового токена з міркувань безпеки.
Безпека транспортування
Для найкращого у своєму класі шифрування служба перевірки підтримує зв’язок лише з використанням Transport Layer Security (TLS) 1.2 або вище. Для рекомендацій з використання кращих методів .NET з TLS див. Рекомендації з використання протоколу Transport Layer Security (TLS) з .NET Framework.
Формат звіту
Результатом аналізу рішення є ZIP-файл, що містить один або кілька звітів у стандартизованому форматі JSON. Формат звіту базується на результатах статичного аналізу, який називається форматом Static Analysis Results Interchange Format (SARIF). Існують інструменти, доступні для перегляду та взаємодії з документами SARIF. Додаткові відомості див. на цьому веб-сайті. У сервісі використовується друга версія стандарту OASIS.
Див. також
Отримання списку наборів правил
Отримайте список правил
Завантажити файл
Аналіз виклику
Перевірка статусу аналізу