コンテンツにスキップ
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.4.x LTS
  • Home icon
  • Kong Gateway
  • Kong Enterprise
  • Event Hooks
  • イベントフックの例
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.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 またはそれ以前
    • キーコンセプト
      • サービス
      • ルート
      • コンシューマ
      • アップストリーム
      • プラグイン
      • コンシューマグループ
    • Kongの仕組み
      • トラフィックのルーティング
      • ロードバランシング
      • ヘルスチェックとサーキットブレーカー
    • 用語集
  • Kongを始めましょう
    • Kongを入手
    • サービスとルート
    • Rate Limiting
    • プロキシキャッシュ
    • Key Authentication
    • ロードバランシング
  • Kongのインストール
    • 概要
    • Kubernetes
      • 概要
      • Kong Gatewayのインストール
      • Admin APIを構成する
      • Kong Managerのインストール
    • Docker
      • docker runの使用
      • 独自の Docker イメージをビルドする
    • Linux
      • Amazon Linux
      • Debian
      • Red Hat
      • Ubuntu
    • インストール後
      • データストアの設定
      • エンタープライズライセンスを適用する
      • Kong Managerを有効にする
  • 本番環境のKong
    • デプロイメントトポロジー
      • 概要
      • ハイブリッドモード
        • 概要
        • Kong Gatewayをハイブリッドモードでデプロイする
      • DBレスデプロイメント
      • 伝統的な
    • 実行中のKong
      • 非rootユーザーとしてKongを実行する
      • Admin APIの保護
      • systemdの使用
    • アクセス制御
      • Kong Gatewayを安全に起動する
      • プログラムによる管理者の作成
      • RBACを有効にする
    • ライセンス
      • 概要
      • ライセンスのダウンロード
      • エンタープライズライセンスのデプロイ
      • ライセンス APIの使用
      • ライセンス使用状況の監視
    • ネットワーキング
      • デフォルトポート
      • DNSに関する考慮事項
      • ネットワークとファイアウォール
      • フォワードプロキシ経由のCP/DP通信
      • PostgreSQL TLS
        • PostgreSQL TLSの構成
        • PostgreSQL TLSのトラブルシューティング
    • Kong設定ファイル
    • 環境変数
    • KongからのウェブサイトとAPIの提供
    • モニタリング
      • 概要
      • Prometheus
      • StatsD
      • Datadog
      • ヘルスチェックプローブ
    • トレーシング
      • 概要
      • カスタムトレースエクスポーターの記述
      • トレース APIリファレンス
    • リソースサイジングのガイドライン
    • ブルーグリーンデプロイメント
    • カナリアデプロイメント
    • クラスタリングリファレンス
    • パフォーマンスベンチマークの確立
    • ログとデバッグ
      • ログ参照
      • 動的ログレベルの更新
      • ゲートウェイログのカスタマイズ
      • デバッグリクエスト
    • gRPCサービスを構成する
    • Expressionsルーターを使用する
    • アップグレードと移行
      • Kong Gateway 3.x.xのアップグレード
      • バックアップと復元
      • アップグレード戦略
        • デュアルクラスターのアップグレード
        • インプレースアップグレード
        • ブルーグリーンアップグレード
        • ローリングアップグレード
      • 2.8 LTS から 3.4 LTS へのアップグレード
      • OSS から Enterprise への移行
      • Cassandra から PostgreSQL への移行ガイドライン
      • 互換性のない変更
  • Kong Gateway Enterprise
    • 概要
    • Kong バイタル
      • 概要
      • メトリクス
      • InfluxDBによる分析
      • Prometheusによる分析
      • PostgreSQLにおける分析ストレージの見積もり
    • シークレット管理
      • 概要
      • はじめる
      • シークレットローテーション
      • 高度な使用法
      • バックエンド
        • 概要
        • 環境変数
        • AWS Secrets Manager
        • Azure Key Vault
        • Google Cloud Secret Manager
        • HashiCorp Vault
      • ハウツー
        • AWS Secrets Manager によるデータベースの保護
      • 参照形式
    • 動的なプラグインの順序
      • 概要
      • 動的プラグインの注文を開始する
    • Dev Portal
      • Overview
      • ポータルを有効にする
      • OpenAPI仕様の公開
      • 構造とファイルタイプ
      • テーマファイル
      • テンプレートを使う
      • エディターの使用
      • 認証と認可
        • Basic Auth
        • Key Auth
        • OIDC
        • セッション
        • カスタム登録フィールドの追加
        • 開発者の管理
        • 開発者の役割とコンテンツ権限
      • アプリケーション登録
        • 認可プロバイダー戦略
        • アプリケーション登録を有効にする
        • アプリケーション登録のための鍵認証を有効にする
        • 外部認証を有効にする
          • 外部OAuth2サポート
          • 外部認証のためのOktaとKongのセットアップ
          • 外部認証のためのAzure ADとKongのセットアップ
        • アプリケーションの管理
      • 開発ポータルのカスタマイズ
        • テーマ編集
        • ワークスペース間でのテンプレートの移行
        • Markdownレンダリングモジュール
        • ポータルメールのカスタマイズ
        • JavaScriptアセットの追加と使用
        • 開発ポータルのシングルページアプリ
        • 代替OpenAPIレンダラー
      • SMTP
      • Workspaces
      • ヘルパーCLI
      • ポータルAPIドキュメント
    • 監査ログ
    • キーリングとデータ暗号化
    • ワークスペース
    • コンシューマグループ
    • イベントフック
    • データプレーン(DP)のレジリエンスの構成
    • コントロールプレーン(CP)の停止管理について
    • FIPS 140-2
      • 概要
      • FIPS 準拠パッケージのインストール
      • FIPS 140-2準拠のプラグイン
    • AWS IAMを使用してKong Gateway Amazon RDSデータベースを認証する
    • 署名付き Kong イメージのビルド来歴を確認
  • Kong Manager
    • 概要
    • Kong Managerを有効にする
    • Kong Managerの使用を開始する
      • サービスとルート
      • Rate Limiting
      • プロキシキャッシュ
      • コンシューマによる認証
      • ロードバランシング
    • 認証と承認
      • 概要
      • スーパー管理者を作成する
      • ワークスペースとチーム
      • パスワードと RBAC トークンのリセット
      • Basic Auth
      • LDAP
        • LDAPの設定
        • LDAP サービスディレクトリマッピング
      • OIDC
        • OIDC を構成する
        • OIDC 認証済みグループマッピング
      • セッション
      • RBAC
        • 概要
        • RBACを有効にする
        • ロールと権限を追加する
        • ユーザーの作成
        • 管理者の作成
    • ネットワーク構成
    • ワークスペース
    • コンシューマグループを作成する
    • メールの送信
    • トラブルシューティング
  • カスタムプラグインの開発
    • 概要
    • ファイル構成
    • カスタムロジックの実装
    • プラグインの設定
    • データストアへのアクセス
    • カスタムエンティティの保存
    • カスタムエンティティのキャッシュ
    • Admin APIの拡張
    • テストを書く
    • インストールと配布
    • Proxy-Wasmフィルタ
      • proxy-wasm フィルターの作成
    • プラグイン開発キット
      • 概要
      • 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.tracing
      • kong.vault
      • kong.websocket.client
      • kong.websocket.upstream
    • 他の言語のプラグイン
      • Go
      • Javascript
      • Python
      • コンテナ内でプラグインを実行する
      • 外部プラグインのパフォーマンス
  • Kong Plugins
    • 概要
    • 認証リファレンス
    • 複数の認証プラグインを許可する
    • プラグインキューイング
      • 概要
      • プラグインキューイングリファレンス
  • Admin API
    • 概要
    • インフォメーションルート
    • ヘルスルート
    • タグ
    • ルートのデバッグ
    • サービス
    • ルート
    • コンシューマ
    • プラグイン
    • 証明書
    • CA 証明書
    • SNI
    • アップストリーム
    • ターゲット
    • 金庫
    • 鍵
    • フィルターチェーン
    • ライセンス
    • ワークスペース
    • RBAC
    • アドミン
    • コンシューマグループ
    • イベントフック
    • キーリングとデータ暗号化
    • 監査ログ
    • ステータスAPI
  • リファレンス
    • kong.conf
    • Nginxディレクティブの挿入
    • CLI
    • キー管理
    • パフォーマンステストのフレームワーク
    • 表現言語
      • 概要
      • 言語リファレンス
      • パフォーマンスの最適化
    • Rate Limitingライブラリ
    • Webアセンブリ
    • FAQ
