ArcGIS Notebook Server включает две рабочих среды блокнота (наборы модулей Python). Эти среды доступны для пользователей блокнота через образы контейнеров, которые применяются к каждому контейнеру, работающему на сайте сервера.
Рабочие среды Standard и Advanced включают ArcGIS API for Python и различные модули Python, которые могут использоваться для изучения данных, пространственного анализа, управления ресурсами и администрирования. Рабочая среда Advanced также содержит ArcPy.
См. список доступных библиотек Python
В некоторых случаях авторам блокнотов могут потребоваться модули или определенные версии модулей, которые не входят в эти две рабочие среды. Вы можете подключиться к дополнительным модулям Python в ArcGIS Notebook Server следующими способами:
- Установите модуль Python во время сеанса Notebook. Это сделает модуль доступным для данного блокнота.
- Расширьте образ контейнера Esri, включив в него дополнительные библиотеки Python в пользовательской рабочей среде. Создаваемый образ контейнера сделает расширенную рабочую среду доступной для всех авторов блокнотов на вашем сайте.
Установка модулей во время сеанса
Авторы блокнотов могут создавать модули Python или версии модулей, которые не включены ни в одну доступную рабочую среду для работы в ходе сеанса блокнота с помощью систем управления пакетами conda или pip. Рекомендуется использовать conda, поскольку ArcGIS Notebook Server использует его для управления модулями; однако некоторые модули Python доступны только в pip.
Этот подход инсталлирует нужный модуль на период длительности сеанса блокнота. После того, как блокнот будет закрыт, либо контейнер, принадлежащий пользователю, будет отключен, модуль перестанет быть доступным. Чтобы установить модули, используя этот метод, необходимо подключение к каналам conda или pip.
Примечание:
conda и pip входят в две рабочие среды блокнотов. Вам не нужно устанавливать их.
Чтобы установить пакет scrapy во время сеанса, например, запустите ячейку блокнота с помощью одной из следующих команд в зависимости от используемой системы управления пакетами:
Использование системы управления пакетами conda
!conda install --yes scrapy
Использование системы управления пакетами pip
!pip install scrapy
Чтобы использовать другую версию модуля Python в рабочей среде блокнота, с которой вы работаете, укажите в команде номер версии.
Вы должны перезапустить ядро после запуска команды conda или pip, чтобы сделать новые пакеты доступными.
Например, определенный пакет доступен в обоих средах блокнотов версии 1.5, но вы хотите использовать инструмент, появившейся в версии 1.6. Чтобы сделать доступным пакет версии 1.6 во время сеанса, запустите ячейку блокнота с помощью одной из следующих команд в зависимости от используемой системы управления пакетами:
Использование системы управления пакетами conda
!conda install --yes <package name>==1.6
Использование системы управления пакетами pip
!pip install <package name>==1.6
Создание пользовательского образа контейнера
Если вы хотите внести постоянные изменения в рабочую среду блокнота, можно построить собственный образ контейнера на сайте. Следующий рабочий процесс, требующий административных прав, позволяет создать пользовательский образ контейнера и настроить ArcGIS Notebook Server на его использование.
Для начала используйте любую из из рабочих сред блокнота (Standard или Advanced). Когда вы создали собственную среду, вы можете зарегистрировать ее как новую среду на вашем сайте.
- Установите и настройте ArcGIS Notebook Server.
- Войдите в ArcGIS Notebook Server Administrator Directory как администратор.
URL-адрес имеет формат https://notebookserver.domain.com:11443/arcgis/admin/.
- Перейдите к блокноты > рабочие среды, затем выберите среду которую вы хотите расширить для пользовательского образа.
На странице ресурсов рабочей среды запомните значение imageId этой среды. Это значение будет использоваться в следующем шаге.
- Создайте Dockerfile, который добавит нужные модули Python к пользовательскому образу.
Dockerfile - это простой текстовой файл, который является набором правил для построения образа контейнера Docker. Обратитесь к документации по Dockerfile для получения дополнительных сведений и рекомендаций.
В этом примере вы добавите пакет визуализации данных Python graphviz к рабочей среде блокнота Advanced. Следующий блок кода в Dockerfile инструктирует Docker, как получить доступ к среде Advanced, используя значение imageId, затем установить graphviz в рабочую среду. Команда conda clean рекомендуется для уменьшения размера файла.
# Specify the existing notebook runtime imageId as FROM FROM aa7a1a346e5b # Use RUN to issue a command to install, then clean RUN conda install graphviz \ && conda clean -y -a
В этом примере вы создадите пользовательскую рабочую среду, включающую библиотеки клиента Oracle.
## Using a Dockerfile to build a custom notebook runtime that includes Oracle client FROM <replace with imageId of standard or advanced container image> ## Switch to root user for installing OS level packages. USER root ## Combine OS level statements for Docker image efficiency RUN apt-get update && \ apt-get install -y alien ## Update the url below to the desired version of Oracle client. RUN wget https://yum.oracle.com/repo/OracleLinux/OL8/oracle/instantclient/x86_64/getPackage/oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm RUN alien -i oracle-instantclient19.10-basic-19.10.0.0.0-1.x86_64.rpm ## Installing libaio1 is required only for Notebook runtimes version 5 (10.9) or earlier. RUN apt-get install -y libaio1 ## Switch back to arcgis user at end of the Dockerfile USER arcgis
- Сохраните Dockerfile на компьютере в новой папке, которая содержит только Dockerfile.
- Постройте новый пользовательский образ контейнера, используя команду Docker.
Этот образ будет содержать новую рабочую среду, согласно Dockerfile. Откройте окно командной строки и запустите команду со следующим синтаксисом::
docker build -t <name of my new runtime>:v1.0 -f <path to my Dockerfile> .
Примечание:
Убедитесь, что в конце команды стоит точка.
При выполнении команды Docker построит новый образ контейнера. Последней строкой в результатах команды будет Successfully built <imageId> с сокращенным значением ID нового образа. Необходимо указать на сайте ArcGIS Notebook Server полное значение imageId.
- Запустите следующую команду в окне командной строки, чтобы получить значение ID образа:
docker inspect <imageId>
Ваш пользовательский образ теперь построен, и у вас есть его полное значение imageId, которое вы будете использовать для регистрации на сайте ArcGIS Notebook Server в следующем разделе.
Регистрация новой рабочей среды в Manager
Начиная с версии 10.8, вы можете использовать ArcGIS Notebook Server Manager для регистрации пользовательской рабочей среды, которую вы создали.
- Войдите на ваш портал ArcGIS Enterprise с правами администратора и откройте ArcGIS Notebook Server Manager.
- Откройте страницу Настройки и щелкните Runtimes.
- Щелкните Зарегистрировать рабочую среду, чтобы открыть диалоговое окно регистрации.
- Укажите соответствующие значения для завершения регистрации.
Параметр Подробности name (Обязательный)
Строка для представления новой рабочей среды, такой как "Notebook Custom Runtime Python 3."
version (Обязательный)
Версия предоставленной Esri рабочей среды, которую вы использовали в качестве базового образа Docker.
Прежние версии:
Этот параметр больше не используется в ArcGIS Notebook Server версии 10.9
imageId (Обязательный)
Полный (не усеченный) ID для нового образа Docker, присвоенный при создании этого образа.
containerType (Дополнительный)
Единственным допустимым значением является "Docker."
imagePullString (Дополнительный)
Не применяется.
requiresAdvancedPrivileges (Обязательный)
Установите это значение в true, если рабочая среда требует расширенные права доступа.
Значения: true | false
maxCPU (Обязательный)
Максимальное количество устройств CPU, которое может использоваться для каждого контейнера.
maxMemory (Обязательный)
Максимальный объем памяти, который будет использоваться для каждого контейнера.
maxMemoryUnit (Обязательный)
Устройство, заданное параметром Max memory.
maxSwapMemory (Дополнительный)
Максимальный объем памяти своп, доступный для каждого контейнера при достижении лимита Max memory.
maxSwapMemoryUnit (Дополнительный)
Устройство, заданное параметром Max swap memory.
sharedMemory (Дополнительный)
Объем совместно используемой памяти, доступный для каждого контейнера.
sharedMemoryUnit (Дополнительный)
Устройство, заданное параметром Shared memory.
dockerRuntime (Дополнительный)
Применяется только по отношению к рабочим средам GPU в средах Linux. Подробнее
manifestFile (Дополнительный)
Загрузите файл в формате JSON, содержащий список библиотек Python, включенных в эту рабочую среду.
f (Дополнительный)
Формат ответа по умолчанию. Формат ответа по умолчанию html.
Значения: html | json | pjson
Примечание:
Чтобы создать файл manifest.json, откройте окно Powershell на компьютере ArcGIS Notebook Server, на котором установлен образ пользовательской рабочей среды блокнота, и выполните следующую команду:
$ID = docker container run -d --rm -it -v /:/host <custom_runtime_image_ID> /bin/bash; docker exec -it $ID /opt/conda/bin/conda list --json >> ~\Desktop\manifest.json; docker kill $ID
- Когда вы будете готовы, щелкните Сохранить, чтобы зарегистрировать новую рабочую среду.
- Откройте новый блокнот, чтобы протестировать это обновление. Убедитесь, что в блокноте доступны добавленные модули или их версии.
Если вы хотите вернуть рабочие среды на сайте ArcGIS Notebook Server к исходным настройкам, используйте операцию Восстановить заводские рабочие среды в Administrator Directory. Эта функция доступна в https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore и она восстанавливает только начальную среду для текущей версии сайта.