Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Веб-API проверки Power Apps предоставляет механизм для выполнения статических проверок на соответствие настройкам и расширениям платформы Microsoft Dataverse. Это доступно для создателей и разработчиков, чтобы можно было выполнить проверку решений с широким статическим анализом ваших решений по набору правил оптимальной работы и быстро выявить эти проблемные закономерности. Служба предоставляет логику функции проверки решений на портале Power Apps Maker и включается в состав автоматизации приложений, отправленных в Marketplace. Взаимодействие со службой напрямую таким образом позволяет анализировать решения, включенные в локальные (все поддерживаемые версии) и сетевые среды.
Для получения информации об использовании службы средства проверки из кода 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) |
|---|---|---|---|
| Публика | Preview | США | unitedstatesfirstrelease.api.advisor.powerapps.com |
| Публика | Рабочий | США | unitedstates.api.advisor.powerapps.com |
| Публика | Рабочий | Европа | europe.api.advisor.powerapps.com |
| Публика | Рабочий | Азия | asia.api.advisor.powerapps.com |
| Публика | Рабочий | Australia | australia.api.advisor.powerapps.com |
| Публика | Рабочий | Япония | japan.api.advisor.powerapps.com |
| Публика | Рабочий | India | india.api.advisor.powerapps.com |
| Публика | Рабочий | Canada | 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 |
| Публика | Рабочий | Польша | poland.api.advisor.powerapps.com |
| Публика | Рабочий | Италия | italy.api.advisor.powerapps.com |
| Публика | Рабочий | Правительство США | gov.api.advisor.powerapps.us |
| Публика | Рабочий | Правительство США L4 | high.api.advisor.powerapps.us |
| Публика | Рабочий | US Government L5 (DOD) | mil.api.advisor.appsplatform.us |
| Публика | Рабочий | Управляется в Китае компанией 21Vianet | china.api.advisor.powerapps.cn |
Замечание
Вы можете использовать географию предварительной версии для более раннего включения последних функций и изменений. Однако обратите внимание, что предварительная версия использует только США Azure регионы.
Управление версиями
Хотя это и не обязательно, рекомендуется включить параметр строки запроса api-version в желаемую версию API-интерфейса. Текущая версия API — версия 2.0 для наборов правил и правил, а также версия 1.0 для всех остальных запросов. Например, следующий набор правил – это HTTP-запрос, указывающий на использование версии 2.0 API-интерфейса:
https://unitedstatesfirstrelease.api.advisor.powerapps.com/api/ruleset?api-version=2.0
Если не указано, по умолчанию используется последняя версия API-интерфейса. Использование явного номера версии рекомендуется, так как версия увеличивается, если будут внесены критические изменения. Если номер версии указан в запросе, будет обеспечена поддержка обратной совместимости в более поздних (численно больших) версиях.
Наборы правил и правила
Для выполнения проверки Power Apps требуется список правил. Эти правила могут быть предоставлены в форме отдельных правил или группы правил, называемой набором правил. Набор правил — это удобный способ указать группу правил вместо того, чтобы указывать каждое правило отдельно. Например, функция средства проверки решения использует набор правил с именем Средство проверки решений. Когда новые правила добавляются или удаляются, служба будет автоматически включает эти изменения, не требуя каких-либо изменений потребляющим приложением. Если вам требуется, чтобы список правил не изменялся автоматически, как описано выше, то правила можно указывать индивидуально.
Наборы правил могут содержать одно правило или несколько правил без ограничений. Правило может не входить ни в какой набор правил или входить в несколько наборов правил. Вы можете получить список всех наборов правил, вызвав API-интерфейс следующим образом: [Geographical URL]/api/ruleset. Для этой конечной точки требуется проверка подлинности.
Набор правил средства проверки решений
Набор правил средства проверки решений содержит набор эффективных правил, которые имеют ограниченные шансы на ложные срабатывания. Если анализ выполняется с существующим решением, рекомендуется начать с этого набора правил. Этот набор правил используется функцией средства проверки решений.
Набор правил сертификации Marketplace
При публикации приложений в Marketplace необходимо получить сертификат приложения. Приложения, опубликованные в Marketplace , должны соответствовать высокому стандарту качества. Набор правил сертификации Marketplace содержит правила, которые являются частью набора правил проверки решения, а также другие правила, чтобы обеспечить публикацию только высококачественных приложений в магазине. Некоторые из правил сертификации Marketplace более подвержены ложным срабатываниям и могут требовать дополнительного внимания при разрешении.
Найдите идентификатор арендатора
Идентификатор вашего клиента необходим для взаимодействия с 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();
Полный рабочий код см. в веб-API Быстрое начало: пример.
После получения токена рекомендуется предоставлять этот же токен для последующих вызовов в жизненном цикле запроса. Однако другие запросы, вероятно, потребуют получения нового токена по соображениям безопасности.
Безопасность транспорта
Для лучшего в своем классе шифрования служба средства проверки поддерживает связь только с использованием протокола Transport Layer Security (TLS) 1.2 и выше. Для получения рекомендаций по лучшим практикам использования TLS в .NET, см. Руководство по лучшим практикам по протоколу Transport Layer Security (TLS) в .NET Framework.
Формат отчета
Результатом анализа решения является ZIP-файл, содержащий один или несколько отчетов в стандартном формате JSON. Формат отчета основан на результатах статического анализа, называемого форматом обмена результатами статического анализа (Static Analysis Results Interchange Format, SARIF). Есть инструменты, доступные для просмотра и взаимодействия с документами SARIF. Подробнее см. на этом веб-сайте. Служба использует вторую версию стандарта OASIS.
См. также
Получение списка наборов правил
Получение списка правил
Отправка файла
Вызов задания анализа
Проверка состояния задания анализа