Comment spécifier les paramètres proxy pour les blocs-notes Jupyter exécutés sur une instance de bloc-notes Amazon SageMaker ?

Dernière mise à jour : 24/09/2019

J'essaie d'utiliser une configuration de cycle de vie pour configurer les paramètres proxy sur un nouveau bloc-notes Jupyter ou sur l'environnement shell d'un bloc-notes existant. Cependant, Jupyter ne récupère pas les paramètres. Comment puis-je spécifier les paramètres proxy pour les blocs-notes Jupyter exécutés sur mon instance de bloc-notes Amazon SageMaker et m'assurer que Jupyter utilise les paramètres ?

Brève description

Les blocs-notes Jupyter ne récupèrent pas les paramètres proxy à partir d'une configuration de cycle de vie, sauf si vous spécifiez les paramètres proxy dans l'environnement de serveur de blocs-notes iPython.

Pour configurer le profil de serveur de bloc-notes iPython, créez un script Python et enregistrez-le sous le nom 00-startup.py dans /home/ec2-user/.ipython/profile_default/startup. Le chemin /home/ec2-user/.ipython/profile_default/startup est créé lorsque vous ouvrez un bloc-notes Jupyter sur une instance de bloc-notes Amazon SageMaker. Jupyter exécute des scripts dans l'ordre lexicographique. Ainsi, lorsqu'un nom de fichier de script commence par « 00 », Jupyter l'exécute en premier.

Remarque : les blocs-notes Jupyter et le shell sont exécutés en tant que processus distincts. Cela signifie que les paramètres de proxy appliqués via 00-startup.py ne sont pas transmis au shell. En outre, le shell par défaut qui est créé lorsque vous ouvrez un terminal dans Jupyter est un shell qui ne correspond pas à la connexion, également appelé shell interactif. Pour appliquer les paramètres de proxy à l'environnement shell avec une configuration de cycle de vie, remplacez le shell interactif par défaut par un shell de connexion tel que bash et placez les paramètres de proxy dans /home/ec2-user/.profile.

Résolution

Téléchargez et exécutez le script de configuration du cycle de vie proxy-for-jupyter à partir du référentiel GitHub AWS Labs :

  • Pour configurer un proxy pour un bloc-notes Jupyter et le shell, conservez toutes les instructions echo dans le script.
  • Pour configurer un proxy pour uniquement un bloc-notes Jupyter, supprimez les quatre premières instructions echo du script.
  • Pour configurer un proxy pour le shell uniquement, supprimez les quatre dernières instructions echo du script.

Une fois le script exécuté, vous pouvez voir les paramètres proxy dans le bloc-notes Jupyter et le terminal. Pour confirmer que le proxy fonctionne comme prévu :

1.    Ouvrez une fenêtre de terminal sur votre instance de bloc-notes Amazon SageMaker, puis exécutez la commande suivante pour tester la connexion proxy :

wget google.com

Si vous obtenez une sortie comme celle-ci, le proxy est configuré correctement sur le terminal :

--2019-09-24 07:46:05--  http://google.com/
Resolving proxy.local (proxy.local)...

2.    Ouvrez un bloc-notes Jupyter sur votre instance de bloc-notes Amazon SageMaker, puis exécutez la commande suivante pour répertorier les variables d'environnement :

%env

Exemple de sortie :

{...'GIT_PAGER': 'cat',
 'MPLBACKEND': 'module://ipykernel.pylab.backend_inline',
 'HTTP_PROXY': 'http://proxy.local:3128',
 'HTTPS_PROXY': 'http://proxy.local:3128'
 'NO_PROXY': 's3.amazonaws.com,127.0.0.1,localhost'}

Remarque : les valeurs spécifiques, telles que les URL de proxy, seront propres à votre configuration.

3.    Effectuez une demande pour confirmer que l'instance de bloc-notes utilise les paramètres proxy :

import requests
requests.get("http://google.com")

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d'aide ?