コンテンツにスキップ
Kong Logo | Kong Docs Logo
  • ドキュメント
    • API仕様を確認する
      View all API Specs すべてのAPI仕様を表示 View all API Specs arrow image
    • ドキュメンテーション
      API Specs
      Kong Gateway
      軽量、高速、柔軟なクラウドネイティブAPIゲートウェイ
      Kong Konnect
      SaaSのエンドツーエンド接続のための単一プラットフォーム
      Kong AI Gateway
      GenAI インフラストラクチャ向けマルチ LLM AI Gateway
      Kong Mesh
      Kuma と Envoy をベースにしたエンタープライズサービスメッシュ
      decK
      Kongの構成を宣言型で管理する上で役立ちます
      Kong Ingress Controller
      Kubernetesクラスタ内で動作し、Kongをプロキシトラフィックに設定する
      Kong Gateway Operator
      YAMLマニフェストを使用してKubernetes上のKongデプロイメントを管理する
      Insomnia
      コラボレーティブAPI開発プラットフォーム
  • Plugin Hub
    • Plugin Hubを探索する
      View all plugins すべてのプラグインを表示 View all plugins arrow image
    • 機能性 すべて表示 View all arrow image
      すべてのプラグインを表示
      AI's icon
      AI
      マルチ LLM AI Gatewayプラグインを使用してAIトラフィックを管理、保護、制御する
      認証's icon
      認証
      認証レイヤーでサービスを保護する
      セキュリティ's icon
      セキュリティ
      追加のセキュリティレイヤーでサービスを保護する
      トラフィック制御's icon
      トラフィック制御
      インバウンドおよびアウトバウンドAPIトラフィックの管理、スロットル、制限
      サーバーレス's icon
      サーバーレス
      他のプラグインと組み合わせてサーバーレス関数を呼び出します
      分析と監視's icon
      分析と監視
      APIとマイクロサービストラフィックを視覚化、検査、監視
      変革's icon
      変革
      Kongでリクエストとレスポンスをその場で変換
      ログ記録's icon
      ログ記録
      インフラストラクチャに最適なトランスポートを使用して、リクエストと応答データをログに記録します
  • サポート
  • コミュニティ
  • Kongアカデミー
デモを見る 無料トライアルを開始
Kong Gateway
3.8.x
  • Home icon
  • Kong Gateway
  • Plugin Development
  • インストールと配布
