访问platform.sh环境变量的小助手。

platformshconfig的Python项目详细描述


#platform.sh配置读取器(python)

[![Circleci状态](https://circleci.com/gh/platformsh/config-reader-python.svg?style=shield&circle token=:circle token)(https://circleci.com/gh/platform sh/config reader python)

此库提供了一种简化且易于使用的与platform.sh环境交互的方式。与自己读取原始环境变量相比,它提供了更干净地访问路由和关系的实用方法。



`` python
import sys
import pysolr


=config.formatted_credentials('solr,'pysolr''pysolr''pysolr'pysolr')


conn=pysolr.solr(格式化)conn=pysolr.solr(格式化)

;这里的conn就做这里的conn吧。
`` `

` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ` ``

` config`现在是一个'config'对象,提供对platform.sh环境的访问。

如果返回"false",则大多数其他函数在使用时都会抛出异常。

/>
config.on_enterprise()

config.on_production()
````

请参阅[platform.sh文档](https://docs.platform.sh/development/variables.html)了解每一个的说明。




config.projectentropy
```

###读取服务凭据

[平台.sh服务](https://docs.platform.sh/configuration/service s.html)在"services.yaml"文件中定义,并通过在应用程序的".platform.app.yaml"文件中列出与该服务的"关系"来向应用程序公开。用户、密码、主机等信息随后在"platform_relationships"环境变量(base64编码的json字符串)中公开给正在运行的应用程序。以下方法比自己解码环境变量更容易访问凭据信息。

``python
creds=config.credentials('database')
```

是适当的用户、密码、主机、数据库名称和其他相关信息。有关每个属性的确切结构和含义,请参阅[服务文档](https://docs.platform.sh/configuration/services.html)。在大多数情况下,信息可以直接传递到用于连接服务的任何其他客户端库。


d是某种类型的dsn字符串,或者需要连接到数据库名的某些值,等等。可以使用"凭据格式化程序"。凭证格式化程序是任何"可调用的"(函数、匿名函数、对象方法等),它接受凭证数组并返回任何类型,因为库可能需要不同的类型。

盒子。这允许第三方库提供自己的格式化程序,这些格式化程序可以很容易地集成到"config"对象中,以便更容易地使用。

``python
def format_my_service(credentials):
return"一些基于"credentials"的字符串。"

_格式化程序("我的服务",格式化我的服务)

第二个是以前用"register_formatter()"注册的格式化程序。如果服务或格式化程序丢失,将引发异常。"formatted"的类型取决于格式化程序函数,可以安全地直接传递到客户端库。

请注意,"pymongo"仍然需要凭据字典中作为单独参数传递的用户名和密码。
*`pysolr'返回适合使用"pysolr"连接到apache solr的dsn。
*`postgresql\u dsn'返回适合postgresql连接的dsn。


###读取platform.sh variables

platform.sh允许您定义在生成时、运行时或两者都可用的任意变量。它们存储在"platform_variables"环境变量中,该环境变量是一个base64编码的json字符串。

以下两种方法允许从代码中访问这些值,而无需自己解码这些值:

``python
config.variables()
````

通常不需要此方法,首选"config.variable()。

`` python
config.variable("foo","default")
````

>此方法查找"foo"变量。如果找到,它会被退回。否则,第二个可选参数将作为默认值返回。

,但它还包括缓存配置、TLS设置等。路由还可以有一个可选的ID,这是访问它们的首选方式。

``python
config.route("main")
````

`route()方法为路由ID(在本例中为"main")获取一个字符串并返回对应的路由数组。如果找不到路由,则会引发异常。

若要访问所有路由或搜索没有ID的路由,则"routes()"方法返回由其URL键入的路由字典。这反映了"platform廑routes"环境变量的结构。


>如果在生成阶段调用,则会引发异常。




R/>-初始版本。

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

推荐PyPI第三方库


热门话题
cassandra 2.0 SparkSQL不支持java。util。日期   java如何在Liferay中将值从输入发送到AutoLogin类   java创建列表并获取每个列表的最后一项   java堆栈被覆盖了   java Velocity#foreach,带XmlTool节点列表,带文本节点   java为什么不使用BitmapFactory。解码文件返回空值?   java如何将git存储url连接到本地存储库,以便每次都获得更新的代码?   java为什么Maven找不到这个jar   java JavaCV画布保持空白   java使用datePickerDialog当我选择日期时,月的值出乎意料   Solaris 9上的Java 1.6.0_45返回重新定位错误“symbol\u fmodf:未找到引用的符号”   java如何高效地返回部分文件?   JOptionPane的Java问题