Payment Gatewayのコンテキスト伝播を修正する
Gateway修正の再デプロイ
保存後のリビルドと再デプロイ #
注意
server.js を保存しただけでは、リビルドと再起動を行うまで実行中のPodは更新 されません。プロジェクトルートから実行します
bash
bash scripts/build-images.sh payment-gateway
bash scripts/import-images-k3d.sh payment-gateway
kubectl -n cosmic-shop rollout restart deployment/payment-gateway
kubectl -n cosmic-shop rollout status deployment/payment-gateway --timeout=180s検証チェックリスト #
再デプロイが完了した後、以下のコマンドを実行します。
1. ヘルスエンドポイントがpropagationを報告していることを確認 #
bash
kubectl -n cosmic-shop exec deploy/payment-gateway -- wget -qO- http://localhost:3004/healthjson
{"status":"ok","service":"payment-gateway","stage":"proxy","propagation":true}ヘルスチェックは、Spanがアクティブなときに buildUpstreamHeaders() が traceparent ヘッダーを追加するかどうかを検査します。propagation.inject() を追加すると自動的に true に切り替わります。
2. テスト注文を行いトレースを確認 #
bash
curl -s -X POST http://localhost:30080/api/purchases \
-H "Content-Type: application/json" \
-d '{"productId":"telescope-orion-8","quantity":1,"customerEmail":"gateway-test@cosmic.shop"}' \
| python3 -m json.tooljson
{
"message": "Purchase complete — order placed and payment submitted for fulfillment",
"order": {
"orderId": "ORD-1783667419611",
"productId": "telescope-orion-8",
"productName": "Orion 8\" Dobsonian Telescope",
"quantity": 1,
"total": 449.99,
"customerEmail": "gateway-test@cosmic.shop",
"createdAt": "2026-07-10T07:10:19.611Z",
"requestTraceId": "6891d2d87734d4959214491bb2c600af"
},
"payment": {
"paymentId": "PAY-1783667419703",
"orderId": "ORD-1783667419611",
"amount": 449.99,
"status": "authorized",
"method": "stellar-credits",
"processedAt": "2026-07-10T07:10:19.703Z"
}
}注意
このワークショップではNode.jsプロキシを使用しており、アプリケーション層 のpropagationバグ(BFFやカスタムゲートウェイでよく見られる)を実践します。Step 06のNGINX ConfigMapアプローチは、問題が インフラストラクチャプロキシ 層にある場合に適用されます。
