yaml
を使用して、必要な Kong を宣言します。手動のcurl
とそのドキュメントの保守を停止します。
Kong Admin API (REST、非同期 HTTP、JSON) を介してリソースを管理します。 Admin API 自体に認可を追加する例が含まれています。
Luca Sbardella によるいくつかの変更は、aio-kong と下位互換性がありません。
make
ルールtest
、 retest
、 build
、 install
、 publish_pypi
などを追加します。make
ルールによって処理される、開発およびリリース用の.venvs/
の作成を追加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
を追加して、上記の 2 つよりも優先します。KONG_URL
BWIC を削除--ip
BWICを削除しますTODO:
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 サブモジュールとして取得し、テストのためにバックグラウンドで開始できます。 DB のボリュームを含むスタックを停止および削除するには、 make dc_rm
を使用します。
他の 3 つのルールのショートカットとしてmake
実行します。
make test
.venvs/dev
を作成し、要件と dev をインストールします。失敗したテストがある場合のみ再実行し、そうでない場合はすべてを再実行するには、要件 (-dev) のインストールをスキップするmake retest
を使用します。どちらも、作成した Kong リソースをクリーンアップします。
make build
実行のたびに.venvs/release
再作成し、そこにビルド ツールをインストールし、公開できる状態のソースとホイール dists をビルドします。
make install
ソース ツリーからパッケージをインストールします。パッケージは編集可能にインストールされるため、ソース編集後に再インストールする必要はありません。
make --jobs
、上記のルールを並列実行できるため、3 つの CPU コアで実行できます。
make pur
実行して、requirements(-dev) でロックされた依存関係のバージョンを更新します。
さらに、black、flake8、mypy に対してmake {{tool}}
を実行します。 flake8
とmypy
、および pytest の設定は、 black
などのpyproject.toml
まだサポートしていないため、独自の構成ファイル内にあります。
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
HTTPS 経由でアップロードするための麻ひもが含まれています。
PyPIをテストするには:
make publish_test
PyPIへ
make publish_pypi