Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Подключаемый модуль Power Pages для GitHub Copilot CLI и Claude Code предоставляет рабочий процесс, поддерживаемый ИИ, для создания, развертывания и управления современными сайтами одностраничных приложений (SPA) на Power Pages. Вместо того чтобы вручную создавать проекты, писать шаблонный код API и настраивать разрешения, опишите, что вам нужно на естественном языке, и плагин выполнит реализацию.
Подключаемый модуль поддерживает полный жизненный цикл разработки сайтов с помощью навыков общения, от формирования шаблонов нового сайта до развертывания его, настройки моделей данных Dataverse и настройки проверки подлинности.
Important
- Генеративный ИИ-агент для программирования, такой как GitHub Copilot CLI или Claude Code, использует навыки и рабочие процессы этого плагина для выполнения задач, связанных с Power Pages.
- Код и конфигурация, созданные агентом программирования ИИ, могут быть неточными. Проверьте, протестируйте и проверьте все созданные материалы перед утверждением или развертыванием. Перед утверждением всегда проверяйте предложения агента .
Prerequisites
Прежде чем начать, убедитесь, что у вас есть необходимое программное обеспечение и разрешения.
Требования к программному обеспечению
| Компонент | Минимальная версия | Дополнительная информация |
|---|---|---|
| Node.js | 18.0 или более поздняя | Скачать Node.js |
| Интерфейс командной строки Power Platform (PAC CLI) | 2.6.3 или более поздней версии (требуется для логики сервера) | Установка CLI PAC |
| Azure CLI | Latest | Установите Azure CLI |
| GitHub Copilot CLI или Claude Code | Latest | GitHub Copilot CLI или Claude Code |
| Расширение Visual Studio Code и Power Platform Tools (по желанию) | Latest | Скачивание VS Code и установка средств Power Platform |
Кроме того, вам понадобится следующее:
- Среда Power Platform с включенной функцией Power Pages.
- Прошедший проверку подлинности сеанс командной строки PAC, подключенный к целевой среде. Выполните
pac auth create, если еще не подключились. - Сеанс Azure CLI со входом в тот же клиент. Запустите
az login --allow-no-subscriptionsдля аутентификации.
Проверка подлинности:
Убедитесь, что вы прошли проверку подлинности с помощью pac auth list команды.
pac auth list # Should show authenticated profile
Если проверка подлинности не выполнена, выполните следующую команду:
pac auth create --environment <Instance url> # Authenticate to Power Platform
Tip
Чтобы получить URL-адрес экземпляра, перейдите на главную страницу Power Pages, нажмите на значок «Параметры» в правом верхнем углу и выберите Подробности сеанса.
Установка подключаемого модуля
Установите плагин Power Pages из marketplace. Если вы используете интерфейс командной строки GitHub Copilot, ознакомьтесь с документацией по расширениям CLI Copilot , чтобы выполнить аналогичные действия по установке. Следующие команды используют синтаксис Claude Code.
Быстрая установка (рекомендуется)
Запустите установщик, чтобы настроить все плагины с включенной автозагрузкой обновлений.
Windows (PowerShell):
iwr https://raw.githubusercontent.com/microsoft/power-platform-skills/main/scripts/install.js -OutFile install.js; node install.js; del install.js
macOS/Linux/Windows (cmd):
curl -fsSL https://raw.githubusercontent.com/microsoft/power-platform-skills/main/scripts/install.js | node
Установщик автоматически:
- Устанавливает
pacCLI, если он не установлен. - Обнаруживает доступные средства, такие как Claude Code и GitHub Copilot CLI.
- Регистрирует подключаемый модуль Marketplace и устанавливает все перечисленные подключаемые модули.
- Включает автоматическое обновление, чтобы подключаемые модули оставались текущими.
После установки перезапустите Claude Code или GitHub Copilot CLI, чтобы получить доступ к функциям плагина в виде slash-команд в сеансе агента.
Установить из маркетплейса
Откройте Claude Code в терминале.
Добавьте Microsoft Marketplace:
/plugin marketplace add microsoft/power-platform-skillsУстановите плагин Power Pages.
/plugin install power-pages@power-platform-skills
После установки подключаемого модуля перезапустите Claude Code или GitHub Copilot CLI, чтобы получить доступ к навыкам подключаемого модуля в качестве команд с косой чертой в сеансе агента.
Tip
Чтобы автоматически получать обновления в магазине приложений и навыках, включите автоматическое обновление. Используйте команду /plugin, перейдите в раздел Маркетплейсы, выберите маркеплейс и включите автоматическое обновление.
Обзор навыков
Подключаемый модуль предоставляет навыки, охватывающие полный жизненный цикл сайта Power Pages. Вызывайте каждый навык в разговоре — либо в виде команды с косой чертой, либо описывая то, что вы хотите сделать.
| Навык | командование | Что делает |
|---|---|---|
| Создание сайта | /create-site |
Шаблонирует сайт, применяет направление проектирования и создает страницы и компоненты |
| Развертывание сайта | /deploy-site |
Создает проект и загружает его в Power Pages с помощью интерфейса командной строки PAC. |
| Активация сайта | /activate-site |
Подготавливает запись веб-сайта и назначает общедоступный URL-адрес |
| Настройка модели данных | /setup-datamodel |
Создает таблицы, столбцы и связи в Dataverse |
| Добавление примеров данных (необязательно) | /add-sample-data |
Заполняет таблицы Dataverse реалистичными записями тестов |
| Интеграция веб-API | /integrate-webapi |
Генерирует типизированный код клиента API, службы и разрешения для таблиц |
| Добавление сводок по искусственному интеллекту | /add-ai-webapi |
Интегрирует в ваши страницы API суммаризации генеративного ИИ (сводку по результатам поиска и суммаризацию данных). Создает типизированную службу сводок с обработкой токена защиты от подделки, характерными для платформы программами-оболочками, подключенными точками вызова и соответствующими параметрами сайта Summarization |
| Настройка проверки подлинности | /setup-auth |
Добавляет вход, выход из системы и управление доступом на основе ролей. Поддерживает Microsoft Entra ID, Внешняя идентификация Microsoft Entra, OpenID Connect, SAML 2.0, WS-Federation, учетная запись Майкрософт, Facebook, Google и локальную проверку подлинности имени пользователя и пароля, включая конфигурации с несколькими поставщиками |
| Создание веб-ролей | /create-webroles |
Создает YAML-файлы веб-ролей для управления доступом пользователей |
| Добавление логики сервера | /add-server-logic |
Создает безопасные конечные точки JavaScript на стороне сервера для проверки, внешних вызовов API, управления секретами и операций с данными |
| Добавление облачного потока | /add-cloud-flow |
Интегрирует существующие облачные потоки Power Automate в ваш сайт для рабочих процессов утверждения, уведомлений и запланированной автоматизации. |
| Интеграция серверной части | /integrate-backend |
Анализирует прототип, определяет правильный подход (веб-API, логика сервера или облачный поток) для каждой функции и управляет полной последовательностью сборки. |
| Добавление SEO | /add-seo |
Создает robots.txt, sitemap.xml и метатеги |
| Запуск проверки безопасности | /security-review |
Координирует специализированные средства безопасности и объединяет все обнаруженные результаты в единый HTML-отчет. Включает код, зависимости, сканирование развернутого сайта, заголовки браузера, брандмауэр веб-приложения, разрешения для таблиц и конфигурацию проверки подлинности |
| Сканирование исходного кода | /scan-code |
Выполняет статический анализ и сканирование зависимостей в локальных исходных файлах; отображает результаты в шаблонах кода, уязвимых пакетах, жестко закодированных секретах и проблемах с лицензиями |
| Сканирование развернутого сайта | /scan-site |
Запускает проверку безопасности на стороне сервера на динамическом сайте, извлекает последний отчет и группирует результаты по серьезности |
| Управление заголовками безопасности браузера | /manage-headers |
Проверяет и настраивает заголовки безопасности HTTP, которые сайт отправляет в браузеры : политика безопасности содержимого, защита кадров и щелчков, обмен данными между источниками, поведение файлов cookie и связанные параметры сайта |
| Управление брандмауэром веб-приложения | /manage-firewall |
Проверяет и настраивает брандмауэр веб-приложения (WAF) на рабочем сайте: включает защиту, добавляет или удаляет IP-блоки, блоки страны, блоки пути и ограничения скорости. |
| Разрешения для таблицы аудита | /audit-permissions |
Проверяет существующие разрешения на таблицу для кода сайта и метаданных Dataverse; создает HTML-отчет сгруппирован по серьезности с предлагаемыми исправлениями |
| План развертывания | /plan-alm |
Определяет состояние проекта, собирает стратегию продвижения, отрисовывает визуальный план и управляет другими навыками управления жизненным циклом приложений (ALM) в правильном порядке. |
| Создание решения | /setup-solution |
Создает издателя и решение, добавляет компоненты Power Pages, классифицирует настройки сайта и предлагает переменные среды и секреты Azure Key Vault |
| Настроить хост конвейера | /ensure-pipelines-host |
Подготавливает или обнаруживает размещающую среду для Power Platform Pipelines |
| Настройка конвейера | /setup-pipeline |
Регистрирует определение конвейера в Dataverse и привязывает этапы повышения к целевым средам. |
| Развертывание с помощью конвейера | /deploy-pipeline |
Запускает развертывание конвейера для целевого этапа с переопределением переменных среды на уровне этапа |
| Среда принудительного связывания | /force-link-environment |
Переназначает целевую среду на новый узел Power Platform Pipelines, если конфликт узлов блокирует развертывание |
| Экспорт решения | /export-solution |
Экспортирует решение как управляемый или неуправляемый ZIP-файл с проверкой полноты перед экспортом. |
| Импорт решения | /import-solution |
Импортирует ZIP-архив решения в целевую среду, поэтапно или напрямую |
| Сайт тестирования | /test-site |
Проверяет развернутый сайт с помощью теста на основе браузера: обход страницы, проверки доступа на основе ролей и проверка веб-API |
| Диагностика развертывания | /diagnose-deployment |
Сопоставляет сбои развертывания с каталогом известных ошибок и предлагает способ устранения |
Стандартный рабочий процесс
Общий комплексный рабочий процесс следует следующей последовательности:
- /create-site : шаблон, конструктор и страницы сборки
- /deploy-site: отправка в среду Power Pages
- /activate-site : настройка общедоступного URL-адреса
- /setup-datamodel : создание таблиц Dataverse
- /add-sample-data : заполнение таблиц записями тестов
- /integrate-webapi : создание клиентского кода API и настройка разрешений
- /create-webroles: определение ролей доступа
- /setup-auth : добавление входа, выхода и пользовательского интерфейса на основе ролей
- /add-server-logic : добавление безопасных конечных точек на стороне сервера
- /add-cloud-flow: интеграция существующих потоков Power Automate
- /add-seo: оптимизация поисковой системы
- /deploy-site : отправка окончательных изменений в режиме реального времени
- /security-review : перед переходом в рабочую среду выполните сквозную проверку безопасности
- /plan-alm : перенос вашего сайта в тестовую и рабочую среды
Tip
- Вам не нужно следовать этому точному порядку. Каждый навык проверяет свои собственные предварительные требования и сообщает вам, если что-то отсутствует. Например, можно запустить
/setup-authперед/integrate-webapi, если вашему сайту сначала требуется проверка подлинности. - Если вы не уверены, какой подход использовать для каждой функции, выполните
/integrate-backend, вместо того чтобы выполнять шаги 4–10 по отдельности. Он анализирует прототип, определяет, требуется ли каждому компоненту веб-API, логика сервера или облачный поток, а также упорядочивает навыки в правильном порядке. - Чтобы добавить сводки поиска и записи, созданные ИИ, выполните команду
/add-ai-webapiпосле/integrate-webapi. Он повторно использует разрешения таблицы и настройки сайта, настроенные с помощью/integrate-webapi, поэтому запускайте его после того, как интеграция с Web API будет настроена.
Создайте сайт Power Pages
В этом пошаговом руководстве рассматривается полный жизненный цикл создания сайта Power Pages с помощью плагина, от начального этапа до развертывания. Каждый шаг описывает то, что вы говорите и что делает подключаемый модуль в ответ.
Шаг 1. Создание сайта
Опишите сайт, который вы хотите создать, используя естественный язык: для чего он нужен, какие страницы должны быть, а также предпочтения в дизайне, такие как цветовая схема, стиль макета или шрифты. Запустите /create-site или просто опишите свой сайт, и плагин распознает намерение.
Если вы не указываете платформу, подключаемый модуль просит выбрать платформу (React, Vue, Angular или Astro), а затем:
- Создает основу проекта на основе шаблона и применяет имя вашего сайта, цвета и дизайнерские токены.
- Устанавливает зависимости, запускает сервер разработки и открывает динамическую предварительную версию браузера.
- Создает каждую страницу, компонент и маршрут, запрошенный с соответствующими изображениями.
- Создает фиксации Git на важных вехах, чтобы у вас была встроенная история для отката.
Шаг 2. Развертывание сайта
Запустите /deploy-site, чтобы отправить сайт в Power Pages. Подключаемый модуль:
- Проверяет, установлен ли PAC CLI и активен ли сеанс аутентификации.
- Просит вас подтвердить целевую среду перед продолжением.
- Запускает рабочую сборку и отправляет скомпилированные выходные данные.
- Создает каталог артефактов развертывания, если он еще не существует.
Замечание
Если среда блокирует определенные вложения файлов, подключаемый модуль обнаруживает проблему и предоставляет инструкции по ее устранению.
Шаг 3. Активация сайта
Выполните команду /activate-site , чтобы сделать сайт общедоступным. Подключаемый модуль:
- Предлагает поддомен на основе имени сайта и позволяет настроить его.
- Подготавливает запись веб-сайта через API Power Platform.
- Опрашивает сайт до тех пор, пока он не станет активным, и возвращает общедоступный URL-адрес.
На этом этапе у вас есть рабочий сайт на общедоступном URL-адресе. Остальные шаги добавляют данные, проверку подлинности и SEO. Пропустите любые шаги, которые не применяются к вашему сайту.
Шаг 4. Настройка модели данных
Запустите /setup-datamodel , чтобы создать таблицы Dataverse, необходимые вашему сайту. Если у вас уже есть схема ER или конкретная схема, предоставьте его непосредственно вместо того, чтобы агент проанализировал код.
Подключаемый модуль создает агент архитектора модели данных , который:
- Анализирует код сайта, чтобы определить, какие данные требуются страницам и компонентам.
- Запрашивает в среде Dataverse, есть ли уже существующие таблицы, чтобы избежать дублирования.
- Предлагает модель данных с таблицами, столбцами, типами данных и связями, визуализируемыми в виде схемы ER.
Вы просматриваете и утверждаете предложение. До вашего подтверждения подключаемый модуль ничего создавать не будет. После утверждения подключаемый модуль создает таблицы и столбцы с помощью вызовов API и сохраняет файл манифеста, используемый шагами 5 и 6.
Шаг 5. Добавление примеров данных (необязательно)
Запустите /add-sample-data , чтобы заполнить таблицы записями тестов. Для этого шага требуется модель данных из шага 4.
Подключаемый модуль выполняет следующие действия:
- Считывает манифест для понимания таблиц, столбцов и связей.
- Создает контекстно соответствующие значения для каждого типа столбца, например реалистичные сообщения электронной почты, правдоподобные даты и форматированные денежные суммы.
- Производит вставку записей в порядке зависимостей (родительские таблицы перед дочерними таблицами) и автоматически обновляет маркеры проверки подлинности во время массовых вставок.
Шаг 6. Интеграция с веб-API Dataverse
Выполните команду /integrate-webapi , чтобы заменить макетные данные динамическими запросами Dataverse. Для этого шага требуется модель данных из шага 4.
Подключаемый модуль выполняет следующие действия:
- Сканирует вашу базу кода на предмет компонентов, в которых используются фиктивные данные, вызовы получения данных с заполнителями или жестко закодированные массивы. Он сопоставляет эти компоненты с таблицами Dataverse.
- Создает агент интеграции веб-API для каждой таблицы, которая создает:
- Общий клиент API с управлением токенами защиты от подделки и механизмом повторных попыток.
- Типы сущностей TypeScript и сопоставители доменов.
- Слой службы CRUD.
- Специфические для фреймворка шаблоны, такие как хуки React, композаблы Vue или службы Angular.
- Создает агента Permissions Architect, который предлагает разрешения для таблиц и настройки сайта.
Вы просматриваете и утверждаете предложение о разрешениях. Плагин не создаёт файлы конфигурации, пока вы не подтвердите.
Добавление сводок с искусственным интеллектом (необязательно)
Запустите /add-ai-webapi, чтобы дополнить интеграцию с Web API сводками, созданными генеративным ИИ. Навык подключает две предварительные версии API резюмирования к страницам сведений о записи и списков:
- API сводки поиска: возвращает краткую сводку результатов поиска, созданную ИИ, с указанием источников.
- API суммирования данных: возвращает сводку по записям или аналитические сведения на уровне списка для таблицы Dataverse.
Этот шаг основан на модели данных на шаге 4 и интеграции веб-API из шага 6. Подключаемый модуль выполняет следующие действия:
- Сканирует ваш код, чтобы найти точки интеграции для сводок, и определяет, какие страницы и таблицы являются целевыми и какие API следует использовать.
- Делегирует все отсутствующие предварительные требования веб-API (разрешения таблиц, списки столбцов и веб-роли) в
/integrate-webapiи/create-webroles, чтобы обеспечить единый источник истины для разрешений. - Создает агент Интеграция веб-API ИИ, который создает типизированную службу сводок (
aiSummaryService.ts) с обработкой токена защиты от подделки, характерными для платформы программами-оболочками (перехватчики React, составные функции Vue или службы Angular) и подключенными точками вызова на целевых страницах. - Создает агент Архитектор параметров веб-API ИИ, который создает параметры сайта
Summarizationдля запросов и ограничений содержимого.
Вы просматриваете и утверждаете предложения. Плагин не генерирует код и не создает настройки, пока вы не подтвердите.
Замечание
API суммаризации находятся в предварительной версии и зависят от того, включены ли элементы управления на уровне администратора и сайта. Если сводки не отображаются после развертывания, убедитесь, что эта функция включена с помощью соответствующих параметров сайта и элементов управления администраторами. Дополнительные сведения см. в разделе Обзор API суммаризации данных и Поиск в Power Pages с генеративным ИИ.
Шаг 7. Создание веб-ролей
Выполните команду /create-webroles , чтобы определить роли доступа пользователей. Подключаемый модуль:
- Проводит запросы в вашей среде для определения существующих веб-ролей, чтобы избежать создания дубликатов.
- Создает определения ролей с уникальными идентификаторами.
- Обеспечивает, чтобы каждый сайт имел не более одной анонимной роли и одной удостоверенной роли.
Шаг 8. Настройка проверки подлинности
Запустите /setup-auth , чтобы добавить вход, выход и управление доступом на основе ролей на сайт. Плагин поддерживает следующих поставщиков удостоверяющих данных, и можно настроить как одного поставщика, так и несколько одновременно.
| Provider | лучше всего подходит для |
|---|---|
| Внешняя идентификация Microsoft Entra (рекомендуется для сайтов, доступных для клиентов) | Общедоступные сайты и порталы клиентов с самостоятельной регистрации. |
| Майкрософт Ентра айди | Внутренние порталы сотрудников или бизнес-сайты партнеров (B2B). Power Pages автоматически настраивает родительский клиент сайта, поэтому вам не нужно вводить сведения о клиенте. |
| Microsoft, Facebook, Google | Вход через социальные сети для потребителей. |
| Локальная проверка подлинности | Вход с именем пользователя и паролем. Не рекомендуется и настраивается только при явном запросе. |
Дополнительные сведения о поддерживаемых поставщиках, включая протоколы и рекомендации по настройке, см. в разделе Overview проверки подлинности в Power Pages.
Подключаемый модуль:
- Анализирует ваш сайт (назначение, страницы, аудиторию) и предлагает подходящий вариант по умолчанию. Например, плагин предлагает Внешняя идентификация Microsoft Entra с открытой регистрацией для сайта, ориентированного на клиентов, или Microsoft Entra ID с регистрацией только по приглашениям для внутреннего портала. Вы принимаете рекомендацию или выбираете собственных поставщиков.
- Для каждого поставщика пошагово проводит вас через все предварительные шаги в центре администрирования поставщика удостоверений, такие как создание клиентов, регистрация приложений, создание потоков пользователей и получение идентификатора клиента и URI перенаправления. Подключаемый модуль проверяет каждое значение, которое вы вставляете обратно в беседу, и вычисляет точный URI перенаправления для сайта, чтобы значение, вставленное в регистрацию приложения, соответствовало значению, записанному в параметры сайта.
- Спрашивает, как данные профиля пользователя должны передаваться от поставщика удостоверений в запись контакта Dataverse (сопоставление утверждений), выполнять ли синхронизацию при каждом входе или только при первом входе, а также следует ли автоматически связывать внешние входы с существующими контактами по адресу электронной почты.
- Создает службу проверки подлинности, объявления типов, служебные программы проверки подлинности на основе ролей (
hasRole,RequireAuth,RequireRole), обработчик поддержания активности сеанса, предотвращающий незаметное истечение срока действия сеансов SPA, а также компонент пользовательского интерфейса для входа и выхода, интегрированный в макет сайта. Плагин повсеместно использует паттерны вашего фреймворка, такие как хуки React, компонуемые функции Vue, сервисы Angular или компоненты Astro. - Когда настроено несколько поставщиков, создает страницу
/login, отображаемую в выбранном макете: горизонтальная строка, вертикальный стек, основной акцент или вкладки. - Записывает соответствующие параметры сайта в разделе
.powerpages-site/site-settings/для каждого поставщика, режима регистрации, сопоставления утверждений и необязательной функции.
Плагин также настраивает следующие необязательные функции, когда вы их включаете:
-
Условия и положения: страница SPA, которую пользователи должны принять перед завершением входа в систему, а также соответствующий параметр сайта и фрагменты контента
/terms -
Страница профиля пользователя:
/user-profileSPA-страница, на которой авторизованные пользователи редактируют свои контактные данные через веб-API Power Pages. - Федеративный выход: при выходе пользователя с сайта также выполняется выход у поставщика удостоверений, что особенно полезно для сценариев с общими устройствами или в регулируемых средах.
Tip
Чтобы добавить второго поставщика удостоверений на существующий сайт, запустите /setup-auth еще раз. Плагин определяет, что уже настроено, и предлагает добавить нового провайдера, не перезаписывая существующих. Этот подход полезен для добавочных сценариев, таких как запуск с Внешняя идентификация Microsoft Entra и последующее добавление Google для социального входа.
Замечание
Авторизация на стороне клиента (RequireAuth, RequireRole, hasRole) предназначена только для взаимодействия с пользователем. Он управляет тем, что видит пользователь. Разрешения для таблиц на стороне сервера, настроенные с помощью /integrate-webapi, обеспечивают реальную безопасность.
Шаг 9. Добавление логики сервера
Запустите /add-server-logic , чтобы добавить на сайт безопасные конечные точки на стороне сервера. Используйте логику сервера , если сайту требуется логика, которая не может выполняться в браузере, например внешние вызовы API, проверка на стороне сервера, управление секретами или операции с данными между сущностями.
Important
Для поддержки логики сервера требуется PAC CLI версии 2.6.3 или выше. Используйте скрипт быстрого установки для обновления до последней версии.
Описать, что вам нужно на простом языке, и подключаемый модуль:
- Создает агент архитектора логики сервера , который анализирует вариант использования и классифицирует его сложность.
- Предлагает конструкцию конечной точки, конфигурацию безопасности и все необходимые разрешения в отношении таблиц вам на проверку.
- После утверждения создается конечная точка JavaScript на стороне сервера в
/_api/serverlogics/<name>. - Создает типизированный клиентский сервис для вызова эндпоинта из ваших компонентов.
- Обновляет ваши компоненты так, чтобы они вызывали новую службу.
- Настройки назначений веб-ролей и разрешений таблиц для данной конечной точки.
Вы просматриваете и утверждаете предложение. Код не создается, пока не подтвердите.
Распространенные варианты использования:
- Подключение к внешним службам. Вызов REST API, Функции Azure или сторонних служб без предоставления учетных данных. (Руководство. Взаимодействие с внешними службами)
- Выполнение безопасных операций с данными. Запросы, обновления или удаление записей Dataverse с постоянной проверкой на стороне сервера. (Руководство. Взаимодействие с таблицами Dataverse)
- Запустите пользовательскую логику. Агрегирование данных по таблицам, применение бизнес-правил или вычисление производных значений перед возвратом результатов клиенту.
- Управляйте секретами на стороне сервера. Храните учетные данные и ключи API на сервере и никогда в клиентском коде. (Tutorial: взаимодействие с Microsoft Graph и SharePoint)
Замечание
Запустите /add-server-logic один раз для каждого варианта использования. Например, если сайту требуется как конечная точка проверки инвентаризации, так и глобальная конечная точка поиска, дважды запустите навык.
Шаг 10. Интеграция облачных потоков
Запустите /add-cloud-flow, чтобы интегрировать существующие Power Automate облачные потоки на сайт. Этот навык связывает сайт Power Pages с потоками, которые вы уже создали в Power Automate. Он не создает новые облачные потоки.
Подключаемый модуль:
- Регистрирует существующий облачный поток на сайте.
- Создает клиентский код для активации потока со страниц.
- Обрабатывает асинхронное состояние рабочего процесса и шаблоны обратного вызова.
- Настраивает обмен данными между страницей и потоком.
Используйте /add-cloud-flow для рабочих процессов утверждения, уведомлений электронной почты, запланированных заданий и автоматизации на основе событий, которые лучше обрабатываются Power Automate, чем конечными точками на стороне сервера.
Альтернатива: Используйте /integrate-backend для планирования полного сервисного слоя.
Если вы не уверены, какие функции требуют веб-API, логики сервера или облачного потока, выполните /integrate-backend вместо выполнения вручную шагов 4–10. Этот навык выступает в качестве оркестратора, который:
- Анализирует прототип, чтобы определить все компоненты, необходимые для уровня служб.
- Классифицирует каждую функцию в соответствующий подход: веб-API для стандартного CRUD, логика сервера для проверки на стороне сервера и внешних API-интерфейсов или облачный поток для рабочих процессов утверждения и автоматизации.
- Предлагает последовательность плана выполнения со всеми навыками, зависимостями и конфигурациями.
- После вашего утверждения оркестрирует навыки в правильном порядке.
План является устойчивым, возобновляемым и редактируемым. Остановитесь после любого шага, чтобы просмотреть созданный код или протестировать сайт, и продолжите с того места, на котором остановились, снова запустив /integrate-backend.
Шаг 11. Добавление SEO
Запустите /add-seo , чтобы оптимизировать сайт для поисковых систем. Подключаемый модуль:
- Обнаруживает маршруты из конфигурации маршрутизатора фреймворка.
- Создает директивы поисковой системы и карту сайта для всех обнаруженных маршрутов.
- Добавляет метатеги: окно просмотра, кодировку, описание, Open Graph, карточку Twitter и ссылки на иконку сайта.
Шаг 12. Развертывание конечного сайта
Если вы выполните какие-либо необязательные действия, выполните /deploy-site повторно, чтобы отправить изменения в живом режиме. Подключаемый модуль запускает рабочую сборку и отправляет сайт вместе со всеми артефактами развертывания (разрешения на таблицу, параметры сайта, веб-роли, файлы логики сервера) в среду Power Pages.
Шаг 13. Запуск проверки безопасности
Запустите /security-review, чтобы выполнить комплексную проверку безопасности вашего сайта перед выводом в продакшен. Навык координирует специализированные навыки безопасности и объединяет все результаты в единый HTML-отчёт по адресу docs/security-review-<timestamp>.html.
Подключаемый модуль задает один вопрос с простым языком о вашей цели и выбирает соответствующий набор ориентированных навыков:
| Goal | Что он проверяет |
|---|---|
| Код и конфигурация | Исходный код, зависимости, разрешения таблицы и конфигурация проверки подлинности. Работает только с локальными файлами— развертывание не требуется. |
| Готовность к выпуску (рекомендуется) | Полная проверка перед публикацией. Запускает все специализированные навыки: анализ кода и зависимостей, сканирование развернутого сайта, проверку заголовков безопасности браузера, веб-брандмауэра приложений, разрешений таблиц и проверки подлинности. |
| Развернутый сайт | Только сканирование развернутого сайта в реальном времени. Полезно для постоянного мониторинга опубликованного сайта. |
После того как вы подтвердите, плагин параллельно запускает соответствующие специализированные навыки и записывает полученные результаты в единый отчет:
-
/scan-code: выполняет статический анализ (opengrep) и сканирование зависимостей (триви) в локальных исходных файлах. Шаблоны кода Surfaces, уязвимые пакеты, жестко закодированные секреты и проблемы с лицензиями. Если ни одно средство не установлено, навык предлагает проверку кода вручную в качестве резервной версии. -
/scan-site: запускает сканирование безопасности на стороне сервера для работающего сайта и получает последний отчет. Длительность сканирования зависит от размера сайта — небольшие сайты заканчиваются в минутах, крупные сайты могут занять несколько часов. Результаты группируются по серьезности. Требуется развернутый сайт. -
/manage-headers: проверяет заголовки безопасности HTTP, настроенные в разделе.powerpages-site/site-settings/: Политика безопасности содержимого, X-Frame-Options, CORS, cookie SameSite и связанные параметры. Определяет отсутствующие или слабые значения и предлагает рекомендуемые значения по умолчанию. -
/manage-firewall: проверяет брандмауэр веб-приложений (WAF) для производственного сайта, включая состояние управляемых правил и пользовательские правила (блокировки IP-адресов, блокировки по странам, блокировки путей и лимиты на количество запросов). Доступно только для производственных сайтов в поддерживаемых регионах; навык выявляет проблемы, связанные с соответствием требованиям, и сообщает о них. -
/audit-permissions: сверяет существующие разрешения таблиц с кодом сайта и метаданными Dataverse. Выявляет отсутствующие разрешения, слишком широкие роли, неиспользуемые разрешения и проблемы со схемой YAML.
Сводный отчет группирует результаты по разделам, открывается в браузере по умолчанию и содержит понятные рекомендации по устранению проблем. В чате плагин затем предлагает пошагово провести вас через исправления: выберите найденную проблему, и плагин интерактивно вызовет соответствующий специализированный навык, чтобы применить изменение.
Замечание
Проверка безопасности никогда не применяет изменения автоматически. Каждый специализированный навык выполняется в режиме проверки только для чтения во время объединенного запуска. Чтобы применить исправление, плагин в интерактивном режиме вызывает подходящий навык после того, как вы выберете действие.
Tip
Вы также можете запустить любой специализированный навык отдельно:
- Запустите
/scan-codeво время разработки, чтобы поймать проблемы на уровне кода раньше. - Выполните,
/manage-headersчтобы устранить определенную ошибку политики безопасности содержимого или настроить CORS. - Выполните команду
/manage-firewall, чтобы добавить ограничение скорости на странице входа или заблокировать трафик по странам. - Запустите
/audit-permissionsпосле изменения разрешений таблицы, чтобы убедиться, что они по-прежнему соответствуют коду сайта. - Повторно запустите
/security-reviewс целью Развернутый сайт, чтобы отслеживать производственный сайт с течением времени.
Проверка сайта
После завершения навыков убедитесь, что сайт Power Pages работает правильно.
- Перейдите к Power Pages.
- Найдите свой сайт в списке активных сайтов .
- Предварительный просмотр сайта на рабочем столе с помощью параметра "Предварительный просмотр ".
- Проверьте функциональность.
Продвигайте свой сайт в разных средах
После того как ваш сайт заработает в среде разработки, используйте средства управления жизненным циклом приложений (ALM), чтобы перенести его в тестовую и рабочую среды. Подключаемый модуль упаковает сайт в качестве решения Power Platform, определяет значения, которые различаются в разных средах, а также развертывает решение с помощью конвейеров Power Platform или путем экспорта и импорта вручную.
Чтобы использовать навыки ALM, вам также потребуется по крайней мере одна целевая среда Power Platform (тест, производство или оба). Чтобы использовать необязательный поток Azure Key Vault для секретов, также требуется разрешение на создание хранилища ключей в подписке Azure.
Спланируйте развертывание
Чтобы начать, запустите /plan-alm.
/plan-alm — это точка входа для ALM, которая оркестрирует другие навыки ALM, поэтому обычно их не запускают напрямую. Подключаемый модуль:
- Определяет текущее состояние проекта, решения и целевых сред.
- Запрашивает сведения о вашей стратегии продвижения (конвейеры Power Platform или ручной экспорт и импорт), целевых этапах и ограничениях, которые нужно применить.
- Создает визуальный план в
docs/alm-plan.html, который показывает каждое действие, которое система собирается выполнить. - Ожидает вашего подтверждения перед запуском любого последующего навыка.
План сохраняется на диск, поэтому каждый последующий навык читает один и тот же сохраненный план и записывает в него данные. Если на каком-либо этапе происходит сбой, снова запустите /plan-alm, и процесс продолжится с того места, где остановился.
Создайте решение
Запустите /setup-solution, чтобы упаковать сайт как решение Power Platform. Подключаемый модуль:
- Создает издателя и решение, а затем добавляет компоненты Power Pages: сайт, веб-роли, конечные точки логики сервера, регистрации потоков облака и параметры поставщика OAuth.
- Классифицирует каждый параметр сайта по степени конфиденциальности и предлагает переменные среды для значений, которые различаются в зависимости от среды.
- Предлагает подготовить Azure Key Vault и хранить в нем данные учетных данных, такие как строки подключения и ключи API.
- Выполняется в режиме синхронизации, когда решение уже существует для вашего сайта, чтобы примирить компоненты без создания нового решения.
Вы просматриваете и утверждаете предложение. Плагин не создает конфигурацию, пока вы не подтвердите действие.
Tip
Если решение слишком велико или слишком запутано для надежного развертывания, плагин рекомендует разделить его и указывает, где именно это лучше сделать. Подтвердите разделение перед применением изменений.
Развертывание с помощью конвейеров Power Platform
Если вы выбрали Power Platform Pipelines в качестве стратегии продвижения, подключаемый модуль выполняет следующие навыки:
-
/ensure-pipelines-hostподготавливает или обнаруживает среду узла для Power Platform Pipelines. Навык выбирает вариант с наименьшей стоимостью, доступный для вашего клиента: бесплатный узел платформы, приложение Pipelines в существующей среде или пользовательский узел. -
/setup-pipelineрегистрирует определение конвейера в Dataverse, настраивает выбранные этапы и привязывает каждый этап к целевой среде. -
/deploy-pipelineзапускает развертывание для стадии, применяет черезdeploymentSettings.jsonпереопределения переменных среды для каждой стадии и отслеживает состояние в журнале развертывания.
Если развертывание завершается сбоем, поскольку целевая среда уже связана с другим узлом Power Platform Pipelines, подключаемый модуль может выполнить /force-link-environment, чтобы переназначить ее. Действие требует явного согласия и обратимо.
Развертывание с помощью ручного экспорта и импорта
Если выбрать ручной способ, плагин запускается:
-
/export-solutionдля экспорта решения в виде управляемого или неуправляемого ZIP-файла с проверкой полноты перед экспортом. -
/import-solutionчтобы импортировать ZIP-файл в целевую среду — либо поэтапно, чтобы сначала проверить зависимости, либо напрямую.
Активация и проверка развернутого сайта
После успешного развертывания в целевой среде плагин:
- Запускает
/activate-siteдля создания общедоступного URL-адреса в целевом окружении. - Запускает
/test-siteдля проверки развертывания. Подключаемый модуль использует браузер для обхода репрезентативных страниц, выполнения проверок доступа на основе ролей, проверки вызовов/_api/и получения структур ответов из конечных точек/_api/serverlogics/. Навык возвращает результат в видеPASS,WARNINGSилиFAILсо сведениями по каждой проверке, на которые можно перейти из плана.
Если шаг завершается ошибкой, плагин запускает /diagnose-deployment. Навык сопоставляет сбой с каталогом известных ошибок развертывания, таких как устаревший манифест, отсутствующие зависимости, конфликты хостов, заблокированный JavaScript или истекший срок действия аутентификации, и предлагает конкретный способ устранения. Плагин никогда не применяет исправление без вашего согласия.
Замечание
Каждый навык ALM считывает данные из артефактов, хранящихся на диске, и записывает данные в них: манифест решения, данные плана, журнал конвейера, журнал развертывания и результаты тестирования. Оркестрацию можно возобновить, и она поддаётся аудиту. Чтобы узнать, что произошло на любом шаге, проверьте артефакты.
Советы и рекомендации
Следующие советы помогут вам получить максимальную пользу от плагина и агента ИИ для программирования при создании сайтов Power Pages.
Следите за выводом терминала на предмет отсутствующих инструментов во время первого запуска.
Подключаемый модуль предоставляет навыки и рабочие процессы, но агент программирования ИИ — GitHub Copilot CLI или Claude Code — выполняет фактические команды на компьютере. При первом использовании этих средств внимательно следите за выходными данными терминала. Агент программирования искусственного интеллекта выполняет команды и скрипты за кулисами, а некоторые из этих команд зависят от средств, которые могут не быть установлены на компьютере. Если шаг завершается ошибкой, выходные данные терминала обычно показывают, какой инструмент или команда не удалось найти.
Если вы видите ошибку, например command not found или is not recognized, установите отсутствующий инструмент и повторно активируйте рабочий процесс. ИИ-кодирующий агент продолжает работу с того места, где остановился, после того как инструмент становится доступным.
Просмотр предложений агента перед утверждением
ИИ-агент для программирования представляет предложения, например от архитектора модели данных и архитектора прав доступа, прежде чем внести изменения. Код и конфигурация, созданные агентом программирования ИИ, могут быть неточными, поэтому просмотрите, протестируйте и проверьте все предложения и все созданные коды перед утверждением или развертыванием.
- Предложения по модели данных. Проверьте, соответствуют ли имена таблиц, типы столбцов и связи бизнес-требованиям. Проще изменить предложение, чем переименовать столбцы после вставки данных.
- предложения по правам доступа. Убедитесь, что каждая роль имеет правильный уровень доступа (создание, чтение, обновление, удаление) для каждой таблицы. Чрезмерно широкие разрешения на таблицы являются распространенной угрозой безопасности.
- Созданный код: прочитайте созданный код и протестируйте сайт локально перед развертыванием. Созданный ИИ код может содержать ошибки или проблемы безопасности.
Вставить ошибки непосредственно в контексте
Если что-то не удается, будь то ошибка сборки, сбой развертывания или исключение среды выполнения в браузере, скопируйте полное сообщение об ошибке. Вставьте его вместе с кратким описанием того, что вы делали. Чем больше контекста вы предоставляете, тем быстрее исправление.
Пример: ошибка сборки
I ran npm run build and got this error. Fix it.
error TS2339: Property 'jobTitle' does not exist on type 'JobPosting'.
src/components/JobCard.tsx:24:31
24 <Text>{posting.jobTitle}</Text>
Tip
Добавьте имя файла, выполненную команду и ожидаемые действия. Подключаемый модуль использует этот контекст для локализации проблемы и применения конкретного исправления вместо угадывания.
Вставляйте ошибки веб-API с полным URL-адресом запроса
Распространенная проблема после развертывания — это ошибка 403 от Web API Power Pages, возникающая, когда доступ к столбцу через API не включен. При возникновении этой ошибки вставьте полный URL-адрес API и полный ответ на ошибку JSON. В сообщении об ошибке говорится, какую таблицу и столбец нужно исправить, и подключаемый модуль может обновить YAML разрешений таблицы и параметры сайта за вас.
Пример: Столбец не включен для Web API (403)
I'm getting a 403 error when the documents page loads. Here's the API call and the response. Fix the issue so this API works.
URL:
https://my-site.powerappsportals.com/_api/crd50_documents?$select=crd50_documentid,crd50_name,crd50_documentcategory,crd50_filetype,crd50_filesize,crd50_updateddate,crd50_description,_crd50_propertyid_value
Response:
{
"error": {
"code": "90040101",
"message": "Attribute _crd50_propertyid_value in table crd50_document is not enabled for Web Api.",
"innererror": {
"code": "90040101",
"message": "Attribute _crd50_propertyid_value in table crd50_document is not enabled for Web Api.",
"type": "AttributePermissionIsMissing"
}
}
}
Эта ошибка (AttributePermissionIsMissing) означает, что столбец _crd50_propertyid_value поиска существует в таблице Dataverse, но не включен в настройки прав доступа таблицы для веб-API. Подключаемый модуль устраняет эту ошибку, добавляя отсутствующий столбец в YAML разрешений таблицы в .powerpages-site/table-permissions/ и повторяя развертывание.
Замечание
Веб-API Power Pages требует, чтобы каждый столбец, возвращаемый вызовом API, был явно указан в разрешении таблицы.
Свойства подстановки (с префиксом _ и суффиксом _value) легко пропустить, так как их имя в API отличается от логического имени столбца в Dataverse. При отображении AttributePermissionIsMissing всегда добавляйте этот столбец в права доступа таблицы. Не изменяйте запрос API.
Будьте конкретны о том, что вы хотите
Расплывчатые запросы дают расплывчатые результаты. Сообщите плагину, что именно вам нужно, включая предпочтения в макете, поля данных и поведение.
| Вместо | Пробное использование |
|---|---|
| Создать страницу для вакансий | Создайте страницу объявлений о вакансиях с панелью поиска вверху страницы, фильтрами по местоположению и отделу, а также сеткой карточек с названием, компанией, диапазоном заработной платы и датой размещения для каждой вакансии. |
| "Исправить стили" | Карточки заданий выстраиваются вертикально на экране рабочего стола. Сделайте их отображение в сетке с тремя столбцами с интервалом в 16 пикселей на экранах шире 768 пикселей" |
| Добавление некоторых данных | "Добавьте 20 примеров размещения заданий в четырех отделах (инженерия, маркетинг, продажи, отдел кадров) с реалистичными названиями, диапазоны заработной платы в диапазоне от $60k-$180k и даты размещения за последние 30 дней" |
| Настройка API | "Подключите компонент JobListings к таблице cr_jobposting Dataverse. Замените жестко закодированный массив реальным вызовом API, который получает название, отдел, зарплату и дату публикации" |
| Добавить логин | Настройте вход с помощью Внешняя идентификация Microsoft Entra с открытой регистрацией, а также Google в качестве второго поставщика. Отображайте их в виде горизонтального ряда на странице входа. |
Используйте снимки экрана для решения визуальных проблем
Если сайт не выглядит прямо в браузере, сделайте снимок экрана и вставьте его непосредственно в беседу или укажите путь к файлу. Визуальный контекст помогает выявлять проблемы макета, интервала и стилизации, которые трудно описать в тексте.
The header overlaps the hero section on mobile. Here's a screenshot:
[paste screenshot or provide path to screenshot file]
Fix the header so it doesn't overlap. It should be a fixed header with the content starting below it.
Выполняйте итерации небольшими шагами
Вместо описания всего сайта в одном запросе выполняйте поэтапное построение. Начните со структуры и макета, а затем добавьте функции по одному за раз. Этот подход дает возможность просматривать и корректировать курсы на каждом шаге.
Step 1: /create-site → Get the basic scaffold and layout right
Step 2: "Add a hero section to the home page with a search bar"
Step 3: "Add a job listings page with filter and sort"
Step 4: "Add a job detail page that shows full description"
Step 5: /setup-datamodel → Create tables now that you know the data shape
Step 6: /integrate-webapi → Wire up real data
Tip
После каждого шага проверьте предварительную версию браузера. Если что-то не так, исправьте его перед переходом. Проще устранить проблемы в одном компоненте, чем распутать проблемы на всем сайте.
Попросите объяснение перед утверждением
Если вы не уверены в предлагаемом изменении, особенно в вопросах разрешений, модификаций модели данных или конфигурации аутентификации, попросите плагин объяснить, что он планирует сделать и почему перед утверждением.
Before you create the table permissions, explain what access each role will have and why. I want to understand the security implications.
Запускайте навыки по отдельности для устранения проблем
Если навык завершается сбоем, вам не нужно начинать заново. Каждый навык работает независимо и может продолжить с того места, где остановился. Например, если /integrate-webapi завершается сбоем на третьей таблице, вы можете повторно запустить его, и он выявит уже выполненную работу.
/integrate-webapi failed while processing the cr_applications table. Here's the error: [paste error]. Resume the integration from where it stopped.
Связанный контент
- Создайте и разверните одностраничное приложение в Power Pages
- Настройка проверки подлинности для сайта Power Pages
- Общие сведения о логике сервера
- Справочник по веб-API Power Pages
- Общие сведения об API сводки данных
- Поиск в Power Pages с генеративным ИИ
- Справочник по командам страниц PAC CLI
- GitHub Copilot CLI
- Код Клода