Skip To Content

Estender um tempo de execução do notebook

O ArcGIS Notebook Server inclui dois tempos de execução do notebook (coleções de módulos do Python). Estes tempos de execução estão disponíveis para usuários do notebook através de imagens do contêiner, que são aplicadas a cada contêiner que executa em um site do servidor.

Os tempos de execução Padrão e Avançado do notebook incluem ArcGIS API for Python e vários módulos do Python que podem ser usados para ciência de dados, análise espacial, gerenciamento de conteúdo e administração. O tempo de execução avançado também inclui o ArcPy.

Consulte a lista de bibliotecas do Python disponíveis

Em alguns casos, os autores do notebook podem precisar de módulos ou versões específicas de módulos que não estão incluídas nestes dois tempos de execução. Você pode acessar módulos do Python adicionais no ArcGIS Notebook Server nas seguintes maneiras:

  • Instale o módulo do Python durante uma sessão do notebook. Isto torna o módulo disponível para uso neste notebook.
  • Estenda uma imagem de contêiner da Esri para incluir bibliotecas do Python adicionais em um tempo de execução personalizado. A imagem de contêiner criada por você disponibilizará o tempo de execução estendido para todos os autores do notebook em seu site.

Instalar módulos durante uma sessão

Os autores do notebook podem criar módulos do Python ou versões de módulos, que não estão incluídas no tempo de execução disponível para uso durante uma sessão de notebook utilizando conda ou pip. É recomendado que você utilize conda, pois o ArcGIS Notebook Server utiliza ele para gerenciar módulos; no entanto, alguns módulos do Python estão disponíveis somente no pip.

Esta abordagem instala o módulo desejado pela duração da sessão do notebook. Após o notebook ser fechado ou o contêiner que pertence ao usuário ser finalizado, o módulo não estará mais disponível. Para instalar módulos utilizando este método, os usuários devem ter conectividade com a Internet para os canais conda ou pip.

Anotação:

Ambos conda e pip estão incluídos nos dois tempos de execução do notebook. Você não precisa instalá-los.

Para instalar o pacote scrapy durante uma sessão, por exemplo, execute uma célula do notebook com um dos seguintes comandos, dependendo do sistema de gerenciamento do pacote que você está utilizando:

Utilizando o sistema de gerenciamento de pacote do conda:

!conda install --yes scrapy

Utilizando o sistema de gerenciamento de pacote do pip:

!pip install scrapy

Para utilizar uma versão diferente de um módulo do Python no tempo de execução do notebook no qual você está trabalhando, especifique o número da versão no comando.

Você deve reiniciar o kernel após executar um comando conda ou pip para que seu novo pacote esteja disponível.

Por exemplo, um determinado pacote está disponível em ambos os tempos de execução do notebook na versão 1.5, mas você deseja utilizar uma ferramenta introduzida no 1.6. Para disponibilizar a versão 1.6 do pacote durante uma sessão, execute uma célula do notebook com um dos seguintes comandos, dependendo do sistema de gerenciamento do pacote que você está utilizando:

Utilizando o sistema de gerenciamento de pacote do conda:

!conda install --yes <package name>==1.6

Utilizando o sistema de gerenciamento de pacote do pip:

!pip install <package name>==1.6

Construir uma imagem de contêiner personalizada

Para fazer alterações persistentes em um tempo de execução do notebook, você pode criar uma imagem de contêiner personalizada em um site. O seguinte fluxo de trabalho, que exige privilégios administrativos, cria uma imagem personalizada e configura o ArcGIS Notebook Server para utilizá-lo.

