使用yaml
声明您想要的 Kong。停止手动curl
并维护它们的文档。
通过 Kong Admin API(REST、异步 HTTP、JSON)管理资源。包括向管理 API 本身添加授权的示例。
Luca Sbardella 的一些更改向后与 aio-kong 不兼容。
make
规则test
、 retest
、 build
、 install
、 publish_pypi
、....venvs/
,由make
规则处理clarity
、 instafail
和spec
,测试在dev venv中运行pur
用于请求, black
, flake8
, mypy
用于代码wheel
和用于发布PyPis的twine
--output
以限制输出到 JSON 属性(对于脚本),或者设置None
examples/
和示例端点KONG_ADMIN_URL
,默认为http://localhost:8001
KONG_ADMIN_KEY
以通过环回和密钥身份验证使用 Kong Admin API--admin-url
和--admin-key
优先于以上两个KONG_URL
BWIC--ip
BWIC待办事项:
来自 PyPI:
pip install --upgrade kong-incubator
需要 Python >= 3.6。
KONG_ADMIN_URL
默认为 http://localhost:8001。
创建或升级资源(是 Mockbin 的代理):
kong-incubator --yaml examples/mockbin.yaml
为其消费者生成随机key
:
kong-incubator --key-auth mocker
仅当key
已设置时才输出消费者。
使用更改的--yaml
运行只会升级更改的部分。从文件中删除的资源不会从 Kong 中删除。要从 Kong 中删除资源,请在 YAML 中为其添加ensure: absent
。
对于所有选项的列表,请在没有任何选项的情况下运行:
$ kong-incubator
Usage: kong-incubator [OPTIONS]
Options:
--admin-url TEXT Kong Admin API URL.
Default: http://localhost:8001
Precedence over KONG_ADMIN_URL
--admin-key TEXT Kong Admin API apikey if required.
Default: None
Precedence over KONG_ADMIN_KEY
--key-auth TEXT Consumer to generate a key or output the existing.
--yaml FILENAME Defines one or many Kong resources by their target
state.
--output TEXT If given, restrict output to this JSON property, or
None.
By default, output everything.
--version Output version and exit.
--help Show this message and exit.
创建需要密钥身份验证的 Kong Admin API 环回:
kong-incubator --yaml examples/kadmin.yaml
kong-incubator --key-auth root --output key
从现在开始,通过环回管理 Kong(检查请求标头apikey
):
export KONG_ADMIN_URL=http://localhost:8000/kadmin
export KONG_ADMIN_KEY={{thekeyabove}}
kong-incubator --yaml ..
选项--admin-url
或--admin-key
可以使用或优先使用:
export KONG_ADMIN_URL=http://localhost:8000/kadmin
kong-incubator --admin-key={{thekeyabove}} --yaml ..
在 Kubernetes/OpenShift 中,删除到 8001 和 8444 的路由。
import json
from kong . client import Kong
async with Kong () as cli :
services = await cli . services . get_list ()
print ( json . dumps ( services , indent = 4 ))
测试假设您有 Kong Admin API 在 http://localhost:8001 上运行。
如果您有docker-compose
可用,您可以运行make dc
将 kongpose/ 作为 git 子模块获取,并在后台启动它进行测试。使用make dc_rm
停止并删除堆栈,包括数据库卷。
运行make
作为其他三个规则的快捷方式:
make test
创建.venvs/dev
并安装需求以及 dev。要仅重新运行失败的测试(如果有),否则全部重新运行,请使用make retest
,它会跳过需求的安装(-dev)。两者都清理了它们创建的 Kong 资源。
make build
在每次运行时重新创建.venvs/release
,在那里安装构建工具并构建源代码和轮分布以准备发布。
make install
从源代码树安装软件包。源代码编辑后无需重新安装,因为软件包安装后可编辑。
您可以make --jobs
并行运行上述规则,因此在 3 个 CPU 核心上运行。
运行make pur
来更新具有需求(-dev)的依赖项的锁定版本。
此外,运行make {{tool}}
for black、flake8 或 mypy。 flake8
和mypy
以及 pytest 的设置位于它们自己的配置文件中,因为它们尚不支持pyproject.toml
,例如black
。
运行make clean
以删除.venvs/
、 build/
、 dist/
和源树缓存。
请参阅make help
了解所有规则:
all Run test, build and install (default goal)
black Reformat source code in-place
build Build source dist and wheel
clean Remove .venvs, builds, dists, and caches
dc_rm Stop and remove docker-compose env and volumes
dc Start docker-compose env on background
flake8 Run flake8 for static code analysis
install Install package from source tree, as --editable
install_pypi Install the latest PyPI release
install_test Install the latest test.pypi.org release
mypy Run mypy for static type checking
publish_pypi Publish dists to PyPI
publish_test Publish dists to test.pypi.org
pur Update requirements(-dev) for locked versions
retest Run failed tests only, if none, run all
test Run tests, installs requirements(-dev) first
uninstall Uninstall the package, regardless of its origin
包含 Twine,可通过 HTTPS 上传。
测试 PyPI:
make publish_test
到 PyPI
make publish_pypi