python os.environ['SECRET_NAME'] 无法从 aws codebuild ecr 容器中获取值 "SECRET_VALUE"

python os.environ['SECRET_NAME'] cannot get value "SECRET_VALUE" from aws codebuild ecr container

How can python get all os env?

我的 python 脚本无法获取里面的所有环境变量 运行 ubuntu aws codebuild 中的 16 个容器

for item, value in os.environ.items():
    print('{}: {}'.format(item, value))

这些是 python 脚本获得的环境变量:

SUDO_UID: 0
USER: root
HOME: /root
SUDO_USER: root
PATH: 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
SUDO_COMMAND: /usr/bin/python3 get-env.py
SHELL: /bin/bash
USERNAME: root
TERM: xterm
LANG: C.UTF-8
HOSTNAME: 53f187197b9e
LC_ALL: C.UTF-8
MAIL: /var/mail/root
LOGNAME: root

这些是环境变量的一部分,命令 printenv 得到:

MAVEN_OPTS=-Dmaven.wagon.httpconnectionManager.maxPerRoute=2
CODEBUILD_LAST_EXIT=0
CODEBUILD_START_TIME=1552450745205
CODEBUILD_AGENT_ENDPOINT=http://127.0.0.1:7831
HOSTNAME=53f187197b9e
SHLVL=1
HOME=/root
AWS_EXECUTION_ENV=AWS_ECS_EC2
FPM_MAX_CHILDREN=32
NGINX_LOG_PATH=/var/log/nginx
COMPOSER_HOME=/root/composer
VERSION=0.7.0
COMPOSER_ALLOW_SUPERUSER=1
TERM=xterm
FPM_MAX_REQUEST=1024
.....

我尝试使用 export 命令,但没有成功

如果文件中有变量,比如 file.sh,您可以尝试通过 . file.sh 导出 或者你可以试试 dotenv 效果很好

我想知道这是否是 运行根据您显示的环境变量使用 sudo 命令的结果。

如果是这样,您是否尝试过 运行将其与 sudo -E 结合使用以将用户环境传递给 sudo 运行 命令?

我找到了!因为有些环境变量是安全的,所以python不能直接打印,但还是可以用。

我们可以在bitbucket管道变量示例中看到它。

https://www.youtube.com/watch?v=RVwkT4oHDd8