使用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