開発者はAWS X-Rayを使ってサーバーレスアプリケーションのトレースを取得しています。特定の顧客IDに関連するトレースをX-Rayコンソールのフィルター式で検索したいと考え、Lambda関数内に以下のコードを追加しました:`subsegment.putMetadata('customerId', customerId)`。しかしX-Rayコンソールで `annotation.customerId = "C-123"` というフィルター式を使っても結果が表示されません。原因として最も可能性が高いのはどれですか?
正解: B. putMetadata() で追加した値はインデックス化されないため検索できない。検索・フィルタリングには putAnnotation() を使用する必要がある。 X-Rayでは、アノテーション(putAnnotation())はインデックス化され、コンソールやAPIのフィルター式で検索できます。一方、メタデータ(putMetadata())はインデックス化されないため個々のトレース詳細の閲覧には使えますがフィルタリングはできません。orderId・userId・transactionIdなどのビジネスキーでトレースを検索したい場合は必ずputAnnotation()を使用してください。選択肢Aについて:問題文では「トレースを取得している」とあるためX-Rayアクティブトレーシングはすでに有効であり、データ未送信の状態ではありません。選択肢Cについて:X-Rayフィルター式は文字列値の検索をサポートしており、annotation.key = "value" の構文は正常に動作します。選択肢Dについて:ハイフンを含む文字列値はX-Rayフィルター式で正常に処理され、パースエラーは発生しません。