<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9_Python</id>
	<title>Перенос расширений Python - История изменений</title>
	<link rel="self" type="application/atom+xml" href="https://doc.ruscomtech.ru/index.php?action=history&amp;feed=atom&amp;title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9_Python"/>
	<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9_Python&amp;action=history"/>
	<updated>2026-09-16T14:13:11Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.43.9</generator>
	<entry>
		<id>https://doc.ruscomtech.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9_Python&amp;diff=5762&amp;oldid=prev</id>
		<title>IKuznetsov: Новая страница: «== Требования ==  * [https://www.python.org/downloads/ Python 3.10]﻿. * Ключ-АСТРОМ версии 1.286 или более поздней. * &lt;...»</title>
		<link rel="alternate" type="text/html" href="https://doc.ruscomtech.ru/index.php?title=%D0%9F%D0%B5%D1%80%D0%B5%D0%BD%D0%BE%D1%81_%D1%80%D0%B0%D1%81%D1%88%D0%B8%D1%80%D0%B5%D0%BD%D0%B8%D0%B9_Python&amp;diff=5762&amp;oldid=prev"/>
		<updated>2025-09-18T15:35:08Z</updated>

		<summary type="html">&lt;p&gt;Новая страница: «== Требования ==  * [https://www.python.org/downloads/ Python 3.10]﻿. * Ключ-АСТРОМ версии 1.286 или более поздней. * &amp;lt;...»&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Требования ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.python.org/downloads/ Python 3.10]﻿.&lt;br /&gt;
* Ключ-АСТРОМ версии 1.286 или более поздней.&lt;br /&gt;
* &amp;lt;code&amp;gt;dt-extensions-sdk[cli]&amp;lt;/code&amp;gt; установлен в вашем &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|Проверьте, установлен ли у вас &amp;lt;code&amp;gt;dt-extensions-sdk&amp;lt;/code&amp;gt; в &amp;lt;code&amp;gt;PATH&amp;lt;/code&amp;gt;, запустив &amp;lt;code&amp;gt;dt-sdk --version&amp;lt;/code&amp;gt; на терминале.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Последовательность действи ==&lt;br /&gt;
Чтобы перенести существующее расширение &amp;#039;&amp;#039;&amp;#039;Python EF1&amp;#039;&amp;#039;&amp;#039; с помощью &amp;#039;&amp;#039;&amp;#039;Visual Studio Code&amp;#039;&amp;#039;&amp;#039;, выполните следующие действия.&lt;br /&gt;
&lt;br /&gt;
# Создайте новое расширение &amp;#039;&amp;#039;&amp;#039;EF2&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# Импортируйте расширение &amp;#039;&amp;#039;&amp;#039;EF1&amp;#039;&amp;#039;&amp;#039; с помощью команды &amp;lt;code&amp;gt;astromkey extensions: Convert Python&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Преобразуйте код, переместив класс из исходного расширения в файл &amp;lt;code&amp;gt;__main__.py&amp;lt;/code&amp;gt; нового расширения.&lt;br /&gt;
&lt;br /&gt;
=== Создание нового расширения EF2 ===&lt;br /&gt;
&lt;br /&gt;
# Откройте пустую папку в &amp;#039;&amp;#039;&amp;#039;Visual Studio Code&amp;#039;&amp;#039;&amp;#039;, затем выполните команду &amp;lt;code&amp;gt;astromkey extensions: Initialize Workspace&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Выберите версию схемы (рекомендуется последняя) и сертификаты, которые вы хотите использовать для подписи расширения.&lt;br /&gt;
# Выберите тип проекта &amp;lt;code&amp;gt;Python Extension 2.0&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Дайте своему расширению имя; оно должно соответствовать соглашению об именовании модулей &amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039;, используя все строчные буквы с необязательными подчеркиваниями.&lt;br /&gt;
&lt;br /&gt;
=== Импорт существующего расширения EF1 ===&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Первый шаг&amp;#039;&amp;#039;&amp;#039; — конвертировать старый файл &amp;lt;code&amp;gt;plugin.json&amp;lt;/code&amp;gt; в новый формат &amp;lt;code&amp;gt;activationSchema.json&amp;lt;/code&amp;gt;. Это автоматически создаст пользовательский интерфейс &amp;#039;&amp;#039;&amp;#039;Settings 2.0&amp;#039;&amp;#039;&amp;#039; для вашего расширения, который определяет пользовательский интерфейс для настройки расширения.&lt;br /&gt;
&lt;br /&gt;
Выполните команду &amp;lt;code&amp;gt;astromkey extensions: Convert Python&amp;lt;/code&amp;gt;. Вы можете импортировать существующее расширение &amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039; из:&lt;br /&gt;
&lt;br /&gt;
* Расширения &amp;#039;&amp;#039;&amp;#039;zip&amp;#039;&amp;#039;&amp;#039;- файла&lt;br /&gt;
* Файла &amp;#039;&amp;#039;&amp;#039;plugin.json&amp;#039;&amp;#039;&amp;#039;​&lt;br /&gt;
* Вашей среды Ключ-АСТРОМ&lt;br /&gt;
&lt;br /&gt;
В этом примере мы импортируем из среды Ключ-АСТРОМ , что дает вам список всех расширений &amp;#039;&amp;#039;&amp;#039;Python&amp;#039;&amp;#039;&amp;#039; в этой среде.&lt;br /&gt;
&lt;br /&gt;
Если вы хотите импортировать данные со своего компьютера, откроется окно выбора файлов, в котором вы сможете выбрать &amp;#039;&amp;#039;&amp;#039;ZIP-файл&amp;#039;&amp;#039;&amp;#039; расширения или файл &amp;#039;&amp;#039;&amp;#039;plugin.json&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
После выбора расширения ваши настройки &amp;lt;code&amp;gt;activationSchema.json&amp;lt;/code&amp;gt; будут перезаписаны правильными. Вам необходимо проверить файл, чтобы убедиться, что ваш интерфейс выглядит так, как вы хотите.&lt;br /&gt;
&lt;br /&gt;
При импорте локального расширения ЕдиногоАгента удалите запись &amp;lt;code&amp;gt;activation &amp;gt; remote&amp;lt;/code&amp;gt; из файла &amp;lt;code&amp;gt;extension.yaml file&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Однако при импорте удаленного расширения АктивногоШлюза удалите &amp;lt;code&amp;gt;activation &amp;gt; local&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вы также можете заставить свое расширение работать удаленно и локально, сохранив обе записи и изменив файл &amp;lt;code&amp;gt;activationSchema.json&amp;lt;/code&amp;gt; соответствующим образом.&lt;br /&gt;
&lt;br /&gt;
=== Изменение кода расширения ===&lt;br /&gt;
Перенесите существующий код расширения в файл нового расширения &amp;lt;code&amp;gt;__main__.py&amp;lt;/code&amp;gt;. Проще всего это сделать, вставив код из существующего класса расширения в новый класс &amp;lt;code&amp;gt;ExtensionImpl&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Вот наиболее существенные изменения, которые вам необходимо внести в свой код:&lt;br /&gt;
&lt;br /&gt;
==== Справочник по преобразованию кодов ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!Описание&lt;br /&gt;
!Метод EF1&lt;br /&gt;
!Метод EF2&lt;br /&gt;
!Примечания&lt;br /&gt;
|-&lt;br /&gt;
|Ведение логов&lt;br /&gt;
|&amp;lt;code&amp;gt;self.logger.info(&amp;quot;message&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;self.logger.info(&amp;quot;message&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|Остается прежним&lt;br /&gt;
|-&lt;br /&gt;
|Получение пользовательских параметров&lt;br /&gt;
|&amp;lt;code&amp;gt;self.config.get(&amp;quot;param_name&amp;quot;, &amp;quot;default_value&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;self.activation_config.get(&amp;quot;param_name&amp;quot;, &amp;quot;default_value&amp;quot;)&amp;lt;/code&amp;gt;&lt;br /&gt;
|Вы можете найти и заменить все записи &amp;lt;code&amp;gt;self.config.&amp;lt;/code&amp;gt; на &amp;lt;code&amp;gt;self.activation_config.&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|Сообщение о событии&lt;br /&gt;
|&amp;lt;code&amp;gt;self.results_builder.report_custom_info_event&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;self.report_dt_event&amp;lt;/code&amp;gt;&lt;br /&gt;
|Постарайтесь не включать топологию (группы, устройства, идентификаторы) в код; это определяется далее в файле &amp;lt;code&amp;gt;extension.yaml&amp;lt;/code&amp;gt;.&lt;br /&gt;
|-&lt;br /&gt;
|Сообщение метрики&lt;br /&gt;
|&amp;lt;code&amp;gt;device.absolute(&amp;quot;metric_key&amp;quot;, metric_value, {&amp;quot;dimension_name&amp;quot;: &amp;quot;dimension_value&amp;quot;})&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;self.report_metric(&amp;quot;metric_key&amp;quot;, metric_value, {&amp;quot;dimension_name&amp;quot;: &amp;quot;dimension_value&amp;quot;})&amp;lt;/code&amp;gt;&lt;br /&gt;
|В коде Python больше нет концепции &amp;lt;code&amp;gt;device&amp;lt;/code&amp;gt;; отправляйте метрики напрямую.&lt;br /&gt;
|-&lt;br /&gt;
|Создание группы и пользовательского устройства&lt;br /&gt;
|&amp;lt;code&amp;gt;self.topology_builder.create_group&amp;lt;/code&amp;gt;,&amp;lt;code&amp;gt;group.create_device&amp;lt;/code&amp;gt;&lt;br /&gt;
|&amp;lt;code&amp;gt;n/a&amp;lt;/code&amp;gt;&lt;br /&gt;
|Не существует; топология определена в файле &amp;lt;code&amp;gt;extension.yaml&amp;lt;/code&amp;gt;.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Создание и загрузка расширения ===&lt;br /&gt;
Соберите расширение, выполнив команду &amp;lt;code&amp;gt;astromkey extensions: Build&amp;lt;/code&amp;gt;. Если сборка прошла успешно, вы увидите приглашение загрузить расширение в среду Ключ-АСТРОМ и активировать его. Примите оба приглашения.&lt;br /&gt;
&lt;br /&gt;
Теперь ваше расширение загружено в Ключ-АСТРОМ, и вы можете создать конфигурации мониторинга, чтобы начать мониторинг.&lt;/div&gt;</summary>
		<author><name>IKuznetsov</name></author>
	</entry>
</feed>