Verbindung zu VPC mit Subnetzen ohne Internetzugang herstellen - Amazon SageMaker KI

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verbindung zu VPC mit Subnetzen ohne Internetzugang herstellen

Bevor Sie Visual Studio Code mit Studio-Bereichen in privaten Subnetzen ohne Internetzugang verbinden, stellen Sie sicher, dass Ihr Administrator Einrichten von Studio für die Ausführung mit Subnetzen ohne Internetzugang innerhalb einer VPC hat.

Sie haben zwei Möglichkeiten, Ihren lokalen Visual-Studio-Code mit Studio-Bereichen in privaten Subnetzen zu verbinden:

  • Einrichten von HTTP-Proxy

  • Vorgefertigte VS-Code-Remoteserver und -Erweiterungen

HTTP-Proxy mit kontrollierter Zulassungsliste

Wenn sich Ihr Studio-Bereich hinter einer Firewall oder einem Proxy befindet, bitten Sie Ihren Administrator, den Zugriff auf den VS Code-Server und die Endpunkte der Erweiterungen CDNs zu gewähren. Weitere Informationen finden Sie unter Einrichten eines HTTP-Proxys mit kontrollierter Zulassungsliste.

Nach der Einrichtung können Sie den HTTP-Proxy für die Remote-Entwicklung mit VS Code konfigurieren, indem Sie die Proxy-URL mit der remote.SSH.httpProxy- oder remote.SSH.httpsProxy-Einstellung angeben.

Anmerkung

Aktivieren Sie „Remote.SSH: Curl- und Wget-Konfigurationsdateien verwenden“, um die Konfiguration aus der Remote-Umgebung und den curlrc-und wgetrc-Dateien zu verwenden. Auf diese Weise können die wgetrc Dateien curlrc und, die sich an ihren jeweiligen Standardspeicherorten im SageMaker Space befinden, zur Aktivierung bestimmter Fälle verwendet werden.

Diese Option funktioniert, wenn Sie einen HTTP-Proxy einrichten dürfen, und ermöglicht Ihnen die flexible Installation zusätzlicher Erweiterungen, da einige Erweiterungen einen öffentlichen Endpunkt erfordern.

Vorgefertigte VS-Code-Remoteserver und -Erweiterungen

Wenn Ihre Studio-Bereiche keinen Zugriff auf externe Endpunkte haben, um den VS-Code-Remoteserver und Erweiterungen herunterzuladen, können Sie diese vorab paketieren. Bei diesem Ansatz kann Ihr Administrator einen Tarball exportieren, der das .VS Code-server-Verzeichnis für eine bestimmte Version von VS Code enthält. Anschließend verwendet der Administrator ein LCC-Skript ( SageMaker AI Lifecycle Configuration), um den Tarball in Ihr Home-Verzeichnis zu kopieren und zu extrahieren ()/home/sagemaker-user. Weitere Informationen finden Sie unter Einrichten von vorgefertigten Remoteservern und Erweiterungen von Visual Studio Code.

Anweisungen zum Vorverpacken Ihres VS-Code-Remoteservers und der Erweiterungen

  1. Installieren Sie VS Code auf Ihrem lokalen Computer.

  2. Wenn Sie eine Verbindung zum Space herstellen: SageMaker

    • Verwenden Sie das Standardprofil, um die Kompatibilität mit vorkonfigurierten Erweiterungen sicherzustellen. Andernfalls müssen Sie Erweiterungen mithilfe heruntergeladener VSIX-Dateien installieren, nachdem Sie eine Verbindung zum Studio-Bereich hergestellt haben.

    • Wählen Sie ein für die VS-Code-Version spezifisches LCC-Skript aus, das beim Starten des Bereichs an den Bereich angehängt werden soll.

Beispiel für die Verwendung von Dockerfile für das Vorverpacken Ihres Remoteservers von VS Code und der Erweiterungen

