Conéctese a una VPC con subredes sin acceso a Internet - Amazon SageMaker AI

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Conéctese a una VPC con subredes sin acceso a Internet

Antes de conectar Visual Studio Code a los espacios de Studio en subredes privadas sin acceso a Internet, asegúrese de que su administrador lo haya hecho. Configurar Studio para que se ejecute con subredes sin acceso a Internet dentro de una VPC

Dispone de dos opciones para conectar el código local de Visual Studio a los espacios de Studio en subredes privadas:

  • Configure el proxy HTTP

  • Servidor remoto VS Code y extensiones preempaquetados

Proxy HTTP con lista de permisos controlada

Cuando tu espacio de Studio esté protegido por un firewall o un proxy, pídele al administrador que te permita acceder al servidor VS Code y a los puntos de conexión relacionados con las extensiones. CDNs Para obtener más información, consulte Configure el proxy HTTP con una lista de permisos controlada.

Una vez configurado, puede configurar el proxy HTTP para el desarrollo remoto de VS Code proporcionando la URL del proxy con la remote.SSH.httpProxy configuración o. remote.SSH.httpsProxy

nota

Considere habilitar «Remote.ssh: Use Curl and Wget Configuration Files» para usar la configuración del entorno y los archivos remotos. curlrc wgetrc Esto es para que los wgetrc archivos curlrc y, colocados en sus respectivas ubicaciones predeterminadas en el SageMaker espacio, puedan usarse para habilitar ciertos casos.

Esta opción funciona cuando se le permite configurar un proxy HTTP y le permite instalar extensiones adicionales de forma flexible, ya que algunas extensiones requieren un punto final público.

Servidor remoto VS Code y extensiones preempaquetados

Cuando tus espacios de Studio no puedan acceder a puntos finales externos para descargar el servidor remoto y las extensiones de VS Code, puedes empaquetarlos previamente. Con este enfoque, tu administrador puede exportar un archivo tar que contenga el .VS Code-server directorio de una versión específica de VS Code. A continuación, el administrador utiliza un script de configuración del ciclo de vida de SageMaker IA (LCC) para copiar y extraer el tarball en su directorio principal (). /home/sagemaker-user Para obtener más información, consulte Configure el servidor remoto y las extensiones de Visual Studio Code preempaquetados.

Instrucciones para usar el empaquetado previo del servidor remoto y las extensiones de VS Code

  1. Instala VS Code en tu máquina local

  2. Cuando te conectas al SageMaker espacio:

    • Utilice el perfil predeterminado para garantizar la compatibilidad con las extensiones preempaquetadas. De lo contrario, tendrás que instalar las extensiones utilizando los archivos VSIX descargados después de conectarte al espacio de estudio.

    • Elige un script LCC específico de la versión de VS Code para adjuntarlo al espacio cuando lo abras.

Ejemplo de uso de Dockerfile para empaquetar previamente el servidor remoto y las extensiones de VS Code

El siguiente es un ejemplo de Dockerfile para lanzar un contenedor local con el servidor SSH preinstalado, si no es posible crear un espacio con acceso remoto e Internet.

nota
  • En este ejemplo, el servidor SSH no requiere autenticación y solo se usa para exportar el servidor remoto de VS Code.

  • El contenedor debe construirse y ejecutarse en una arquitectura x64.

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"]

Utilice los siguientes comandos para crear y ejecutar el contenedor:

# 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 &'

Conéctese mediante el siguiente comando:

ssh sagemaker-user@localhost -p 2222

Antes de poder conectar este contenedor, configure lo siguiente en el .ssh/config archivo. Después, cuando se conecte, podrá verlo remote_access_export como nombre de host en el panel lateral remoto de SSH. Por ejemplo:

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

Archive /tmp/remote_access/.VS Code-server y siga los pasos del servidor remoto y las extensiones preempaquetadas de VS Code para conectar e instalar la extensión. Después de descomprimirla, asegúrate de que la .VS Code-server carpeta aparezca como la carpeta principal.

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

Ejemplo de script LCC (C 1.100.2) LCC-install-VS ode-server-v

El siguiente es un ejemplo de cómo instalar una versión específica del servidor remoto de VS Code.

#!/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