如何在AWS Sagemaker笔记本实例中设置多个环境变量?

问题描述 投票:0回答:2

我正在使用 AWS Sagemaker 笔记本实例进行一些实验。因为我还使用在笔记本启动期间执行的生命周期配置脚本,并且还想设置一些环境变量。

由于某种原因,当我在生命周期 shell 脚本中设置多个环境变量时,它们不是由实例设置的,即当我执行

echo $FOO
不打印相关变量。

但是,当我仅设置一个环境变量时,它正在工作,并且我可以在我的笔记本会话中使用它。

我的理解是我启动了所需的内核,

我还尝试通过运行

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 笔记本设置多个环境变量,最好的方法是什么?

amazon-web-services jupyter-notebook conda amazon-sagemaker
2个回答
0
投票

好吧,我已经找到答案了这里。 看来我导出环境变量的方式缺少引号,因此它们没有正确导出。

这样做,有效:

#!/bin/bash 
set -e 
touch /home/ec2-user/anaconda3/envs/python3/etc/conda/activate.d/env_vars.sh 
echo "export MY_KEY='my-key-name'" >> /home/ec2-user/anaconda3/envs/python3/etc/conda/activate.d/env_vars.sh

0
投票

在 AWS SageMaker Notebook 实例生命周期配置中,创建如下所示的脚本来设置环境变量。也可以参考官方的脚本示例。 https://docs.aws.amazon.com/sagemaker/latest/dg/notebook-lifecycle-config.html

#!/bin/bash
set -e
# OVERVIEW
# This script sets username and email address in Git config
# PARAMETERS
YOUR_USER_NAME="***"
YOUR_EMAIL_ADDRESS="***"
sudo -u ec2-user -i <<EOF
git config --global user.name "$YOUR_USER_NAME"
git config --global user.email "$YOUR_EMAIL_ADDRESS"
EOF
# OVERVIEW
# This script sets environment variables
touch /etc/profile.d/jupyter-env.sh
echo "export TWILIO_ACCOUNT_SID=***" >> /etc/profile.d/jupyter-env.sh
echo "export TWILIO_AUTH_TOKEN=***" >> /etc/profile.d/jupyter-env.sh
initctl restart jupyter-server --no-wait
© www.soinside.com 2019 - 2024. All rights reserved.