【发布时间】:2019-12-13 04:20:02
【问题描述】:
我正在使用 AWS Sagemaker 笔记本实例进行一些实验。因为我也在使用在笔记本启动期间执行的生命周期配置脚本,并且还想设置一些环境变量。
由于某种原因,当我在生命周期 shell 脚本中设置多个环境变量时,它们不是由实例设置的,即当我执行时
echo $FOO
不打印相关变量。
但是,当我只设置一个环境变量时,它正在工作,我可以在我的笔记本会话中使用它。
我的理解是我启动了想要的Kernel,
我还尝试通过运行export FOO=BAR 在笔记本中设置环境变量,但这也不起作用。
按照 AWS 提供的示例脚本,我进行了更改以设置变量,但是当我打印 $FOO 时,它似乎没有显示。
我尝试在切换到 ec2-user 之前和之后设置环境(在命令以 root 身份执行之前),但仍然没有任何帮助。
#!/bin/bash
cd /home/ec2-user/anaconda3/envs/python3
mkdir -p ./etc/conda/activate.d
mkdir -p ./etc/conda/deactivate.d
touch ./etc/conda/activate.d/env_vars.sh
touch ./etc/conda/deactivate.d/env_vars.sh
echo export FOO=BAR >> ./etc/conda/activate.d/env_vars.sh
echo unset FOO >> ./etc/conda/deactivate.d/env_vars.sh
echo export FOO2=BAR2 >> ./etc/conda/activate.d/env_vars.sh
echo unset FOO2 >> ./etc/conda/deactivate.d/env_vars.sh
sudo -u ec2-user -i <<'EOF'
cd /home/ec2-user
# This will affect only the Jupyter kernel called "conda_python3".
source activate python3
pip install --upgrade pip
pip install scipy xgboost sklearn
# You can also perform "conda install" here as well.
source deactivate
EOF
我想在启动时为此 Sagemaker 笔记本设置多个环境变量,最好的方法是什么?
【问题讨论】:
-
来自 AWS 的示例包含设置环境变量:AWS Lifecycle Config Samples
-
在生命周期配置脚本中设置环境变量的 AWS 示例代码的直接链接位于 here。
标签: amazon-web-services jupyter-notebook conda amazon-sagemaker