Этот вопрос касается защиты IP и сокрытия кода внутри моей Azure функции, которую я планирую развернуть на Azure Marketplace под моделью PAYG.
Функция:
- C# код, распределенный по дюжине файлов классов, скомпилированный в виде DLL
- Инициируется BlobTrigger.
- Развертывается через шаблон ARM с использованием zipDeploy.
Шаблон ARM:
- Требуется, чтобы клиент ввел строку подключения для BLOB-объекта и URL / учетные данные для API REST.
- Требуется, чтобы клиент выбрал план хостинга для функционального приложения (Премиум-план -EP1 / EP2 / EP3)
- Развертывает необходимые ресурсы (хранилище, аналитика, приложение-сервис-план, функция).
- Использует zipDeploy для развертывание DLL
- Запускает функцию
Проблема:
- После развертывания клиент может загрузить ресурсы функции (в виде zip-файла).
- Файл zip может быть размещен как новая функция (с другой конфигурацией).
- Эта новая функция не будет отслеживаться Торговой площадкой (потеря дохода для издателя).
Может кто-нибудь предложить какое-либо решение этой проблемы? Любой другой рабочий процесс, модель развертывания и т. Д. c.
. Одним из возможных решений является встраивание resourceID виртуальной машины в исходный код, компилирование его для получения библиотеки DLL, обфускация библиотеки DLL (чтобы избежать декомпиляции кода). и заменяя resourceID), создайте zip и используйте этот zip для zipDeploy. Но я не могу найти способ автоматизировать это и вставить это в шаблон ARM.