report-issue問題を報告する
  • Kong Gateway
  • Kong Konnect
  • Kong Mesh
  • Kong AI Gateway
  • Plugin Hub
  • decK
  • Kong Ingress Controller
  • Kong Gateway Operator
  • Insomnia
  • Kuma

  • ドキュメント投稿ガイドライン
  • 3.10.x (latest)
  • 3.9.x
  • 3.8.x
  • 3.7.x
  • 3.6.x
  • 3.5.x
  • 3.4.x (LTS)
  • 3.3.x
  • 2.8.x (LTS)
  • アーカイブ (2.6より前)
  • はじめに
    • Kong Gatewayの概要
    • サポート
      • バージョンサポートポリシー
      • サードパーティの依存関係
      • ブラウザサポート
      • 脆弱性パッチ適用プロセス
      • ソフトウェア部品表
    • 安定性
    • リリースノート
    • 破壊的な変更
      • Kong Gateway 3.8.x
      • Kong Gateway 3.7.x
      • Kong Gateway 3.6.x
      • Kong Gateway 3.5.x
      • Kong Gateway 3.4.x
      • Kong Gateway 3.3.x
      • Kong Gateway 3.2.x
      • Kong Gateway 3.1.x
      • Kong Gateway 3.0.x
      • Kong Gateway 2.8.x 以前
    • キーコンセプト
      • サービス
      • ルート
      • コンシューマ
      • アップストリーム
      • プラグイン
      • コンシューマグループ
    • How Kong Works
      • ルーティングトラフィック
      • ロードバランシング
      • ヘルスチェックとサーキットブレーカ
    • 用語集
  • Kong を始めよう
    • Kong をゲットする
    • サービスとルート
    • レート制限
    • プロキシキャッシュ
    • キー認証
    • ロードバランシング
  • コングをインストールする
    • 概要
    • Kubernetes
      • 概要
      • Kong Gatewayをインストール
      • Admin API
      • Kong Manager をインストールする
    • Docker
      • docker run を使用する
      • 独自の Docker イメージをビルドする
    • Linux
      • Amazon Linux
      • Debian
      • Red Hat
      • Ubuntu
    • インストール後
      • データストアを設定
      • エンタープライズライセンスを適用
      • Kong Managerを有効にする
  • Kong in production
    • 展開のトポロジーズ
      • 概要
      • ハイブリッドモード
        • 概要
        • ハイブリッドモードでKong Gatewayをデプロイする
      • DB-lessデプロイ
      • 繁体字版
    • Running Kong
      • non-rootユーザーとしてKongを実行しています
      • 管理者 API の保護
      • systemdの使用
    • アクセスコントロール
      • コングゲートウェイを安全に開始
      • プログラムによる管理者の作成
      • RBAC を有効にする
    • ライセンス
      • 概要
      • ライセンスをダウンロード
      • エンタープライズライセンスのデプロイ
      • ライセンスAPIの使用
      • ライセンス使用状況をモニターする
    • ネットワーク
      • デフォルトのポート
      • DNSに関する考察
      • ネットワークとファイアウォール
      • CP/DP Communication through a Forward Proxy
      • PostgreSQL TLS
        • PostgreSQL TLS の設定
        • PostgreSQL TLS のトラブルシューティング
    • Kongの設定ファイル
    • 環境変数
    • KongからウェブサイトとAPIを提供する
    • モニタリング
      • 概要
      • Prometheus
      • StatsD
      • Datadog
      • ヘルスチェックプローブ
      • AIメトリクスを公開してグラフ
    • トレース
      • 概要
      • カスタム・トレース・エクスポーターの作成
      • トレースAPIリファレンス
    • リソースサイズのガイドライン
    • セキュリティアップデートプロセス
    • ブルー・グリーンの展開
    • カナリアのデプロイ
    • クラスタリングリファレンス
    • パフォーマンス
      • パフォーマンステストのベンチマーク
      • パフォーマンスのベンチマークを作成
      • Brotli圧縮によるパフォーマンスの向上
    • ロギングとデバッグ
      • ログの参照
      • ダイナミックログレベルの更新
      • ゲートウェイログをカスタマイズ
      • デバッグリクエスト
      • AIゲートウェイ分析
    • gRPCサービスの設定
    • 式ルータを使用
    • アップグレードと移行
      • 香港ゲートウェイ3.x.xをアップグレードする
      • バックアップと復元
      • アップグレードの戦略
        • デュアルクラスターのアップグレード
        • インプレイスアップグレード
        • 青緑色のアップグレード
        • ローリングアップグレード
      • 2.8 LTSから3.4 LTSにアップグレード
      • OSSからエンタープライズへ移行
      • 移行ガイドライン Cassandra から PostgreSQL
      • 新しい DNS クライアントに移行
      • 破壊的な変更
  • Kong Gateway Enterprise
    • 概要
    • シークレット管理
      • 概要
      • はじめに
      • ローテーション
      • 高度な使い方
      • バックエンドの設定
        • 概要
        • 環境変数
        • AWS シークレットマネージャー
        • Azure Key Vault
        • Google Cloud Secret Manager
        • HashiCorp Vault
      • How-To
        • AWS シークレットマネージャでデータベースを保護する
      • 参照フォーマット
    • 動的なプラグインの順序
      • 概要
      • 動的なプラグインの順序を始めましょう
    • 監査ログ
    • キーリングとデータ暗号化
    • ワークスペース
    • コンシューマグループ
    • イベントフック
    • データ プレーンレジリエンスの設定
    • 制御機の停止管理について
    • FIPS 140-2
      • 概要
      • FIPS 準拠パッケージをインストール
      • FIPS 140-2 準拠プラグイン
    • AWS IAMでKong Gateway Amazon RDSデータベースを認証する
    • 署名された香港の画像の署名を確認します
    • 署名された香港画像のビルド証明書を確認する
  • Kong AI Gateway
    • 概要
    • AI ゲートウェイを始めよう
    • LLM プロバイダー統合ガイド
      • OpenAI
      • Cohere
      • Azure
      • Anthropic
      • ミストラル
      • Llama2
    • AIプラットフォーム統合ガイド
      • Gemini
      • Amazon Bedrock
    • AIゲートウェイ分析
    • AI指標を公開・グラフ
    • AI Gateway plugins
  • Kong Manager
    • 概要
    • Kong Managerを有効にする
    • Kong Manager を始めましょう
      • サービスとルート
      • レート制限
      • プロキシキャッシュ
      • コンシューマーとの認証
      • 負荷バランス
    • 認証と承認
      • 概要
      • スーパー管理者を作成
      • ワークスペースとチーム
      • パスワードとRBACトークンをリセット
      • ベーシック認証
      • LDAP
        • LDAP の設定
        • LDAP サービス ディレクトリ マッピング
      • OIDC
        • OIDCの設定
        • OIDC 認証済みグループマッピング
        • 以前の設定から移行
      • セッション
      • RBAC
        • 概要
        • RBACを有効にする
        • ロールと権限を追加
        • ユーザーを作成
        • 管理者を作成
    • ネットワーク設定
    • ワークスペース
    • 顧客グループを作成
    • メールを送信中
    • トラブルシューティング
  • カスタムプラグインを開発
    • 概要
    • はじめに
      • はじめに
      • プラグインプロジェクトの設定
      • プラグインテストを追加
      • プラグイン設定を追加
      • 外部サービスを消費する
      • プラグインをデプロイ
    • ファイル構造
    • カスタムロジックの実装
    • プラグインの設定
    • データストアへのアクセス
    • カスタムエンティティの保存
    • カスタムエンティティをキャッシュ中
    • 管理者 API の拡張
    • テストを書く
    • 設置と配布
    • プロキシ-ワズムフィルター
      • プロキシワズムフィルタを作成
      • プロキシ-ワズムフィルタの設定
    • プラグイン開発キット
      • 概要
      • kong.client
      • kong.client.tls
      • kong.cluster
      • kong.ctx
      • kong.ip
      • kong.jwe
      • kong.log
      • kong.nginx
      • kong.node
      • kong.plugin
      • kong.request
      • kong.response
      • kong.router
      • kong.service
      • kong.service.request
      • kong.service.response
      • kong.table
      • kong.telemetry.log
      • kong.tracing
      • kong.vault
      • kong.websocket.client
      • kong.websocket.upstream
    • 他の言語でのプラグイン
      • 移動
      • Javascript
      • Python
      • コンテナでのプラグインの実行
      • 外部プラグインのパフォーマンス
  • Kong Plugins
    • 概要
    • 認証リファレンス
    • 複数の認証プラグインを許可
    • プラグインのキュー
      • 概要
      • プラグインキューイングリファレンス
  • Admin API
    • 概要
    • 宣言設定
    • Enterprise API
      • 情報ルート
      • 健康ルート
      • タグ
      • デバッグルート
      • サービス
      • ルート
      • コンシューマ
      • プラグイン
      • 証明書
      • CA 証明書
      • SNI
      • アップストリーム
      • ターゲット
      • ヴォールト
      • キー
      • チェーンをフィルター
      • ライセンス
      • ワークスペース
      • RBAC
      • 管理者
      • コンシューマグループ
      • イベントフック
      • キーリングとデータ暗号化
      • 監査ログ
      • Status API
    • オープンソースAPI
  • 参照
    • kong.conf
    • Nginx ディレクティブの注入中
    • CLI
    • キー管理
    • 表現の言語
      • 概要
      • 言語リファレンス
      • パフォーマンスの最適化
    • ライブラリのレート制限
    • WebAssembly
    • FAQ
