mcpField
S
spring-cloud-gateway

spring-cloud-gateway

github.com/rrezartprebreza開発32840 回インストール6 日前に更新
リポジトリ

spring-cloud-gateway について

Spring Cloud Gatewayをエッジアダプターとして構成する開発スキルです。依存バージョンの互換性、ルート、セキュリティ、耐障害性、テストを扱います。

主な機能

  1. 01Spring CloudとBootの互換性
  2. 02明示的なルート条件と安定したID
  3. 03ヘッダーの除去と相関情報の付与
  4. 04タイムアウト、再試行、サーキットブレーカーの指針
  5. 05ルートと統合テスト

活用シーン

  1. 01サービス向けゲートウェイルートの定義
  2. 02信頼できないリクエストヘッダーの除去
  3. 03障害時やタイムアウト時の動作テスト

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/rrezartprebreza/spring-boot-skills --skill spring-cloud-gateway

インストール後、Claude Code で/spring-cloud-gatewayを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
bad-routes.yml
good-routes.yml

詳細

Spring Cloud Gateway

ゲートウェイはエッジアダプターとして維持します。ドメインのワークフローをフィルターに移さないでください。

互換性を最優先

  • Boot の正確なマイナーバージョンに対応する Spring Cloud リリーストレインを選択します。
  • Spring Cloud BOM をインポートし、個々の Spring Cloud 依存関係のバージョン指定は省略します。
  • プロジェクトで意図的に MVC バリアントを使用している場合を除き、リアクティブゲートウェイを優先します。

ルートのルール

  • 安定したルート ID と明示的な述語を使用します。
  • 信頼できない転送用、ID 用、内部用のヘッダーはエッジで削除します。
  • クライアントから渡された値を削除してから、相関ヘッダーを追加します。
  • パスの書き換えとホストの変更は、ルート設定で明確にします。
  • 接続タイムアウトとレスポンスタイムアウトは全体に設定し、ルートごとの上書きは必要最小限にします。

セキュリティとレジリエンス

  • エッジで認証し、下流のサービスでも認可を行います。
  • トークンは、意図したオーディエンスにのみ中継します。
  • レート制限には、未検証のヘッダーではなく、信頼できる ID または API キーを使用します。
  • リトライするのは、レスポンスの確定前に限り、冪等性のある操作だけにします。
  • 障害が発生している依存関係にはサーキットブレーカーを使用し、無制限のリトライで継続的な障害を隠さないでください。

テストと運用

  • 述語、フィルター、ヘッダーの削除、ステータスのマッピング、タイムアウトをテストします。
  • 統合テストには WireMock またはコンテナ化した上流サービスを使用します。
  • タグの種類を制限して、ルート ID、結果、レイテンシー、上流のメトリクスを出力します。

例

  • examples/good-routes.yml と examples/bad-routes.yml を参照してください。

注意点

  • エージェントがパブリックリクエストの X-User-Id を信頼しています。認証後に ID を導出してください。
  • エージェントが POST リクエストをデフォルトでリトライしています。冪等性が証明された操作だけをリトライしてください。
  • エージェントがビジネスオーケストレーションをゲートウェイフィルターに追加しています。ドメインロジックは下流に置いてください。
  • エージェントがレスポンスタイムアウトを設定していません。上流の応答停止により、ゲートウェイのリソースが枯渇するおそれがあります。
  • エージェントが互換性のない Spring Cloud と Boot のバージョンを組み合わせています。公式の互換性マトリクスを使用してください。

コメント