2018年2月14日水曜日

TableStrage コネクタで RowKey に()とマルチバイト文字を指定すると認証エラーとなる

毎日動作させている、LogicApps と Flow の新規コネクタ検索、昨日からエラーとなっていたのと2日続けて同じコネクタが新規登録扱いとなっていたので調べてみたところ、TableStorage コネクタで怪しい挙動があるのがわかりました。

実際に発生したエラーは以下のようなものになります。

image

このように、TableStorage コネクタで 403 な認証エラーが返却されています。ところが、エラーとなるのは数件で、他の更新は問題なく行われていたため、コネクタの不具合が考えられました。

image

エラーなっていたケースでは、マルチバイト文字(日本語の漢字)と ASCII 文字の () を組み合わせて RowKey に指定したケースに限定されており、これを確かめるために以下のように実施してみました。

image

RowKey に指定する値を、uriComponent 関数でエンコードした結果にした場合、上記のようにエラーは発生せず TableStorage の更新が問題なく行えており、仮説として立てた「マルチバイト文字 + ()」の組み合わせでのみ、認証エラーとなってしまうことがほぼほぼ確認できました。

TableStorage に直接データを設定した場合、上記の組み合わせであってもエラーとはなりません。そこをふまえると、LogicApps のコネクタの問題である、と言えると思います。

対応策は、上記のように uriComponent 関数を使って RowKey を指定する、で大丈夫ですのでそこまで重症ではありません。

0 件のコメント:

コメントを投稿