enterprise-switcher-icon 次に切り替える: OSS
On this pageOn this page
  • Webフック
  • カスタムwebhook
  • ログ
  • Lambda
旧バージョンのドキュメントを参照しています。 最新のドキュメントはこちらをご参照ください。

イベントフックの例

イベントフックはKong Gatewayからのアウトバウンドコールです。イベントフックを使用すると、Kong Gateway は ターゲットのサービスやリソースと通信して、イベントがトリガーされたことをターゲットに 知らせます。Kongでイベントがトリガーされると、そのイベントに関する情報を含むURLが呼び出されます。 イベントフックは、管理インターフェースを使用してワーカーイベントをサブスクライブするための構成レイヤーを 追加します。ワーカーイベントは、ゲートウェイコンテキスト内で通信するためにKong Gatewayに統合されます。 たとえば、エンティティが作成されると、 Kong Gatewayはエンティティに関する情報を含むイベントを発生させます。Kong Gateway コードベースの一部はこれらのイベントをサブスクライブし、コールバックを使用してイベントを処理できます。

Kong Gatewayでは、これらのコールバックは以下のいずれかの「ハンドラ」を使用して定義できます。

  • webhook: イベントデータをペイロードとして、指定されたURLにJSON POSTリクエストを行います。中間層の統合(Kongフックを受信する独自のwebhook)を構築する場合に役立ちます。リクエストに対して特定のヘッダーを構成できます。

  • webhook-custom: 完全に設定可能なリクエスト。サービス(Slack webhook など)があり、 直接統合の構築に便利です。完全に構成可能であるため、 設定がより複雑です。構成可能な本文、構成可能な形式のペイロード、およびヘッダーを サポートしています。

  • ログ: このハンドラは構成が不要で、イベントとペイロードの内容を Kong Gateway ログに記録します。ハイブリッドモードを使用している場合、crud および dao:crud のソースのログはコントロールプレーン(CP)のログに出力され、balancer および rate-limiting-advanced のソースのログはデータプレーンのログに出力されます。

  • lambda: このハンドラは、イベントのトリガー後に、指定されたLuaコードを実行します。