enterprise-switcher-icon 次に切り替える: OSS
On this pageOn this page
  • パッケージングソース
  • プラグインをインストールする
    • 作成された「ロック」からLuaRocks経由
    • ソースアーカイブからLuaRocks経由
    • Dockerfileまたはdocker run(インストールとロード)経由
    • 手動
  • プラグインをロードします
  • プラグインの読み込みの確認
  • プラグインの削除
  • プラグインを配布する
    • LuaRocks
    • OCIアーティファクト
  • トラブルシューティング
旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。

インストールと配布

Kongのカスタムプラグインは、各Kongノードのファイルシステム内に必要なLuaソースファイルで構成されています。このガイドでは、Kongノードにカスタムプラグインを認識させるための手順をステップバイステップで説明します。

これらの手順は、カスタムプラグインがそれぞれで利用可能になるようにKongクラスタの各ノードに適用される必要があります。

パッケージングソース

通常のパッキング戦略(例:tar)を使うことも、LuaRocksパッケージマネージャーを使用して自動的にパッキングを行うこともできます。公式配布パッケージのいずれかを使用する場合は、Kongと一緒にLuaRocksをインストールすることをお勧めします。

LuaRocksを使用する場合は、パッケージの内容を指定する rockspecファイルを作成する 必要があります。例については、 Kong プラグイン テンプレートを参照してください。フォーマットの詳細については、LuaRocks rockspecs に関するドキュメントを参照してください。

