Python configparser在Gitlab中的远程文件



我需要重构一个K8s Python应用程序,以便它从远程Giltab项目获得一些配置,因为出于各种原因,我们希望将应用程序设置与管道/部署环境解耦。

在我的功能测试中,这是有效的:

import configparser
config = configparser.ConfigParser()
config_file = "config.ini" # local file for testing
config.read(config_file)

[' config.ini ']

然而,当我试图从远程文件(我们的要求)读取配置时,这不起作用:

import requests
import os
token = os.environ.get('GITLAB_TOKEN')
headers = {'PRIVATE_TOKEN': token}
params  = { 'ref' : 'master' }
response = requests.get('https:/path/to/corp/gitlab/file/raw', params=params, 
headers=headers
config = configparser.ConfigParser()
configfile = response.content.decode('utf-8')
print(configfile) # this is good!
config.read(configfile) # this fails to load the contents into configparser

[]

我得到一个空列表。我可以创建一个文件,或者从请求中打印configfile对象的内容。Get call, ini数据看起来不错。config.read()似乎无法将其作为对象加载到内存中,似乎只能通过从磁盘读取文件来工作。好像是在写请求的内容。使用本地的.ini文件会破坏使用远程配置库的全部目的。

是否有一种好方法从远程读取该配置文件,并在容器运行时配置解析器访问它?

我得到了这个工作:

config.read_string(configfile)

相关内容

  • 没有找到相关文章

最新更新