Envoy Data-Plane-API 的 Python 数据类
项目描述
envoy_data_plane
使用 Betterproto 将 envoyproxy/data-plane-api 协议缓冲区转换为 Python 数据类
预期用途
这是一个帮助库,允许导入 envoy API 中可用的每种类型。
一个用例可能是使用 Python 脚本生成 Envoy 配置。
就我而言,我将在自定义构建的控制平面中使用这个库,以便在我的 IDE 中具有自动完成功能,以及一种基本的验证形式。
将来,这也可能有助于在 Python 中构建惯用的 GRPC 控制平面。
安装
这个包发布到 PyPI:
python -m pip install envoy_data_plane
安装特定的 XDS 修订版
编译后的 python protobuf 文件有可用的分支。
要安装它们,您可以使用以下语法:
pip install git+https://github.com/cetanu/envoy_data_plane@<BRANCH NAME>
例子:
pip install git+https://github.com/cetanu/envoy_data_plane@envoy_v1.13.7
pip install git+https://github.com/cetanu/envoy_data_plane@envoy_v1.16.2
pip install git+https://github.com/cetanu/envoy_data_plane@envoy_v1.17.2
pip install git+https://github.com/cetanu/envoy_data_plane@envoy_v1.18.2
pip install git+https://github.com/cetanu/envoy_data_plane@envoy_v1.19.0
并非所有版本都可用。如果您需要添加另一个问题,请提出问题。
例子
import stringcase
import json
import envoy_data_plane.envoy.api.v2 as envoy
route_config = envoy.RouteConfiguration(
name='MyRouteConfig',
virtual_hosts=[
envoy.route.VirtualHost(
name='SomeWebsite',
domains=['foobar.com'],
routes=[
envoy.route.Route(
name='catchall',
match=envoy.route.RouteMatch(
prefix='/'
),
direct_response=envoy.route.DirectResponseAction(
status=200,
body=envoy.core.DataSource(
inline_string='Hello there'
)
)
)
]
)
]
)
response = envoy.DiscoveryResponse(
version_info='0',
resources=[
route_config
],
)
print(
json.dumps(response.to_dict(casing=stringcase.snakecase), indent=2)
)
结果:
{
"version_info": "0",
"resources": [
{
"name": "MyRouteConfig",
"virtual_hosts": [
{
"name": "SomeWebsite",
"domains": [
"foobar.com"
],
"routes": [
{
"name": "catchall",
"match": {
"prefix": "/",
"headers": [],
"query_parameters": []
},
"direct_response": {
"status": 200,
"body": {
"inline_string": "Hello there"
}
},
"request_headers_to_add": [],
"response_headers_to_add": []
}
],
"virtual_clusters": [],
"rate_limits": [],
"request_headers_to_add": [],
"response_headers_to_add": []
}
],
"response_headers_to_add": [],
"request_headers_to_add": []
}
]
}
项目详情
下载文件
下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。
源分布
envoy_data_plane-0.3.0.tar.gz
(463.9 kB
查看哈希)
内置分布
envoy_data_plane-0.3.0-py3-none-any.whl
(739.7 kB
查看哈希)
关
envoy_data_plane -0.3.0.tar.gz 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | 9fd891934ba14177f99d41b0a8289b4f38d3031ef6e8c5f4f4a79ead887f057f |
|
| MD5 | 8b31cdade33a4637a9c4bb0bd71de51b |
|
| 布莱克2-256 | 8a1be092178e205b769839c8c95acf6a416acbbed54d521f4408e0a2c87059b6 |
关
envoy_data_plane -0.3.0-py3-none-any.whl 的哈希值
| 算法 | 哈希摘要 | |
|---|---|---|
| SHA256 | fc10818c5ac3f37db28e8b0a0f1fe142c133ee59bc21a82442410a84c2a7d0f7 |
|
| MD5 | 158d26b4e4df5e873d39e91f4fbe76bb |
|
| 布莱克2-256 | 92ff54ca23daf16a1436bc50c81e270f6222cb2dfbc555abe0ecbf44fdcf183f |