次のコマンド(プラグインリポジトリから)を使用してロックをパックします。

  1. ローカルにインストールします(現在のディレクトリの .rockspec に基づきます)。

    luarocks make
    
  2. インストール済みのロックをパックします。

    重要: luarocks packは、インストールされるzipユーティリティに依存します。Kong Gatewayの最近のイメージは厳格化されており、zipなどのユーティリティは利用できなくなっています。Dockerのカスタムイメージの一部として実行される場合は、このコマンドの実行前にzipがインストールされるようにしてください。

    luarocks pack <plugin-name id="sl-md0000000"> <version id="sl-md0000000">
    

    プラグインのrockspecがkong-plugin-my-plugin-0.1.0-1.rockspec だと仮定すると、上記は次のようになります。

    luarocks pack kong-plugin-my-plugin 0.1.0-1
    

LuaRocksのpackコマンドが.rockファイルを作成します(これは、ロックをインストールするために必要なものがすべて含まれたzipファイルです)。

LuaRocksを使用しない場合、または使用できない場合は、tarを使用して、 プラグインを構成する.luaファイルを.tar.gzアーカイブにまとめます。また ターゲットシステムにLuaRocksがある場合は、 .rockspecファイルも 含めることができます。

このアーカイブの内容は、次のようなものです。

tree <plugin-name id="sl-md0000000">
<plugin-name id="sl-md0000000">
├── INSTALL.txt
├── README.md
├── kong
│   └── plugins
│       └── <plugin-name id="sl-md0000000">
│           ├── handler.lua
│           └── schema.lua
└── <plugin-name id="sl-md0000000">-<version id="sl-md0000000">.rockspec

プラグインをインストールする

Kong ノードがカスタムプラグインを使用できるようにするには、カスタムプラグインの Lua ソースはホストのファイルシステムにインストールする必要があります。これを行うには、LuaRocks を使用するか、手動で行うという複数の方法があります。次のいずれかのパスを選択します。

注意:どの方法でプラグインのソースをインストールする場合も、Kongクラスターの各ノードに対して行う必要があります。

作成された「ロック」からLuaRocks経由

.rockファイルはローカルまたはリモートサーバーからインストールできる自己完結型パッケージです。

luarocksユーティリティがシステムにインストールされている場合(公式インストールパッケージを使用した場合は、おそらくこれに該当します)、LuaRocksツリー(LuaRocksがLua モジュールをインストールするディレクトリ)に「rock」をインストールできます。

次の手順でインストールできます。

luarocks install <rock-filename id="sl-md0000000">

ファイル名はローカル名、またはサポートされている方法のいずれかになります。例: http://myrepository.lan/rocks/my-plugin-0.1.0-1.all.rock

ソースアーカイブからLuaRocks経由

luarocksユーティリティがシステムにインストールされている場合(公式インストールパッケージを使用した場合は、おそらくこれに該当します)、LuaRocksツリー(LuaRocksがLuaモジュールをインストールするディレクトリ)にLuaソースをインストールできます。

カレントディレクトリから rockspecファイルがある、展開されたアーカイブのディレクトリに移動することでそれを行うことができます。

cd <plugin-name id="sl-md0000000">

次に以下を実行します。

luarocks make

上記を実行すると、kong/plugins/<plugin-name id="sl-md0000000">のLuaソースがシステムのLuaRocksツリーにインストールされます。このツリーにはKongソースがすべて揃っています。

Dockerfileまたはdocker run(インストールとロード)経由

Kong GatewayをDockerまたはKubernetesで実行している場合、プラグインはKong Gatewayコンテナ内にインストールする必要があります。 プラグインのソースコードをコンテナーにコピーまたはマウントします。

注: 公式のKong Gatewayの画像は、nobodyユーザーを実行者として構成されています。カスタム画像を構築する際に、Kong Gateway画像にファイルをコピーするには、一時的にユーザーをrootに設定する必要があります。

以下は、Kong Gateway イメージにプラグインをマウントする方法を示す Dockerfile の例です。