Webフック

webhookイベントフックは、イベントデータをペイロードとして、指定されたURLにJSON POSTリクエストを送信します。この例では、webhookのテストに役立つサイトhttps://webhook.siteを使用します。

webhookイベントフックを作成する方法は次のとおりです。

  1. ウェブブラウザでhttps://webhook.siteに移動してURLを生成します。

  2. 一意の URL の横にある クリップボードにコピー を選択します。

  3. 次のHTTPリクエストを使用して、consumersイベント(イベントのためにイベントフックがリッスンするKongエンティティ)上、crudソース上(ログをトリガーするアクション)、および 手順2でコピーしたURLにwebhookイベントフックを作成します。

    curl -i -X POST http://{HOSTNAME}:8001/event-hooks \
      -d source=crud \
      -d event=consumers \
      -d handler=webhook \
      -d config.url={WEBHOOK_URL}
    
  4. 手順2のURLに移動します。pingタイプのPOSTリクエストが表示され、このwebhookの作成について webhookエンドポイントに通知されます。

  5. Kong Manager または Kong Admin API で、任意のワークスペースからコンシューマを追加します。

    Kong Manager
    Admin API
    1. ワークスペースを選択します。
    2. 左のナビゲーションで コンシューマ を選択します。
    3. 新しいコンシューマ ボタンを選択します。
    4. ユーザー名 を入力します。
    5. (オプション) カスタム ID と 任意のタグ を入力します。
    6. 作成 ボタンを選択します。

    Kong Admin API のインスタンスに次の HTTP リクエストを送信して、コンシューマ Ada Lovelace を作成します。

    curl -i -X POST http://{HOSTNAME}:8001/consumers \
      -d username="Ada Lovelace"
  6. https://webhook.site ページから URL を確認します。 ペイロードに新しいコンシューマのデータを含むエントリが表示されます。

    {
    "source": "crud",
    "entity": {
      "created_at": 1627581878,
      "type": 0,
      "username": "Ada Lovelace",
      "id": "0fd2319f-13ea-4582-a448-8d11893026a8"
    },
    "event": "consumers",
    "operation": "create",
    "schema": "consumers"
    }
    