Utilize um dos dois tempos de execução do notebook (Padrão ou Avançado) como ponto de partida. Após criar seu tempo de execução personalizado, você poderá registrá-lo como um novo tempo de execução em seu site.

  1. Instale e configure o ArcGIS Notebook Server.
  2. Entre no Diretório do Administrador ArcGIS Notebook Server coo um administrador.

    A URL está formatada como https://notebookserver.domain.com:11443/arcgis/admin/.

  3. Clique em notebooks > tempos de execução e selecione o tempo de execução do notebook que você deseja estender para sua imagem personalizada.

    Na página de recursos do tempo de execução, note o valor de imagem deste tempo de execução. Você incluirá este valor na próxima etapa.

  4. Crie um Dockerfile que adiciona seus módulos do Python desejados na imagem personalizada.

    Um Dockerfile é um arquivo de texto simples de instruções para construir uma imagem de contêiner do Docker. Siga a documentação do Dockerfile para informações e melhores práticas.

    Neste exemplo, você adicionará bibliotecas de cliente do SQL Server ao tempo de execução do notebook avançado. O seguinte bloco de código em seu Dockerfile informa ao Docker para acessar o tempo de execução avançado usando seu nome repository e tag para instalar as bibliotecas de cliente do SQL Server no tempo de execução. Você pode obter o nome repository e tag usando o comando docker images em uma máquina do ArcGIS Notebook Server onde este runtime está instalado.

    Use o comando docker images para obter o nome da imagem (repositório) e a tag para um tempo de execução de notebook existente.

    
    docker images
    
    REPOSITORY                        TAG                 IMAGE ID            CREATED             SIZE
    arcgis-notebook-python-advanced   10.8.1.14362        e46a81f69ea0        12 months ago       12.4GB
    arcgis-notebook-python-standard   10.8.1.14362        106a660a4d0b        12 months ago       7.51GB

    Crie um tempo de execução personalizado adicionando as bibliotecas de cliente do SQL Server ao tempo de execução do notebook avançado.

    Em contêiners Linux, execute o seguinte comando:

    FROM arcgis-notebook-python-advanced:11.1.0.42869
            
    USER root
            
    RUN apt-get update -y && \
    	apt-get install vim wget curl unzip gzip ca-certificates odbcinst1debian2 -y --no-install-recommends
            
    RUN apt-get install --reinstall software-properties-common -y
            
    RUN add-apt-repository 'ppa:deadsnakes/ppa'
    RUN apt-get update
    RUN apt-get install -y python3.7 python3-pip
            
    # Install system DB drivers
    #
    # Add SQL Server ODBC Driver 18.1 for Ubuntu 22.04
    #
    # NOTE: Only msodbcsql 18.1 is supported on Ubuntu 22.04
    # Run apt list -a msodbcsql18 to check for newer release version
    RUN curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - && \
    	curl https://packages.microsoft.com/config/ubuntu/22.04/prod.list > /etc/apt/sources.list.d/mssql-release.list && \
    	apt-get update && \
    	ACCEPT_EULA=Y apt-get install -y --allow-unauthenticated msodbcsql18=18.1.1.1-1 && \
    	apt-get install -y --allow-unauthenticated unixodbc-dev
            
    RUN rm -rf /var/lib/apt/lists/*
            
    USER $NB_UID

    Em contêiners Windows, execute o seguinte comando:

    FROM arcgis-notebook-python-windows:11.1.0.42869
    
    USER ContainerAdministrator
    
    # Install SQL Server ODBC Driver
    
    RUN powershell -Command $ErrorActionPreference = 'Stop' ; \
        [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 ; \
        Invoke-WebRequest $('https://go.microsoft.com/fwlink/?linkid=2223270') -OutFile 'msodbcsql.msi' -UseBasicParsing ; \
        Start-Process msiexec '/i msodbcsql.msi /qb IACCEPTMSODBCSQLLICENSETERMS=YES' -Wait ; \
        Remove-Item msodbcsql.msi -Force
    
    USER arcgis
  5. Salve seu Dockerfile na máquina em uma nova pasta que somente contenha o Dockerfile.
  6. Crie sua nova imagem de contêiner personalizada utilizando um comando Docker.

    Esta imagem conterá um novo tempo de execução como especificado em seu Dockerfile. Abra a janela de comando e execute um comando com a seguinte sintaxe:

    cd C:\DockerfileDir
    docker build -t arcgis-notebook-python-advanced-custom:11.1.0.42869 -f Dockerfile .
    Anotação:

    Certifique-se de incluir o ponto no final do comando.

    Quando o comando for executado, o Docker construirá a nova imagem de contêiner. A última linha na saída do comando será Successfully built <imageId> com o valor de ID abreviado da nova imagem. Você deve fornecer ao seu site do ArcGIS Notebook Server seu valor imageId completo.

  7. Execute o seguinte comando na janela de comando para obter o valor de ID da imagem:

    docker inspect <imageId>

    Se você tiver um site do Notebook Server com uma única máquina, pode pular as etapas de 8 a 10. Se você tiver um site do Notebook Server com várias máquinas, conclua as etapas 8 a 10.

  8. Salve a imagem personalizada do Docker como um arquivo *.tar utililzando docker save.

    Abra uma janela de comando na máquina Notebook Server onde a imagem de tempo de execução personalizado está instalada e execute o seguinte comando para salvar a imagem de tempo de execução customizado como um arquivo *.tar.

     docker save arcgis-notebook-python-advanced-custom:10.8.1.14362 > arcgis-notebook-python-advanced-custom.tar

  9. Em cada máquina onde Notebook Server está instalado, carregue a imagem de tempo de execução personalizado usando o utilitário postinstallation do ArcGIS Notebook Server.
    1. Abra uma janela de comando como administrador.
    2. Altere os diretórios para a pasta do utilitário postinstallation do ArcGIS Notebook Server.

      O caminho padrão é C:\Program Files\ArcGIS\NotebookServer\tools\postInstallUtility

    3. Instale sua imagem personalizada Docker especificando seu caminho do arquivo.

       PostInstallUtility.bat -l <path of .tar Custom Docker image>

  10. Repita a etapa 9 em cada máquina participante de seu site do ArcGIS Notebook Server.

Sua imagem personalizada é agora construída e você tem seu valor completo imageId, que você utilizará para registrá-lo com o site ArcGIS Notebook Server na próxima seção.

Registre um novo tempo de execução no Manager

Com início na versão 10.8, você pode utilizar ArcGIS Notebook Server Manager para registrar um tempo de execução personalizado que você criou.

  1. Entre no seu portal do ArcGIS Enterprise como um administrador e abra o ArcGIS Notebook Server Manager.
  2. Abra a página Configurações e clique em Tempos de execução.
  3. Clique em Registrar Tempo de Execução para abrir a caixa de diálogo de registro.
  4. Especifique os valores apropriados para concluir o registro.

    ParâmetroDetalhes

    Nome

    Uma string para representar o novo tempo de execução, como "Notebook Custom Runtime Python 3".

    Tipo de contêiner

    O único valor válido é docker.

    Máximo de CPU

    O número máximo de unidades de CPU para ser utilizado para cada contêiner.

    Privilégios avançados exigidos

    Ative o botão de alternância se o tempo de execução exigir o privilégio de notebooks Avançados.

    ID da Imagem

    ID completo (não truncado) para a nova imagem do Docker, quando ela foi construída.

    Tempo de execução do Docker

    Aplica-se apenas a tempos de execução de GPU em ambientes Linux.

    Máximo de memória

    A quantidade máxima de memória a ser utilizada para cada contêiner.

    Unidade do máximo de memória

    A unidade especificada pelo parâmetro maxMemory.

    Máximo de memória de troca

    A quantidade máxima de memória swap disponível para cada contêiner se atingir o limite maxMemory.

    Unidade do máximo de memória de troca

    A unidade especificada pelo parâmetro maxSwapMemory.

    Memória compartilhada

    A quantidade de memória compartilhada disponível para cada contêiner.

    Unidade de memória compartilhada

    A unidade especificada pelo parâmetro sharedMemory.

    Manifesto da biblioteca

    O arquivo *.json (em codificação UTF-8 ou ANSI) contendo a lista de bibliotecas do Python no tempo de execução.

    Anotação:

    Para criar um arquivo manifest.json, abra uma janela PowerShell na máquina do ArcGIS Notebook Server onde a imagem do tempo de execução do notebook personalizado está instalada e execute um dos seguintes comandos, dependendo se você está usando contêiners Windows ou Linux.

    Em contêiners Windows, utilize o seguinte comando:

    $ID = docker run -d -it <custom_runtime_image_ID> cmd; docker exec -it $ID powershell "conda list --json >> C:\arcgis\home\manifest.json"; docker cp $ID/:C:\arcgis\home\manifest.json <existing_folder_path>; docker kill $ID; docker rm -f $ID;

    Em contêiners Linux, utilize o seguinte comando:

    $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

  5. Quando você estiver pronto, clique em Salvar para registrar o novo tempo de execução.
  6. Abra um novo notebook para testar esta atualização. Verifique se os módulos ou versões dos módulos adicionados à sua imagem personalizada estão disponíveis no notebook.

Atualizar um ambiente de execução personalizado após a atualizaçãoArcGIS Notebook Server

Siga as etapas abaixo para atualizar um tempo de execução personalizado após a atualização do ArcGIS Notebook Server.

  1. Crie uma imagem do tempo de execução personalizada usando a nova versão da imagem do tempo de execução do notebook.
  2. Use o utilitário de pós-instalação do servidor de notebook para instalar a nova imagem do tempo de execução em cada máquina do servidor de notebook.
  3. Registre um novo tempo de execução usando o ArcGIS Notebook Server Manager.
  4. Na página de detalhes dos itens de cada notebook usando o tempo de execução personalizado, clique em Configurações.
  5. Verifique e atualize o tempo de execução para o tempo de execução personalizado recém-registrado para cada máquina usando o tempo de execução personalizado.
  6. Após confirmar que a nova imagem do tempo de execução funciona, descontinue a versão anterior do tempo de execução personalizado cancelando o registro do tempo de execução e removendo a imagem de tempo de execução de cada máquina servidor de notebook.

Para retornar os tempos de execução em seu site do ArcGIS Notebook Server para as configurações originais, utilize a operação Restaurar Tempos de Execução de Fábrica no Diretório do Administrador. Isto está disponível em https://notebookserver.domain.com:11443/arcgis/admin/notebooks/runtimes/restore e restaurará somente os tempos de execução de fábrica para a versão atual do seu site.