Причина, по которой вы не можете использовать веб-предварительный просмотр Cloud Shell для подключения к JupyterLab, заключается в том, что веб-предварительный просмотр подключается к вашему экземпляру Cloud Shell VM, в то время как JupyterLab работает на myvm (отдельном экземпляре), который вы создали с помощью gcloud compute instances create
Однако вы можете использовать ssh туннелирование в Cloud Shell, так же, как вы предлагаете в своем собственном ответе, а затем использовать предварительный просмотр Cloud Shell.
Например, я могу успешно подключиться к JupyterLab с помощью веб-предварительного просмотра, если я выполню следующее в Cloud Shell после настройки переменных среды и создания экземпляра:
export IMAGE_FAMILY="tf-latest-cu92"
export ZONE="us-central1-f"
export INSTANCE_NAME="myvm"
gcloud compute instances create ...
gcloud compute ssh $INSTANCE_NAME --zone=$ZONE -- -L 8080:localhost:8080
ОБНОВЛЕНИЕ : Как указано в комментариях, вышеприведенного недостаточно для того, чтобы JupyterLab (как настроено в Deep Learning Image) работал с Cloud Shell; нам также нужно настроить JupyterLab, чтобы разрешать запросы между источниками. Поскольку мы туннелируем через ssh, рекомендуется также ограничивать соединения JupyterLab локальным хостом (по соображениям безопасности). Для этого выполните следующие команды на myvm (например, после настройки туннеля выше):
myvm$ sudo sed -i \
-e "s/\(c.NotebookApp.ip\).*/\1 = 'localhost'/g; \
s/\(c.NotebookApp.allow_origin\).*/\1 = '*'/g" \
/root/.jupyter/jupyter_notebook_config.py
myvm$ sudo pkill jupyter-lab # restart to pick up config