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

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

python如何获得所有os env?

我的python脚本无法在aws codebuild中运行ubuntu 16容器内获取所有env变量

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

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

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得到的env变量的一部分:

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命令,但它没有用

python-3.x environment-variables containers aws-codebuild
3个回答
1
投票

我找到了!因为一些环境变量是安全的,所以python不能直接打印它们,但仍然使用它们。

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

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


0
投票

如果你有一个文件中的变量说file.sh你可以尝试通过. file.sh或bettter导出你可以尝试dotenv效果很好


0
投票

我想知道这是否是基于您正在显示的环境变量运行sudo命令的结果。

如果是这样,您是否尝试使用sudo -E运行它以将用户的环境传递给由sudo运行的命令?

© www.soinside.com 2019 - 2024. All rights reserved.