ประกาศ Kong ที่คุณต้องการด้วย yaml
หยุด manual curl
และดูแลรักษาเอกสารเหล่านั้น
จัดการทรัพยากรผ่าน Kong Admin API (REST, async HTTP, JSON) รวมตัวอย่างเพื่อเพิ่มการอนุญาตให้กับ Admin API เอง
การเปลี่ยนแปลงบางอย่างย้อนหลังเข้ากันไม่ได้กับ aio-kong โดย Luca Sbardella
make
Rules test
, retest
, build
, install
, publish_pypi
, ....venvs/
สำหรับ dev และ release จัดการโดยกฎ make
clarity
, instafail
และ spec
, การทดสอบรันใน dev venvpur
สำหรับ reqs และ black
, flake8
, mypy
สำหรับโค้ดwheel
for bdist และ twine
เพื่อเผยแพร่ PyPis--output
เพื่อจำกัดเอาต์พุตให้เป็นคุณสมบัติ JSON (สำหรับสคริปต์) หรือ None
examples/
สำหรับ Kong Admin API loopback และตัวอย่างจุดสิ้นสุดผ่านทางมันKONG_ADMIN_URL
โดยมีค่าเริ่มต้นเป็น http://localhost:8001
KONG_ADMIN_KEY
เพื่อใช้ Kong Admin API ผ่านทาง loopback และ key-auth--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 ให้เพิ่มให้ 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 Loopback ที่ต้องใช้คีย์รับรองความถูกต้อง:
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
เพื่อหยุดและลบสแต็ก รวมถึงวอลุ่มสำหรับ DB
เรียกใช้ make
เป็นทางลัดสำหรับกฎอีกสามข้อ:
make test
สร้าง .venvs/dev
และติดตั้งข้อกำหนด รวมถึง dev หากต้องการรันซ้ำเฉพาะการทดสอบที่ล้มเหลว (ถ้ามี) ให้ใช้ make retest
ซึ่งข้ามการติดตั้งข้อกำหนด (-dev) ทั้งสองทำความสะอาดทรัพยากร Kong ที่พวกเขาสร้างขึ้น
make build
สร้าง .venvs/release
ใหม่ในแต่ละรัน ติดตั้งเครื่องมือ build ที่นั่น และสร้าง source และ wheel dists ที่พร้อมที่จะเผยแพร่
make install
ติดตั้งแพ็คเกจจากแผนผังต้นทาง ไม่จำเป็นต้องติดตั้งใหม่หลังจากแก้ไขซอร์ส เนื่องจากสามารถติดตั้งแพ็คเกจที่แก้ไขได้
คุณสามารถ make --jobs
เพื่อรันกฎข้างต้นแบบขนานได้ ดังนั้นต้องใช้ CPU 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