环境变量管理

barbara的Python项目详细描述


https://repository-images.githubusercontent.com/131429006/7eb3f680-8572-11e9-8c3d-68b1476c50e8#https://img.shields.io/pypi/pyversions/barbara.svg?logo=python&logoColor=yellow&style=for-the-badgehttps://img.shields.io/pypi/dm/barbara.svg?style=for-the-badgehttps://img.shields.io/pypi/l/barbara.svg?style=for-the-badgehttps://img.shields.io/pypi/v/barbara.svg?style=for-the-badge

环境变量管理

安装

$ pip install barbara

用法

yaml格式(.env.yml)

  1. 为您的项目创建一个.env.yml
project:your_projectenvironment:ENVIRONMENT_NAME:developmentDATABASE_URL:template:"{user}:{password}@{host}:{port}/{db_name}"subvariables:user:rootpassword:roothost:127.0.0.1port:5432db_name:sample
  1. 运行barb,系统将提示您输入值
$ barb
.env does not exist. Create it? [y/N]: y
Creating environment: .env
Skip Existing: True
DATABASE_URL:
user [root]:
password [root]: wordpass
host [127.0.0.1]:
port [5432]:
db_name [sample]:
ENVIRONMENT_NAME [development]:
Environment ready!
  1. 检查生成的文件,查看您的值!
$ cat .env
DATABASE_URL=root:wordpass@127.0.0.1:5432/sample
ENVIRONMENT_NAME=development

子变量

子变量使用以下语法工作:

VARIABLE_NAME:template:"{subvariable1}{subvariable2}"subvariables:subvariable1:default value for subvariable 1subvariable2:default value for subvariable 2

对于给定的示例,用户显示为VARIABLE_NAME作为标题,然后提示输入这两个值并提供 默认值。模板中出现的任何子变量也必须出现在子变量字典或 字符串格式化操作将失败。使用python字符串模板语法,可以使用 标准冒号语法。

高级使用(AWS SSM)

注意

必须先在aws ssm中创建值,然后才能检索它们。您还需要正确的IAM 从aws检索值的权限。假设所有值都在静止时加密。

  1. 使用deployments部分为项目创建.env.yml。这部分是一个声明性的继承权 覆盖。部署的根本是最一般的,因此是最低优先级的。作为参考, 路径已作为注释提供,在实践中不需要。
project:your_projectenvironment:DEBUG:1ENVIRONMENT_NAME:developmentDATABASE_URL:template:"{user}:{password}@{host}:{port}/{db_name}"subvariables:user:rootpassword:roothost:127.0.0.1port:5432db_name:sampleHOST_TYPE:localdeployments:-DEBUG# /your_project/DEBUG-staging:-DATABASE_URL# /your_project/staging/DATABASE_URL-ENVIRONMENT_NAME# /your_project/staging/ENVIRONMENT_NAME-app_server:-HOST_TYPE# /your_project/staging/app_server/HOST_TYPE-worker:-HOST_TYPE# /your_project/staging/worker/HOST_TYPE-production:-DATABASE_URL# /your_project/production/DATABASE_URL-ENVIRONMENT_NAME# /your_project/production/ENVIRONMENT_NAME-app_server:-HOST_TYPE# /your_project/production/app_server/HOST_TYPE-worker:-HOST_TYPE# /your_project/production/worker/HOST_TYPE
  1. 运行barb-deploy-p /your_project/staging/app_server/,将使用该搜索路径生成一个新的.env。 以确定每个变量的重写优先级。
$ barb-deploy -p /your_project/staging/app_server/
Creating environment: .env (using search_path: /your_project/staging/app_server/)
Environment ready!
  1. 检查生成的文件,查看您的值!
$ cat .env
DATABASE_URL=postgres://staging:staging@localhost:5432/staging_db
DEBUG=0ENVIRONMENT_NAME=staging
HOST_TYPE=app_server

传统格式(.env.template)

  1. 为您的项目创建一个.env.template
DATABASE_HOST=127.0.0.1COMPLEX_KEY=[username:user]:[password:pass]@$DATABASE_HOST
  1. 运行barb,系统将提示您输入值
$ barb
.env does not exist. Create it? [y/N]: y
Creating environment: .env
Skip Existing: True
COMPLEX_KEY:
username [user]:
password [pass]: wordpass
DATABASE_HOST [127.0.0.1]:
Environment ready!
  1. 检查生成的文件,查看您的值!
$ cat .env
COMPLEX_KEY=user:wordpass@$DATABASE_HOSTDATABASE_HOST=127.0.0.1

legacy子变量通过在.env模板中使用[variable_name:variable_default]语法工作。你 可以在一行中使用任意多个,但不能嵌套它们。

为什么barbara

因为Barbara Liskov创建了Liskov Substitution Principle,并且是 计算机科学和软件工程。芭芭拉是牛顿的隐喻巨人之一,它使我们 看得更远。我谦卑地将我的项目奉献给她和她的贡献,并将此项目奉献给 拥有适合这种奉献精神的许可证的消费者。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java Spring数据JPA+Hibernate在不首先找到父实体的情况下保存子实体   php Java:如何从CLI接收命令   spring为java中的导出数据创建访问文件   java在Windows 8.1上安装Play Framework   java Spring启动白标签错误页面(类型=未找到,状态=404)   java如何在单击时从数组中绘制?   java fn:substringAfter()上次出现   java在IFR语句中使用方法返回   java onPause()或onStop()的名称   对关联对象的关联对象具有条件的java HQL查询   java只打印一次总值,无需迭代   java如何使用抽象Uri buildOn()方法?   如何在Java中执行sudo命令并获得错误输出?   java反射:避免对getConstructor(类<?>…)的未经检查的警告调用作为原始类型类的成员   Java:如何从类中创建的对象调用类方法?   java如何在电子邮件中嵌入图像?   java如何在Android上启用详细GC?   java什么是串行版本id?