Im Folgenden finden Sie ein Beispiel für eine Dockerfile-Datei zum Starten eines lokalen Containers mit vorinstalliertem SSH-Server, falls es nicht möglich ist, einen Bereich mit Remotezugriff und Internetverbindung einzurichten.

Anmerkung
  • In diesem Beispiel erfordert der SSH-Server keine Authentifizierung und wird nur zum Exportieren des VS-Code-Remoteservers verwendet.

  • Der Container sollte auf einer x64-Architektur erstellt und ausgeführt werden.

FROM amazonlinux:2023 # Install OpenSSH server and required tools RUN dnf install -y \ openssh-server \ shadow-utils \ passwd \ sudo \ tar \ gzip \ && dnf clean all # Create a user with no password RUN useradd -m -s /bin/bash sagemaker-user && \ passwd -d sagemaker-user # Add sagemaker-user to sudoers via wheel group RUN usermod -aG wheel sagemaker-user && \ echo 'sagemaker-user ALL=(ALL) NOPASSWD:ALL' > /etc/sudoers.d/sagemaker-user && \ chmod 440 /etc/sudoers.d/sagemaker-user # Configure SSH to allow empty passwords and password auth RUN sed -i 's/^#\?PermitEmptyPasswords .*/PermitEmptyPasswords yes/' /etc/ssh/sshd_config && \ sed -i 's/^#\?PasswordAuthentication .*/PasswordAuthentication yes/' /etc/ssh/sshd_config # Generate SSH host keys RUN ssh-keygen -A # Expose SSH port EXPOSE 22 WORKDIR /home/sagemaker-user USER sagemaker-user # Start SSH server CMD ["bash"]

Verwenden Sie die folgenden Befehle, um den Container zu erstellen und auszuführen:

# Build the image docker build . -t remote_server_export # Run the container docker run --rm -it -d \ -v /tmp/remote_access/.VS Code-server:/home/sagemaker-user/.VS Code-server \ -p 2222:22 \ --name remote_server_export \ remote_server_export # change the permisson for the mounted folder docker exec -i remote_server_export \ bash -c 'sudo chown sagemaker-user:sagemaker-user ~/.VS Code-server' # start the ssh server in the container docker exec -i remote_server_export bash -c 'sudo /usr/sbin/sshd -D &'

Stellen Sie mit dem folgenden Befehl eine Verbindung her:

ssh sagemaker-user@localhost -p 2222

Bevor dieser Container verbunden werden kann, konfigurieren Sie in der .ssh/config-Datei Folgendes. Danach können Sie den remote_access_export als Hostnamen im Remote-SSH-Seitenbereich sehen, wenn Sie eine Verbindung herstellen. Beispiel:

Host remote_access_export HostName localhost User=sagemaker-user Port 2222 ForwardAgent yes

Archivieren Sie /tmp/remote_access/.VS Code-server und folgen Sie den Schritten in den vorgefertigten VS-Code-Remoteservern und Erweiterungen, um eine Verbindung herzustellen und die Erweiterung zu installieren. Stellen Sie nach dem Entpacken sicher, dass der .VS Code-server-Ordner als übergeordneter Ordner angezeigt wird.

cd /tmp/remote_access/ sudo tar -czvf VS Code-server-with-extensions-for-1.100.2.tar.gz .VS Code-server

Beispiel für ein LCC-Skript (LCC-install-VS C ode-server-v 1.100.2)

Im Folgenden finden Sie ein Beispiel für die Installation einer bestimmten Version des VS-Code-Remoteservers.

#!/bin/bash set -x remote_server_file=VS Code-server-with-extensions-for-1.100.2.tar.gz if [ ! -d "${HOME}/.VS Code-server" ]; then cd /tmp aws s3 cp s3://S3_BUCKET/remote_access/${remote_server_file} . tar -xzvf ${remote_server_file} mv .VS Code-server "${HOME}" rm ${remote_server_file} else echo "${HOME}/.VS Code-server already exists, skipping download and install." fi