Объявите нужный вам Kong с помощью yaml
. Прекратите ручное curl
и сохранение документации по ним.
Управляет ресурсами через Kong Admin API (REST, асинхронный HTTP, JSON). Включает пример добавления авторизации в сам Admin API.
Некоторые изменения обратно несовместимы с айо-конгом Луки Сбарделлы.
make
: test
, retest
, build
, install
, publish_pypi
,....venvs/
для разработки и выпуска, обрабатываемое правилами make
.clarity
, instafail
и spec
, тесты выполняются в dev venv.pur
для требований и black
, flake8
, mypy
для кода.wheel
для bdist и twine
для публикации PyPis.--output
, чтобы ограничить вывод свойством JSON (для скриптов) или оставить None
examples/
для обратной связи Kong Admin API и пример конечной точки через него.KONG_ADMIN_URL
, по умолчанию http://localhost:8001
KONG_ADMIN_KEY
для использования Kong Admin API через петлю и аутентификацию по ключу.--admin-url
и --admin-key
чтобы иметь приоритет над двумя указанными выше.KONG_URL
BWIC--ip
BWICЗАДАЧА:
Из ПиПИ:
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, добавьте ensure: absent
для него в YAML.
Чтобы просмотреть список всех параметров, запустите без них:
$ 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). Оба очищают созданные ими ресурсы Конга.
make build
воссоздает .venvs/release
при каждом запуске, устанавливает туда инструменты сборки и собирает дистрибутивы исходного кода и колес, готовые к публикации.
make install
устанавливает пакет из дерева исходного кода. Нет необходимости переустанавливать после редактирования исходного кода, поскольку пакет устанавливается с возможностью редактирования.
Вы можете make --jobs
для параллельного выполнения вышеуказанных правил, следовательно, на 3 ядрах ЦП.
Запустите make pur
, чтобы обновить версии, заблокированные требованиями (-dev), для зависимостей, в которых они есть.
Кроме того, запустите make {{tool}}
для 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