使用1Password CLI启动Bruno时,.env秘密引用未替换如何解决?
问题分析与解决办法
核心问题在于Bruno读取环境变量的方式和printenv不同:op run会把1Password秘密引用替换后注入到子进程的环境变量中,但如果Bruno是直接读取本地.env文件的原始内容,而非读取进程的环境变量,自然不会识别到替换后的密钥。
可能的解决步骤:
跳过本地.env文件,直接通过op run注入环境变量
不用依赖.env文件,直接让op run把变量传递给Bruno,命令改成:op run --no-masking --env API_KEY="op://Private/api_key/password" -- bruno这样
op run会直接将替换后的密钥注入到Bruno的进程环境变量中,而非通过文件传递。确认Bruno的变量引用逻辑
在Bruno的请求配置里,确保你是通过进程环境变量引用密钥(比如用{{env.API_KEY}}这类语法),而不是直接读取.env文件里的字符串。如果Bruno默认优先加载本地.env文件的内容,你可能需要在Bruno的设置里调整,让它优先使用进程环境变量。临时替换.env文件内容(备选方案)
如果Bruno必须读取本地.env文件,可以先让op run把替换后的变量写入临时文件,再让Bruno加载临时文件:op run --no-masking --env-file=.env -- sh -c 'printenv API_KEY > .env.tmp && bruno --env-file=.env.tmp && rm .env.tmp'这个命令会先生成替换后的临时.env文件,让Bruno加载后再删除临时文件。
内容的提问来源于stack exchange,提问作者Luca
相关产品推荐
相关产品推荐

