Обзор переменных среды для Power Platform
Переменные среды позволяют использовать базовый сценарий управления жизненным циклом приложения (ALM) для перемещения приложения между средами Power Platform. В этом сценарии приложение остается точно таким же, за исключением нескольких ключевых ссылок на внешние приложения (таких как таблицы, подключения и ключи), которые отличаются в исходной среде и среде назначения. Приложение требует, чтобы структура таблиц или подключений была одинаковой между исходной и конечной средами с некоторыми отличиями. Переменные среды позволяют указать, какие из этих различных внешних ссылок должны обновляться при перемещении приложения между средами.
Переменные среды хранят ключи и значения параметров, которые затем служат входными данными для различных других объектов приложения. Отделение параметров от объектов-потребителей позволяет изменять значения в той же среде или при переносе решений в другие среды. Альтернативный вариант — оставить жестко запрограммированные значения параметров в компонентах, которые их используют. Этот подход часто бывает проблематичным; особенно, когда значения необходимо изменить во время операций управления жизненным циклом приложения (ALM). Поскольку переменные среды являются компонентами решения, вы можете переносить ссылки (ключи) и изменять значения при переносе решений в другие среды.
Преимущества использования переменных среды:
- Укажите новые значения параметров во время импорта решений в другие среды.
- Конфигурация хранилища для источников данных, используемых в приложениях на основе холста и потоках. Например, параметры списка и сайта SharePoint могут храниться как переменные среды. Такой подход позволяет подключаться к разным сайтам и спискам в разных средах без необходимости изменять приложения и потоки.
- Упакуйте и перенесите свои настройки и конфигурацию вместе и управляйте ими в одном месте.
- Упаковывайте и передавайте секреты, такие как учетные данные, используемые разными компонентами, отдельно от компонентов, которые их используют.
- Одна переменная среды может использоваться во многих различных компонентах решения: будь то компоненты одного типа или разные. Например, приложение на основе холста и поток могут использовать одну и ту же переменную среды. Когда необходимо изменить значение переменной среды, вам нужно изменить только одно значение.
- Кроме того, если вам нужно исключить источник данных в рабочей среде, вы можете обновить значения переменных среды информацией для нового источника данных. Приложения и потоки не требуют модификации и начинают использовать новый источник данных.
- Поддерживается средствами SolutionPackager и DevOps и обеспечивает непрерывную интеграцию и непрерывную доставку (CI/CD).
- Переменные среды можно распаковать и сохранить в системе управления версиями. Вы также можете хранить разные файлы значений переменных среды для отдельной конфигурации, необходимой в разных средах. Затем упаковщик решений может принять файл, соответствующий среде, в которую импортируется решение.
Как работают переменные среды?
Переменные среды можно создавать и изменять через интерфейс современного решения. Они также могут создаваться автоматически при подключении к определенным источникам данных в приложениях на основе холста или с помощью кода. Их также можно импортировать в среду с помощью решений. Переменные среды можно использовать в качестве входных данных при разработке приложений на основе холста, потоков Power Automate, подключаемых модулей и при добавлении панелей мониторинга Power BI в приложения на основе модели. Когда вы используете переменные среды, значения затем извлекаются из переменных среды и могут быть изменены при импорте решений в другие среды.
Ручное создание переменной среды в решении
- Выполните вход в Power Apps (make.powerapps.com), затем на левой панели выберите Решения. Если этого пункта нет на боковой панели, выберите …Еще, а затем выберите нужный пункт.
- Откройте нужное решение или создайте новое.
- На панели команд выберите Создать>Дополнительно, затем выберите Переменная среды.
- На правой панели заполните следующие столбцы, а затем выберите Сохранить:
Отображаемое имя. Введите имя для переменной среды.
Имя. Уникальное имя автоматически генерируется из значения Отображаемое имя, но вы можете изменить его.
Тип данных. Выберите Десятичное число, Текст, JSON, Два параметра, Источник данных или Секрет.
Заметка
- Если выбран Источник данных, вам также необходимо выбрать соединитель, допустимое подключение для выбранного соединителя и тип параметра. Подключение не сохраняется как часть переменной среды. Переменная среды хранит информацию не в подключении, которое необходимо для подключения Power Apps к нужному серверу и таблице. Подключение используется только для получения доступных значений параметров, таких как сайты SharePoint, к которым у вас есть доступ, или списки, связанные с сайтом.
- Если Секрет является выбранным типом, необходима дополнительная информация для установки и настройки Azure Key Vault, чтобы разрешить Power Platform получить доступ к секрету.
Current Value. Также называется значением. Это свойство не является обязательным и является частью таблицы значений переменных среды. Определенное значение используется, даже если также присутствует значение по умолчанию. Удалите значение из своего решения, если не хотите использовать его в следующей среде. Значения также разделены на отдельные файлы JSON в экспортированном файле solution.zip и могут редактироваться в автономном режиме. Больше информации: Как удалить значение из переменной среды?
Значение по умолчанию. Этот столбец является частью таблицы определения переменных среды и не является обязательным. Значение по умолчанию используется, если нет текущего значения.
Разделение значения по умолчанию и текущего значения позволяет вам использовать определение и значение по умолчанию отдельно от значения. Например, издатель приложения может разместить свое предложение на AppSource со значением по умолчанию. Затем при желании покупатель может указать новое значение. Когда издатель приложения публикует обновления для приложения, значение, установленное клиентом, не будет перезаписано.
Заметка
Значение не может существовать без определения. Интерфейс позволяет только создавать одно значение на определение.
Power Apps может автоматически создавать переменные среды
На вкладке Общие в разделе настроек Power Apps:
Включите параметр Автоматическое создание переменных среды при добавлении источников данных. Теперь, когда вы добавляете новый источник данных в приложение, оно добавляет переменную среды.
Различные источники данных
Разные источники данных позволяют использовать разные типы переменных среды.
Microsoft Dataverse
Power Apps изначально подключается к Dataverse. Переменная среды для таблиц в текущей среде не требуется. При подключении к Dataverse ваше приложение автоматически ищет точно такое же имя таблицы в любой среде, в которую вы переносите таблицу. Если структура имен таблиц в целевой среде такая же, как и в исходной, она работает.
Если вы используете внешнюю таблицу из другой среды (с помощью команды "Изменить среду"), Power Apps предполагает, что вы хотите всегда ссылаться на одну и ту же таблицу. Переменная среды необходима, если вы хотите, чтобы эта внешняя таблица была другой внешней таблицей при переходе от разработки к тестированию или к производству. Проще всего разрешить для Power Apps автоматическое создание переменной среды. (Если вы ранее добавили таблицу в приложение, включите переключатель параметров, удалите внешнюю таблицу, а затем добавьте ее обратно.)
При добавлении внешней таблицы в приложение перейдите на вкладку Дополнительно, чтобы выбрать переменную среды.
SharePoint
SharePoint поддерживает только подключения Microsoft Entra? Для SharePoint, помимо корректного подключения, требуется отдельная переменная среды для "Сайта" и "Списка".
Чтобы успешно использовать переменные среды со списками SharePoint:
- Отображаемое имя и логическое имя для каждого соответствующего столбца в исходной и целевой средах должны совпадать.
- Переменные среды для SharePoint должны иметь соответствующие метаданные. SharePoint имеет внутренние идентификаторы, которые могут не совпадать между целевыми средами. Например, если вы создадите список с тем же именем и столбцами в целевой среде, внутренние имена не будут совпадать. Метаданные всегда совпадают, если вы дублируете сайт SharePoint и копируете его в целевую среду.
Сервер SQL Server
SQL Server поддерживает множество различных типов аутентификации и подключений. Используйте переменные среды для подключений Microsoft Entra. Для сервера и базы данных требуется отдельная переменная среды. Приложение привязано к определенным именам таблиц, поэтому предполагается, что они одинаковы в разных средах.
Не используйте переменные среды для общих подключений, таких как базовая аутентификация SQL с помощью SQL Server. Используйте ссылки на подключение для сведений, которые традиционно передаются как часть строки подключения. Все основные параметры проверки подлинности SQL являются частью строки подключения. Например, имя сервера и базы данных указывается при создании подключения и, следовательно, всегда является производным от подключения.
Переменные среды источника данных используются для соединителей с такой проверкой подлинности, как Microsoft Entra. В этих типах подключений в Power Apps есть только идентифицированный пользователь. Power Apps не сможет определить, с какой службой или таблицей вы собираетесь работать из подключения.
Введите новые значения при импорте решений
Интерфейс импорта современного решения включает возможность ввода значений для переменных среды. Это устанавливает свойство значения в таблице environmentvariablevalue
.
Значения переменных среды отображаются при импорте решений или при использовании конвейеров для развертывания. Переменные среды без значения по умолчанию или значения запрашивают значение, но в противном случае предварительно заполняются меткой под текстовой областью, обозначающей источник значения: значение решения, целевое значение среды или значение по умолчанию.
Заметка
- В некоторых случаях для определенных значений переменных среды источника данных может появиться предупреждение Отказано в доступе, если у создателя импорта нет доступа к подключению или источнику, используемому для переменной среды. Это неблокирующее предупреждение, но на него следует обратить внимание в зависимости от того, как вы планируете использовать переменную среды в целевой среде.
- Вы можете удалить значение из своего решения перед экспортом решения. Это гарантирует, что существующее значение останется в вашей среде разработки, но не будет экспортировано в решение. Такой подход позволяет предоставить новое значение при импорте решения в другие среды. Больше информации: Как удалить значение из переменной среды?
Уведомления
Уведомление отображается, когда переменные среды не имеются никаких значений. Задайте значения, чтобы компоненты, зависящие от переменных среды, не завершались ошибкой.
Группа безопасности
Таблицей environmentvariabledefinition
владеет пользователь или рабочая группа. При создании приложения, использующего переменные среды, обязательно назначьте пользователям соответствующий уровень привилегий для этой таблицы. Разрешение на таблицу environmentvariablevalue
наследуется от родительской таблицы environmentvariabledefinition
и поэтому не требует отдельных привилегий. Привилегии для таблиц environmentvariabledefinition
включены в роли безопасности создателя среды и базового пользователя по умолчанию. Дополнительные сведения: Безопасность в Dataverse.
Именование
Убедитесь, что имена переменных среды уникальны, чтобы на них можно было точно ссылаться. Повторяющиеся отображаемые имена переменных среды затрудняют различение и использование переменных среды. Убедитесь, что имена переменных среды уникальны, чтобы на них можно было точно ссылаться. Имена $authentication и $connection — специально зарезервированные параметры для потоков, и их следует избегать. Сохранение потока блокируется, если используются переменные среды с такими именами. Если в потоке используется переменная среды и изменяется отображаемое имя переменной среды, то конструктор показывает как старый, так и новый токены отображаемых имен, чтобы облегчить идентификацию. При обновлении потока рекомендуется удалить ссылку на переменную среды и добавить ее снова.
Текущие ограничения
- Проверка значений переменных среды происходит в пользовательских интерфейсах и в компонентах, которые их используют, но не внутри Dataverse. Поэтому убедитесь, что установлены правильные значения, если они изменяются с помощью кода.
- Задачи Power Platform Build Tools пока недоступны для управления переменными среды источника данных. Однако это не препятствует их использованию в инструментах, предоставляемых Microsoft, и в системах управления версиями.
- Для взаимодействия с переменными среды с помощью пользовательского кода требуется вызывать API для получения значений; кэша, доступного для использования сторонним (не разработанным Майкрософт) кодом, не предусмотрено.
- Имя переменной среды может содержать максимум 2000 символов.
Вопросы и ответы
Почему я не вижу значение для моей переменной среды?
Если переменная среды находится в управляемом решении, вы не сможете увидеть это значение, пока не заглянете внутрь решения по умолчанию. Такое поведение является особенностью дизайна, поскольку значение переменной среды является неуправляемой настройкой.
Где используются переменные среды?
Либо путем выбора Показать зависимости в интерфейсе решения при создании компонентов или в системе управления версиями и в файле решения путем просмотра метаданных приложения или потока.
Переменные среды источника данных — это то же самое, что и подключения?
№ Хотя они связаны между собой, подключение представляет собой учетные данные или аутентификацию, необходимые для взаимодействия с соединителем. В переменных среды источника данных хранятся параметры, которые требуются для одного или нескольких действий в соединителе, и эти параметры часто меняются в зависимости от действия. Например, подключение SharePoint Online не хранит никакой информации о сайтах, списках и библиотеках документов. Поэтому для вызова соединителя требуется как допустимое подключение, так и некоторые дополнительные параметры.
Может ли мой автоматизированный конвейер ALM использовать разные файлы значений для разных сред?
Да. Упаковщик решений принимает имя файла в качестве входных параметров, поэтому ваш конвейер может упаковать файл с разными значениями в решение в зависимости от типа среды, в которой он выполняется.
Следует ли добавлять значение в решение?
Нет. Переменные среды предназначены для использования приложениями, которые должны иметь разные значения в разных средах, в которых развернуто решение. Определения переменных среды должны быть включены в решение, но значения должны быть предоставлены для целевой среды во время развертывания. Такое поведение приводит к тому, что определение переменной среды является объектом управляемого решения в целевой среде, а переменная среды — неуправляемой записью.
Почему я не могу удалить значение в своей среде?
Если значение было добавлено в управляемое решение, единственный способ удалить значение — обновить решение в исходной среде, чтобы исключить значение, а затем экспортировать новую версию решения. Затем эту новую версию можно импортировать в среду с помощью операции установки новой версии (не обновления), в результате чего запись значения будет удалена.
Что, если кто-то случайно удалит значение?
Если это еще не предотвращено системой зависимостей, среда выполнения использует последнее известное значение в качестве запасного варианта.
Если значение изменено, когда новое значение будет использоваться в приложениях на основе холста и облачных потоках?
Полная публикация обновленных переменных среды может занять до часа, поскольку значение отправляется в приложения и передается асинхронно.
Требуются ли премиум-лицензии?
№ Хотя ALM требует Dataverse (или приложения Dynamics 365) использование премиум-соединителей не требуется. Единственное предостережение: если вы используете соединитель Dataverse для взаимодействия с переменными среды как с другими записями данных, такими как учетные записи или контакты. Раньше это был единственный способ использовать переменные среды в приложениях на основе холста и потоках.
Есть ли ограничение на количество переменных среды, которые у меня могут быть?
№ Однако максимальный размер решения составляет 95 МБ. Дополнительные сведения: Создание решения
Можно ли локализовать отображаемые имена и описания переменных среды?
Да.
Следует ли использовать переменные среды вместо хранения данных конфигурации в настраиваемых таблицах?
Да, если ваши данные конфигурации не реляционные. Переменные среды следует использовать для пар "ключ : значение" и тогда, когда значение, вероятно, должно отличаться в других средах. Другие инструменты, такие как средство миграции конфигурации, лучше подходят для миграции данных реляционной конфигурации, хранящихся в пользовательских таблицах. В отличие от других данных конфигурации, переменные среды переносятся в решениях, поэтому ими гораздо проще управлять и более эффективно их импортировать.
Почему подключение не сохраняется для переменных среды источника данных?
Подключения используются только для создания пользовательского интерфейса. Например, для извлечения понятных имен для списков SharePoint, связанных с сайтом. При редактировании переменной среды источника данных обязательно выберите соединение с доступом к источнику данных. Если у вас больше нет доступа к подключению, вы можете ввести значение вручную. Например, введите URL-адрес сайта SharePoint или уникальный идентификатор (GUID) для списка.
При наличии нескольких подключений, доступных для одной переменной среды (типа источника данных), существует встроенная реализация для выбора первого соединения в списке подключений. Поскольку с переменной среды обычно связано только одно подключение, обычно проверять это не требуется. Кроме того, благодаря недавним изменениям в видимости значений переменных среды, это стало проще проверять при импорте.
Как удалить значение из переменной среды?
Возможно, вы захотите удалить значение переменной среды из своего решения перед экспортом решения. Тогда существующее значение остается в вашей среде разработки, но не экспортируется в решение. Такой подход позволяет указать новое значение при импорте решения в другую среду.
Чтобы удалить значение, выполните следующие действия:
В решении, в котором находится переменная среды, выберите переменную среды для отображения свойств.
В Текущее значение выберите ...>Удалить из этого решения.
Можно ли использовать переменные среды в пользовательских соединителях?
Да. Поддержка переменных среды в пользовательских соединителях
См. также
Использование переменных среды источника данных в приложениях на основе холста
Использование переменных среды в облачных потоках решения Power Automate
Ссылка на таблицу/сущность EnvironmentVariableDefinition
Примеры веб-API
Использование переменных среды источников данных в приложениях на основе холста
Использование переменных среды в облачных потоках решения Power Automate
Использование секретов Azure Key Vault
Поддержка переменных среды в пользовательских соединителях
Блог Power Apps: доступна предварительная версия переменных среды!