FROM kong/kong-gateway:latest

# Ensure any patching steps are executed as root user
USER root

# Add custom plugin to the image
COPY example-plugin/kong/plugins/example-plugin /usr/local/share/lua/5.1/kong/plugins/example-plugin
ENV KONG_PLUGINS=bundled,example-plugin

# Ensure kong user is selected for image execution
USER kong

# Run kong
ENTRYPOINT ["/entrypoint.sh"]
EXPOSE 8000 8443 8001 8444
STOPSIGNAL SIGQUIT
HEALTHCHECK --interval=10s --timeout=10s --retries=10 CMD kong health
CMD ["kong", "docker-start"]

または、 docker run コマンドに以下を含めます。

-v "$custom_plugin_folder:/tmp/custom_plugins/kong" 
-e "KONG_LUA_PACKAGE_PATH=/tmp/custom_plugins/?.lua;;"
-e "KONG_PLUGINS=bundled,example-plugin"

手動

プラグインのソースをインストールするための、 より保守的な方法は、LuaRocksのツリーを 「汚染」しないようにし、代わりにKongを、それらを含むディレクトリに向けます。

これはKong構成のlua_package_pathプロパティを微調整することによって行われます。内部では、このプロパティはLua VMのLUA_PATH変数のエイリアスです(これに精通している場合)。

これらのプロパティには、Luaソースを検索するための、セミコロンで 区切られたディレクトリのリストが含まれています。Kongの設定ファイルで次のように設定する必要があります:

lua_package_path = /<path-to-plugin-location id="sl-md0000000">/?.lua;;

この場合:

  • /<path-to-plugin-location id="sl-md0000000">は、抽出されたアーカイブを含むディレクトリへのパスです。これは、アーカイブのkongディレクトリ上である必要があります。
  • ?は、Kongがプラグインを読み込もうとした場合にkong.plugins.<plugin-name id="sl-md0000000">によって置き換えられるプレースホルダーです。変更しないでください。
  • ;;「デフォルトの Lua パス」のプレースホルダー。これは変更しないでください。

たとえば、以下はプラグイン somethingがファイルシステムにあり、ハンドラーファイルが次のディレクトリにある場合の例です。

/usr/local/custom/kong/plugins/<something id="sl-md0000000">/handler.lua

kongディレクトリの場所は/usr/local/customであるため、適切なパスの設定は以下のようになります。

lua_package_path = /usr/local/custom/?.lua;;

複数のプラグイン

この方法で2つ以上のカスタムプラグインをインストールする場合は、変数を 変数は次のようなもの次のように設定できます。

lua_package_path = /path/to/plugin1/?.lua;/path/to/plugin2/?.lua;;
  • ; はディレクトリ間の区切り文字です。
  • ;;こちらも「デフォルトのLuaパス」を意味します。

このプロパティは環境変数を介して設定することもできます。 同等: KONG_LUA_PACKAGE_PATH.

プラグインをロードします

  1. カスタムプラグインの名前を(各Kongノードの)Kong構成にあるpluginsリストに追加します。

    plugins = bundled,<plugin-name id="sl-md0000000">
    

    または、バンドルされたプラグインを含めたくない場合は、次のようにします。

    plugins = <plugin-name id="sl-md0000000">
    

    2 つ以上のカスタムプラグインを使用している場合は、次のように間にコンマを挿入します。

    plugins = bundled,plugin1,plugin2
    

    または:

    plugins = plugin1,plugin2
    

    このプロパティは、同等の環境変数 KONG_PLUGINS を使用して設定することもできます。

  2. Kong クラスター内の各ノードのpluginsディレクティブを更新します。

  3. Kongを再起動してプラグインを適用します。

    kong restart
    

    または、Kongを停止せずにプラグインを適用する場合は、以下を使用します。

    kong prepare
    kong reload
    

プラグインの読み込みの確認

これで、問題なくKongを起動できるはずです。サービス、ルート、または コンシューマエンティティのプラグインをどのように有効化/設定すればよいか、 お客様のカスタムプラグインについてご相談ください。

  1. プラグインが Kong にロードされていることを確認するには、debug ログレベルを使用して Kong を起動します。

    log_level = debug
    

    または:

    KONG_LOG_LEVEL=debug
    
  2. そのあと、読み込まれる各プラグインに対して以下のログが表示されます。

    [debug] Loading plugin <plugin-name id="sl-md0000000">
    

