Udostępnij za pośrednictwem


Tworzenie niestandardowego kanału Conda na potrzeby zarządzania pakietami

Podczas instalowania pakietów języka Python menedżer pakietów Conda używa kanałów do wyszukiwania pakietów. Może być konieczne utworzenie niestandardowego kanału Conda z różnych powodów. Można na przykład stwierdzić, że:

  • Obszar roboczy jest chroniony przez eksfiltrację danych, a połączenia wychodzące są blokowane.
  • Masz pakiety, których nie chcesz przekazywać do repozytoriów publicznych.
  • chcesz skonfigurować alternatywne repozytorium dla użytkowników w obszarze roboczym.

W tym artykule udostępnimy przewodnik krok po kroku, który pomoże Ci utworzyć niestandardowy kanał Conda na koncie Azure Data Lake Storage.

Konfigurowanie komputera lokalnego

  1. Zainstaluj środowisko Conda na komputerze lokalnym. Możesz odwołać się do środowiska uruchomieniowego platformy Azure Synapse Spark, aby zidentyfikować wersję conda używaną w tym samym środowisku uruchomieniowym.

  2. Aby utworzyć niestandardowy kanał, zainstaluj środowisko conda-build.

conda install conda-build
  1. Organizuj wszystkie pakiety w programie dla platformy, którą chcesz obsłużyć. W tym przykładzie zainstalujemy archiwum Anaconda na komputerze lokalnym.
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. Aby utworzyć podobne środowisko do tego, co jest tworzone w środowisku uruchomieniowym Azure Synapse, możesz pobrać ten szablon. Mogą wystąpić niewielkie różnice między szablonem a rzeczywistym środowiskiem Azure Synapse. Po pobraniu możesz uruchomić następujące polecenie:
apt-get -yq install gcc g++
conda env update --prune -f base_environment.yml

Instalowanie konta magazynu na maszynie

Następnie zainstalujemy konto Azure Data Lake Storage Gen2 na komputerze lokalnym. Ten proces można również wykonać przy użyciu konta WASB; jednak przejdziemy przez przykład dla konta ADLSg2

Aby uzyskać więcej informacji na temat sposobu instalowania konta magazynu na komputerze lokalnym, możesz odwiedzić tę stronę.

  1. Program blobfuse można zainstalować z repozytorium oprogramowania systemu Linux dla produktów firmy 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. Utwórz punkt instalacji (mkdir /path/to/mount) i zainstaluj kontener obiektów blob za pomocą narzędzia blobfuse. W tym przykładzie użyjemy wartości privatechannel dla zmiennej 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 

Tworzenie kanału

W następnym zestawie kroków utworzymy niestandardowy kanał Conda.

  1. Na komputerze lokalnym utwórz katalog, aby zorganizować wszystkie pakiety dla kanału niestandardowego. Organizuj tar.bz2 wszystkie pakiety z https://repo.anaconda.com/pkgs/main/linux-64/ do podkatalogu. Należy również uwzględnić wszystkie zależne pakiety tar.bz2.

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. Teraz możesz sprawdzić konto magazynu, na którym privatechannel/channel zostałby utworzony katalog.

Uwaga

Conda nie honoruje tokenu SAS skojarzonego z kontenerem. W związku z tym należy oznaczyć kontener "privatechannel" jako dostęp publiczny.

Aby uzyskać więcej informacji, możesz również odwiedzić przewodnik użytkownika aplikacji Conda dotyczący tworzenia kanałów niestandardowych.

Uprawnienia konta magazynu

Teraz musimy zweryfikować uprawnienia na koncie magazynu. Aby ustawić te uprawnienia, przejdź do ścieżki, w której zostanie utworzony kanał niestandardowy. Następnie utwórz token SYGNATURy dostępu współdzielonego, privatechannel który ma uprawnienia do odczytu, wyświetlania listy i wykonywania.

Nazwa kanału będzie teraz adresem URL sygnatury dostępu współdzielonego obiektu blob wygenerowanego na podstawie tego procesu.

Tworzenie przykładowego pliku konfiguracji środowiska Conda

Na koniec zweryfikuj proces instalacji, tworząc przykładowy plik Conda environment.yml . Jeśli masz włączoną ochronę przed eksfiltracją danych, musisz określić nodefaults kanał w pliku środowiska.

Oto przykładowy plik konfiguracji Conda:

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

Po utworzeniu przykładowego pliku Conda możesz utworzyć wirtualne środowisko Conda. Możesz to sprawdzić lokalnie, uruchamiając następujące polecenia:

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

Po zweryfikowaniu kanału niestandardowego możesz użyć procesu zarządzania pulą języka Python , aby zaktualizować biblioteki w puli apache Spark.

Następne kroki