Partilhar via


Criar um canal Conda personalizado para a gestão de pacotes

Ao instalar pacotes Python, o gestor de pacotes da Conda utiliza canais para procurar pacotes. Poderá ter de criar um canal Conda personalizado por vários motivos. Por exemplo, pode descobrir que:

  • A área de trabalho está protegida por exfiltração de dados e as ligações de saída estão bloqueadas.
  • tem pacotes que não quer carregar para repositórios públicos.
  • quer configurar um repositório alternativo para os utilizadores na área de trabalho.

Neste artigo, iremos fornecer um guia passo a passo para ajudá-lo a criar o seu canal Conda personalizado na sua conta Azure Data Lake Storage.

Configurar o computador local

  1. Instale o Conda no seu computador local. Pode consultar o Azure Synapse runtime do Spark para identificar a versão conda utilizada no mesmo runtime.

  2. Para criar um canal personalizado, instale conda-build.

conda install conda-build
  1. Organize todos os pacotes na plataforma que pretende servir. Neste exemplo, vamos instalar o arquivo Anaconda no seu computador local.
sudo wget https://repo.continuum.io/archive/Anaconda3-4.4.0-Linux-x86_64.sh 
sudo chmod +x Anaconda3-4.4.0-Linux-x86_64.sh  
sudo bash Anaconda3-4.4.0-Linux-x86_64.sh -b -p /usr/lib/anaconda3 
export PATH="/usr/lib/anaconda3/bin:$PATH" 
sudo chmod 777 -R /usr/lib/anaconda3  
  1. Para criar um ambiente semelhante ao que é criado disponível no Azure Synapse runtime, pode transferir este modelo. Pode haver ligeiras diferenças entre o modelo e o Ambiente de Azure Synapse real. Depois de transferido, pode executar o seguinte comando:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml

Montar a conta de armazenamento no computador

Em seguida, vamos montar a conta Azure Data Lake Storage Gen2 no seu computador local. Este processo também pode ser feito com uma conta WASB; no entanto, vamos ver um exemplo para a conta do ADLSg2

Para obter mais informações sobre como montar a conta de armazenamento no seu computador local, pode visitar esta página.

  1. Pode instalar blobfuse a partir do Repositório de Software linux para produtos Microsoft.
wget https://packages.microsoft.com/config/ubuntu/16.04/packages-microsoft-prod.deb 
sudo dpkg -i packages-microsoft-prod.deb 
sudo apt-get update 
sudo apt-get install blobfuse fuse 
export AZURE_STORAGE_ACCOUNT=<storage-account-name>
export AZURE_STORAGE_SAS_TOKEN="<SAS>" 
export AZURE_STORAGE_BLOB_ENDPOINT=*.dfs.core.windows.net
  1. Crie o ponto de montagem (mkdir /path/to/mount) e monte um contentor de Blobs com blobfuse. Neste exemplo, vamos utilizar o valor privatechannel para a variável mycontainer .
sudo mkdir /home/trusted-service-user/privatechannel 
sudo mkdir -p /mnt/blobfusetmp 
blobfuse /home/trusted-service-user/privatechannel --container-name=privatechannel --tmp-path=/mnt/blobfusetmp --use-adls=true --log-level=LOG_DEBUG 
sudo chown trusted-service-user /mnt/blobfusetmp 

Criar o canal

No próximo conjunto de passos, vamos criar um canal Conda personalizado.

  1. No seu computador local, crie um diretório para organizar todos os pacotes do seu canal personalizado. Organize todos os tar.bz2 pacotes de https://repo.anaconda.com/pkgs/main/linux-64/ para o subdiretório. Certifique-se de que também inclui todos os pacotes tar.bz2 dependentes.

cd ~/privatechannel/ 
mkdir -p channel/linux64 

<Add all .tar.bz2 from https://repo.anaconda.com/pkgs/main/linux-64/> 
// Note: Add all dependent .tar.bz2 as well 

cd channel 
mkdir noarch 
echo '{}' > noarch/repodata.json 
bzip2 -k noarch/repodata.json 

// Create channel 
conda index channel/noarch 
conda index channel/linux-64 
conda index channel
  1. Agora, pode verificar a conta de armazenamento onde o diretório privatechannel/channel teria sido criado.

Nota

A Conda não honra o token de SAS associado a um contentor. Por conseguinte, tem de marcar o contentor "privatechannel" como acesso público.

Para obter mais informações, também pode visitar o guia de utilizador da Conda para criar canais personalizados.

Permissões da conta de armazenamento

Agora, teremos de validar as permissões na conta de armazenamento. Para definir estas permissões, navegue para o caminho onde será criado o canal personalizado. Em seguida, crie um token SAS para privatechannel o qual tenha permissões de leitura, lista e execução.

O nome do canal será agora o URL de SAS de blobs gerado a partir deste processo.

Criar um ficheiro de configuração de ambiente conda de exemplo

Por último, verifique o processo de instalação ao criar um ficheiro Conda environment.yml de exemplo. Se tiver uma área de trabalho com a proteção de exfiltração de dados ativada, tem de especificar o nodefaults canal no ficheiro de ambiente.

Eis um ficheiro de configuração conda de exemplo:

name: sample 
channels: 
  - https://<<storage account name>>.blob.core.windows.net/privatechannel/channel?<<SAS Token>
  - nodefaults 
dependencies: 
  - openssl 
  - ncurses 

Depois de criar o ficheiro Conda de exemplo, pode criar um ambiente conda virtual. Pode verificar isto localmente ao executar os seguintes comandos:

conda env create --file sample.yml  
source activate env 
conda list 

Agora que verificou o seu canal personalizado, pode utilizar o processo de gestão do conjunto de Python para atualizar as bibliotecas no seu conjunto do Apache Spark.

Passos seguintes