Azure TableStorage の RowKeys 内に制限された文字パターンはありますか? 多数の検索で文書化されたものを見つけることができませんでした。ただし、一部のパフォーマンス テストでは、そのような動作が発生しています。
ランダムな文字で構成される RowKey で奇妙な動作が発生しました (テスト ドライバーは、制限された文字 (/ \ # ?) を防止し、RowKey で単一引用符が発生するのをブロックします)。結果は、テーブルに正常に挿入される RowKey を取得しましたが、クエリを実行できません (結果は InvalidInput です)。例えば:
RowKey: 9}5O0J=5Z,4,D,{!IKPE,~M]%54+9G0ZQ&G34!G+
この RowKwy (等しい) でクエリを実行しようとすると、エラーが発生します (アプリ内で、Azure Storage Explorer を使用して、Cloud Storage Studio 2 の両方で)。Fiddler 経由で送信されるリクエストを確認しました。
GET /foo()?$filter=RowKey%20eq%20'9%7D5O0J=5Z,4,D,%7B!IKPE,~M%5D%54+9G0ZQ&G34!G+' HTTP/1.1
RowKey の %54 がフィルターでエスケープされていないようです。興味深いことに、この RowKey を含むバッチ XML 内の URI を使用したテーブル ストレージへのバッチ リクエストでも同様の動作が得られます。二重引用符が埋め込まれた RowKeys についても同様の動作を見てきましたが、そのパターンはまだ分離していません。
この振る舞いに遭遇した人はいますか?RowKeys で追加の文字が発生しないように簡単に制限できますが、「ルール」を知りたいです。