<?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-04-13T14:26:16Z</updated>
	<subtitle>История изменений этой страницы в вики</subtitle>
	<generator>MediaWiki 1.36.1</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;
Чтобы перенести существующее расширение '''Python EF1''' с помощью '''Visual Studio Code''', выполните следующие действия.&lt;br /&gt;
&lt;br /&gt;
# Создайте новое расширение '''EF2'''.&lt;br /&gt;
# Импортируйте расширение '''EF1''' с помощью команды &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;
# Откройте пустую папку в '''Visual Studio Code''', затем выполните команду &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;
# Дайте своему расширению имя; оно должно соответствовать соглашению об именовании модулей '''Python''', используя все строчные буквы с необязательными подчеркиваниями.&lt;br /&gt;
&lt;br /&gt;
=== Импорт существующего расширения EF1 ===&lt;br /&gt;
'''Первый шаг''' — конвертировать старый файл &amp;lt;code&amp;gt;plugin.json&amp;lt;/code&amp;gt; в новый формат &amp;lt;code&amp;gt;activationSchema.json&amp;lt;/code&amp;gt;. Это автоматически создаст пользовательский интерфейс '''Settings 2.0''' для вашего расширения, который определяет пользовательский интерфейс для настройки расширения.&lt;br /&gt;
&lt;br /&gt;
Выполните команду &amp;lt;code&amp;gt;astromkey extensions: Convert Python&amp;lt;/code&amp;gt;. Вы можете импортировать существующее расширение '''Python''' из:&lt;br /&gt;
&lt;br /&gt;
* Расширения '''zip'''- файла&lt;br /&gt;
* Файла '''plugin.json'''​&lt;br /&gt;
* Вашей среды Ключ-АСТРОМ&lt;br /&gt;
&lt;br /&gt;
В этом примере мы импортируем из среды Ключ-АСТРОМ , что дает вам список всех расширений '''Python''' в этой среде.&lt;br /&gt;
&lt;br /&gt;
Если вы хотите импортировать данные со своего компьютера, откроется окно выбора файлов, в котором вы сможете выбрать '''ZIP-файл''' расширения или файл '''plugin.json'''.&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>