访问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/>-初始版本。
[![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/>-初始版本。