プラグインの削除

プラグインを完全に削除するには、3つのステップがあります。

  1. Kong サービスまたはルート構成からプラグインを削除します。削除するプラグインがグローバルに、そして、どのサービス、ルート、またはコンシューマにも適用されていないことを確認してください。これは Kong クラスタ全体に対して一度だけ行う必要があり、再起動/再ロードは必要ありません。この手順を実施すると、プラグイン が使用されなくなります。しかしながら、プラグインはまだ利用可能であり、 再度適用することができます。

  2. pluginsディレクティブ(各Kongノード上)からプラグインを削除します。これは手順1を完了してから行ってください。この手順を実行したあとは、誰もプラグインをKong Service、ルート、コンシューマ、さらにはグローバルに再適用できなくなります。この手順を有効にするには、Kongノードを再起動/リロードする必要があります。

  3. プラグインを完全に削除するには、各 Kong ノードからプラグイン関連のファイルを削除してください。ファイルを削除する前に、Kong の再起動/リロードを含む手順 2 を完了していることを確認してください。LuaRocksを使用してプラグインをインストールした場合、 luarocks remove <plugin-name id="sl-md0000000"> を実行して削除します。

プラグインを配布する

ゲートウェイが稼働しているプラットフォームに応じて、カスタムプラグインの配布にはさまざまな方法があります。

LuaRocks

これを実行する方法の一つは、Lua モジュール用の パッケージ マネージャーである LuaRocks を使うことです。このようなモジュールを “ロック”と呼びます。 モジュールは Kong リポジトリ内に配置する必要はありません が、Kong のセットアップをそのように維持したいのであれば配置することも可能です。

rockspecファイルでモジュール(およびその永続的依存関係)を定義すると、LuaRocksからプラットフォームにこれらのモジュールをインストールできます。 LuaRocksにモジュールをアップロードして、誰でも利用できるようにすることもできます。

以下は、Lua 表記のモジュールとそれに対応するファイルを定義するために、builtin ビルドタイプを使用した rockspec の例です。

フォーマットの詳細については、LuaRocksの rockspecs に関するドキュメントを参照してください。

OCIアーティファクト

多くのユーザーは、Docker HubやAmazon ECRなどのOCI準拠のレジストリにアクセスできます。Kong Pluginsは、汎用OCIアーティファクトとしてパッケージ化され、バージョン管理、保存、配布のためにこれらのいずれかにのレジストリにアップロードされます。

プラグインを OCI アーティファクトとして配布する利点は、ユーザーが多数のエコシステムの利点を活用できることです。これには、アーティファクトの構築、プッシュ、プル、そして署名(安全な出所証明のため)に関するツールが含まれます。以下の手順では、Kong カスタムプラグインを OCI アーティファクトとしてパッケージ化、配布、検証するサンプルフローを示しています。

プラグインが開発されたマシンで、または自動化ワークフローの一部として、以下の手順を実行します。

  1. 上記の「ソースのパッケージ」セクションに従ってプラグインをパッケージ化してください。

    tar czf my-plugin.tar.gz ./my-plugin-dir
    
  2. OSS Cosign ツールを使用して、プラグインの署名と検証に使用するキーペアを生成します。

    cosign generate-key-pair
    

    プライベート鍵( cosign.key )は安全に保管する必要があり、プラグインアーティファクトの署名に使用されます。公開鍵(cosign.pub)は、ダウンロードしたプラグインをフローの後半で検証するために、対象マシンに配布して使用する必要があります。

    Cosignを使用してアーティファクトに署名および検証を行う、キーを使わないメソッドもあります。詳細情報は ドキュメントに記載されています。

  3. OCI準拠のレジストリにログインします。この場合、Docker Hubを使用します。

    cat ~/foo_password.txt | docker login --username foo-user --password-stdin
    
  4. Cosign を使用して、プラグイン アーティファクトを OCI レジストリにアップロードします。これは、ローカルの Docker イメージをレジストリにプッシュする際に、docker push <image id="sl-md0000000"> を実行するのと同等です。

    cosign upload blob -f my-plugin.tar.gz docker.io/foo-user/my-plugin
    

    cosign uploadコマンドは、アーティファクトが正常にアップロードされた場合にそのダイジェストを返します。

  5. 手順1で生成されたキーペアを使用してアーティファクトに署名します。

    cosign sign --key cosign.key index.docker.io/foo-user/my-plugin@sha256:xxxxxxxxxx
    

    コマンドにより、プライベート鍵のパスフレーズの入力が求められる場合があります。また、署名情報が透明性ログであるRekorに永続的に記録されることに同意するかどうかを確認するメッセージが表示される場合があります。Sigstore のツールとフローの詳細情報については、ドキュメントをご覧ください。

