【问题标题】:python os.environ['SECRET_NAME'] cannot get value "SECRET_VALUE" from aws codebuild ecr containerpython os.environ['SECRET_NAME'] 无法从 aws codebuild ecr 容器中获取值“SECRET_VALUE”
【发布时间】:2019-08-03 16:56:43
【问题描述】:

python如何获取所有的os env?

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

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命令,但没有成功

【问题讨论】:

  • 这与python无关。 Python 可以轻松枚举它继承的所有环境变量。你运行 python 程序的方式和 printenv 命令是有区别的。请更新您的问题以显示您如何运行每个程序。您的 python env 输出显示 SUDO_ vars 和 printenv 输出的事实并不意味着您正在通过 sudo 启动 python 程序,而不是 printenv。
  • 我将 getenv.py 放在名为 /Script 的文件夹中,并同时运行 python3 getenv.pysudo python3 getenv.py。但是,它对两者都不起作用
  • 在同一个 shell 中输入printenv 然后python3 getenv.py。它们应该显示相同的数据。你观察什么?请注意,sudo 默认情况下会丢弃大多数环境变量以确保安全。因此,如果您在运行 sudo python3 getenv.py 时没有看到预期的环境变量,这是预期的行为,与 python 无关。
  • 我明白了。你是对的,python没有问题。它无法打印安全但仍然可以使用它们的变量。

标签: python-3.x environment-variables containers aws-codebuild


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

      【讨论】:

        猜你喜欢
        • 2021-04-11
        • 2021-11-17
        • 2018-10-26
        • 1970-01-01
        • 1970-01-01
        • 2018-09-08
        • 2023-03-16
        • 1970-01-01
        • 2019-08-20
        相关资源
        最近更新 更多