カスタムwebhook

カスタム webhook イベントフックは完全にカスタマイズ可能なリクエストです。カスタムWebhookは、 サービスとの直接統合を構築するのに便利です。カスタム Webhook は完全に構成可能であるため、より複雑な構成になります。 カスタム Webhook は、構成可能な本文、フォームペイロード、およびヘッダーでの Lua テンプレートをサポートします。テンプレートに使用できるフィールドの リストについては、ソースエンドポイントを参照してください。

次の例では、新しい管理者がKong Gatewayに招待されるたびにSlackにメッセージが送信されます。Slackでは着信ウェブフックが許可されており、これを使用して、Kongのイベントフック機能との統合を構築できます。

カスタム webhook イベントフックを作成するには以下のようにします。

  1. Slackでアプリを作成します。

  2. 新しいアプリの設定で受信ウェブフックを有効にします。

  3. ワークスペースに新しいWebhookを追加 を選択し、通知を受け取るチャネルを選択して、 許可 を選択します。

  4. Webhook URL (例: https://hooks.slack.com/services/foo/bar/baz)をコピーします。

  5. adminsイベント(event hookがイベントをリッスンするKongエンティティ)とcrudソース(ロギングをトリガーするアクション)にwebhook event hookを作成します。

    次の HTTP 要求を使用して、ペイロードを「"Admin account \{{ entity.username }}` {{ operation }}d; e-mail address set to `{{ entity.email }}`”`」のようにフォーマットします。

    curl -i -X POST http://{HOSTNAME}:8001/event-hooks \
      -d source=crud \
      -d event=admins \
      -d handler=webhook-custom \
      -d config.method=POST \
      -d config.url={WEBHOOK_URL} \
      -d config.headers.content-type="application/json" \
      -d config.payload.text="Admin account \`{{ entity.username }}\` {{ operation}}d; email address set to \`{{ entity.email }}\`"
    
  6. RBACを有効にします。

    RBAC を有効にするには、 Kong Gateway最初にインストールして移行を実行したときに使用した初期の KONG_PASSWORD が必要になります。これはスーパー管理者のデフォルトのパスワードでもあり、RBAC がオンになると必要になります。

    UNIX-based system or Windows
    Docker
    1. kong.confファイルの以下の構成設定を変更します。/etc/kong/kong.confファイルに移動します。

      cd /etc/kong/
    2. フォールバックできる作業コピーがあることを確認するために、 kong.conf.defaultファイルをコピーします。

      cp kong.conf.default kong.conf
    3. 次に、 kong.confで次の設定を編集します。

      echo >> “enforce_rbac = on” >> /etc/kong/kong.conf
      echo >> “admin_gui_auth = basic-auth” >> /etc/kong.conf
      echo >> “admin_gui_session_conf = {"secret":"secret","storage":"kong","cookie_secure":false}”

      これによりRBACがオンになり、Kong Gatewayにベーシック認証(ユーザー名/パスワード)を使用するよう指示し、セッションCookieの作成方法をSessionプラグインに指示します。

      クッキーは有効期限が切れるまで、ユーザーを認証するための後続のすべてのリクエストに使用されます。セッションの有効期間は限られており、構成可能な間隔で更新されるため、セッション終了後に攻撃者が古いクッキーを取得して使用することを防ぐことができます。

    4. Kong Gatewayを再起動し、以下のように新しい設定ファイルを指定します。

      kong restart -c /etc/kong/kong.conf

    Dockerがインストールされている場合は、次のコマンドを実行して必要な環境変数を設定し、ゲートウェイ構成を再読み込みします。

    注: {KONG-CONTAINER-ID}をコンテナのIDに確実に置き換えてください。

    echo "KONG_ENFORCE_RBAC=on
    KONG_ADMIN_GUI_AUTH=basic-auth
    KONG_ADMIN_GUI_SESSION_CONF='{\"secret\":\"secret\",\"storage\":\"kong\",\"cookie_secure\":false}'
    kong reload exit" | docker exec -i {KONG_CONTAINER_ID} /bin/sh

    これによりRBACがオンになり、Kong Gatewayにベーシック認証(ユーザー名/パスワード)を使用するよう指示し、セッションCookieの作成方法をSessionプラグインに指示します。

    クッキーは有効期限が切れるまで、ユーザーを認証するための後続のすべてのリクエストに使用されます。セッションの有効期間は限られており、設定可能な間隔で更新されるため、セッション終了後に攻撃者が古いクッキーを取得して使用することを防ぐことができます。

    このガイド以外では、インストールに応じてこれらの設定を異なる方法で変更する必要がある可能性があります。これらの設定の詳細については、Kong ManagerのBasic Authを参照してください。

  7. Kong Manager または Kong Admin API を使用して管理者を招待します。

    Kong Manager
    Admin API
    1. Kong Managerにアクセスするか、すでに開いている場合はページを再読み込みすると、ログイン画面が表示されます。
    2. 組み込みのスーパー管理者アカウントkong_adminとそのパスワードでKong Managerにログインします。これは、インストール中に移行を実行したときに使用した初期KONG_PASSWORDです。
    3. チーム(Teams)> 管理者(Admins) タブから、 管理者を招待(Invite Admin) をクリックします。
    4. 新しい管理者の メールアドレス と ユーザー名 を入力します。
    5. 招待を送信するには、 管理者を招待 をクリックします。入門ガイドのこの時点では、SMTPがまだ設定されていない可能性が高いため、Eメールは送信されません。

    Kong Admin APIのインスタンスに次のHTTPリクエストを送信して、管理者Arya Starkを作成します。

    注意: {KONG_ADMIN_PASSWORD} をkong_adminパスワードに置き換えてください。これは インストール中に移行を実行したときに使用した最初のKONG_PASSWORDです。

    curl -i -X POST http://{HOSTNAME}:8001/admins \
    -d username="Arya Stark" \
    -d email=arya@gameofthrones.com \
    -H Kong-Admin-Token:{KONG_ADMIN_PASSWORD}

その後、お客様がconfig.payload.textを含むメッセージを選択したSlackチャンネル内で、 メッセージを受信します。

ログ

ログイベントフックは、指定されたイベントとペイロードの内容をKong Gatewayログに記録します。

ログイベントフックを作成するには:

  1. consumersイベント (イベントフックがイベントをリッスンする Kong エンティティ)と、 crudソース (ログ記録をトリガーするアクション) に、以下の HTTP リクエストを使用してログイベントフックを作成します。

    curl -i -X POST http://{HOSTNAME}:8001/event-hooks \
      -d source=crud \
      -d event=consumers \
      -d handler=log
    
  2. Kong Manager または Kong Admin API で、任意のワークスペースからコンシューマを追加します。

    Kong Manager
    Admin API
    1. ワークスペースを選択します。
    2. 左のナビゲーションで コンシューマ を選択します。
    3. 新しいコンシューマ ボタンを選択します。
    4. ユーザー名 を入力します。
    5. (オプション) カスタム ID と 任意のタグ を入力します。
    6. 作成 ボタンを選択します。

    Kong Admin APIのインスタンスに次のHTTPリクエストを送信して、コンシューマであるElizabeth Bennetを作成します。

    curl -i -X POST http://{HOSTNAME}:8001/consumers \
    -d username="Elizabeth Bennet"
  3. 通常は、/usr/local/kong/logs/error.logからアクセスできるKongのエラーログのペイロードに、新しいコンシューマのデータが入ったエントリが表示されます。

    172.19.0.1 - - [29/Jul/2021:15:57:15 +0000] "POST /consumers HTTP/1.1" 409 147 "-" "HTTPie/2.4.0"
    2021/07/29 15:57:26 [notice] 68854#0: *819021 +--------------------------------------------------+, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |[kong] event_hooks.lua:?:452 "log callback: " { "consumers", "crud", {|, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |    entity = {                                    |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |      created_at = 1627574246,                    |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |      id = "4757bd6b-8d54-4b08-bf24-01e346a9323e",|, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |      type = 0,                                   |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |      username = "Elizabeth Bennet"               |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |    },                                            |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |    operation = "create",                         |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |    schema = "consumers"                          |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 |  }, 68854 }                                      |, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    2021/07/29 15:57:26 [notice] 68854#0: *819021 +--------------------------------------------------+, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    
    

Lambda

ラムダイベントフックを使用すると、Luaコードで完全にカスタムロジックを記述でき、さまざまなKongイベントに組み込むことができます。次の例では、コンシューマが変更になるたびに、条件付きでカスタムフォーマットを使用してログエントリを書き込みます。

ラムダのイベントフックタイプは非常に強力です。完全にカスタムのロジックを書いて、どんなユースケースにも対応できます。 ただし、デフォルトではサンドボックスによって制限されています。この サンドボックスはユーザーの安全を守るために設置されています。誤って安全でないライブラリやオブジェクトを誤ってサンドボックスに追加し、 Kong Gatewayをセキュリティの脆弱性にさらしてしまうのは簡単だからです。サンドボックス設定を変更する際は注意してください。

Lambda イベントフックを作成するには以下のようにします。

  1. Luaスクリプトを作成してラムダイベントフックに読み込み、ホームディレクトリのlambda.luaという名前のファイルに保存します。

    return function (data, event, source, pid)
      local user = data.entity.username
      error("Event hook on consumer " .. user .. "")
    end
    
  2. 次のHTTPリクエストを使用して、 consumersイベント(イベントフックがイベントをリッスンするKongエンティティ)とcrudソース(ログ記録をトリガーするアクション)にラムダイベントフックを作成します。

    curl -i -X POST http://{HOSTNAME}:8001/event-hooks \
      -d source=crud \
      -d event=consumers \
      -d handler=lambda \
      -F config.functions='return function (data, event, source, pid) local user = data.entity.username error("Event hook on consumer " .. user .. "")end'
    
  3. Kong ManagerまたはKong Admin APIで、任意のワークスペースにコンシューマを追加します。

    Kong Manager
    Admin API
    1. ワークスペースを選択します。
    2. 左のナビゲーションで コンシューマ を選択します。
    3. 新しいコンシューマ ボタンを選択します。
    4. ユーザー名 を入力します。
    5. (オプション) カスタム ID と 任意のタグ を入力します。
    6. 作成 ボタンを選択します。

    Kong Admin APIのインスタンスに次のHTTPリクエストを送信して、コンシューマLois Lane を作成します。

    curl -i -X POST http://{HOSTNAME}:8001/consumers \
      -d username="Lois Lane"
  4. Kongのエラーログに「コンシューマLois Laneのevent hook」というエントリが表示され、通常、/usr/local/kong/logs/error.logからアクセスできます。

    2021/07/29 21:52:54 [error] 114#0: *153047 [kong] event_hooks.lua:190 [string "return function (data, event, source, pid)..."]:3: Event hook on consumer Lois Lane, context: ngx.timer, client: 172.19.0.1, server: 0.0.0.0:8001
    
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