次に、プラグインをインストールする必要があるマシン(ゲートウェイデータプレーンノード)で、以下の手順を実行します (自動化することもできます)。

  1. cosign.pub公開鍵が使用可能であることを確認します。プルするプラグインアーティファクトの署名を 確認します:

    cosign verify --key cosign.pub index.docker.io/foo-user/my-plugin@sha256:xxxxxxxxxx
    

    アーティファクトが検証されると、コマンドは成功するはずです。

  2. OSS Craneツールを使用して、プラグインアーティファクトをマシンにプルします。

    crane pull index.docker.io/foo-user/my-plugin@sha256:xxxxxxxxxx my-downloaded-plugin.tar.gz
    

    このコマンドはアーティファクトをプルし、作業ディレクトリに保存する必要があります。

  3. プラグインを解凍します。ダウンロードした.tar.gzファイルにはマニフェストファイルと別のネストされた.tar.gzが含まれています。このネストされたアーカイブにはプラグインディレクトリが含まれています。

    tar xvf my-downloaded-plugin.tar.gz
    tar xvf xxxxxxxxxxxxxxxxxxxxx.tar.gz
    
  4. 上記の手動でインストールセクションに従って、適切な場所にプラグインディレクトリにコピーします。カスタムKONG_LUA_PACKAGE_PATHを設定していない場合、/usr/local/share/lua/5.1/kong/pluginsにプラグインをコピーします。

  5. Kongの構成を更新してカスタムプラグインを読み込むには、plugins=bundled,my-downloaded-pluginkong.confを構成するか、KONG_PLUGINS環境変数を次に設定します。plugins=bundled,my-downloaded-plugin

トラブルシューティング

Kongは、カスタムプラグインの設定ミスにより、以下のような理由で起動に失敗することがあります:

plugin is in use but not enabled:別のノードからカスタムプラグインを構成し、そのプラグイン構成がデータベースにあるとしても、起動しようとする現在のノードにそのpluginsディレクティブが含まれていません。これを解決するには、プラグインの名前をノードのpluginsディレクティブに追加します。

plugin is enabled but not installed :プラグインの名前はpluginsディレクティブに存在しますが、Kongはファイルシステムからhandler.luaソースファイルをを読み込むことができません。解決するには、このプラグインのLuaソースをロードするようlua_package_pathディレクティブが適切に設定されているようにしてください。

no configuration schema found for plugin
プラグインはpluginsディレクティブでインストールされ有効化されますが、Kong はファイルシステムから schema.lua ソースファイルを読み込みできません。これを解決するには、schema.lua ファイルがプラグインの handler.lua ファイルと同じディレクトリに存在することを確認してください。

前へ テストの記述
次へ Proxy-Wasmフィルタの作成
Thank you for your feedback.
Was this page useful?
情報が多すぎる場合 close cta icon
Kong Konnectを使用すると、より多くの機能とより少ないインフラストラクチャを実現できます。月額1Mリクエストが無料。
無料でお試しください
  • Kong
    APIの世界を動かす

    APIマネジメント、サービスメッシュ、イングレスコントローラーの統合プラットフォームにより、開発者の生産性、セキュリティ、パフォーマンスを大幅に向上します。

    • 製品
      • Kong Konnect
      • Kong Gateway Enterprise
      • Kong Gateway
      • Kong Mesh
      • Kong Ingress Controller
      • Kong Insomnia
      • 製品アップデート
      • 始める
    • ドキュメンテーション
      • Kong Konnectドキュメント
      • Kong Gatewayドキュメント
      • Kong Meshドキュメント
      • Kong Insomniaドキュメント
      • Kong Konnect Plugin Hub
    • オープンソース
      • Kong Gateway
      • Kuma
      • Insomnia
      • Kongコミュニティ
    • 会社概要
      • Kongについて
      • お客様
      • キャリア
      • プレス
      • イベント
      • お問い合わせ
  • 利用規約• プライバシー• 信頼とコンプライアンス
© Kong Inc. 2025