Supervisor: 「environment」設定オプションは、引用されている場合でも「%」文字を受け入れません

作成日 2013年09月27日  ·  4コメント  ·  ソース: Supervisor/supervisor

構成ファイルでenvironment=パラメーターを設定すると、 %記号はError: Format string 'KEY="%"' for 'environment' is badly formattedエラーを返します。

例えば

わかりました: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"

壊れた: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

壊れた: environment=FOO="%"

壊れた: environment=FOO="\%"

environment

最も参考になるコメント

壊れた: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

%%を使用して、 %を含めることができるはずです。

スーパーバイザーは、構成ファイルを解析するときにPython文字列補間を使用するため、次のようにテストできます。

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

%%

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

全てのコメント4件

壊れた: environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"

%%を使用して、 %を含めることができるはずです。

スーパーバイザーは、構成ファイルを解析するときにPython文字列補間を使用するため、次のようにテストできます。

$ python
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i" % {}
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: %d format: a number is required, not dict

%%

>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'

やあ、

[supervisord]ブロック内のenvironment=パラメーターの構成で同様の問題に直面しました。

%記号の付いたパラメーターがあります。 提案された解決策(2つの%記号を使用)を試しましたが、問題を解決できませんでした。

試してみるサンプル文字列: x1it3km%2BTVmkRsQ
この文字列で次のエラーが発生する

エラー:「supervisord.environment」のフォーマット文字列「SECRET = "x1it3km%2BTVmkRsQ"」のフォーマットが正しくありません:サポートされていないフォーマット文字「B」

これは%記号に続く数字と関係があると思いますが、よくわかりません。
何か案は?

@chinmaybhoirそれは事実です...それは%2を特別な

スーパーバイザーが文字列内の%自動的にエスケープできれば素晴らしいでしょう(たとえば、 %(ENV_SECRET_KEY)現在x1it3km%2BTVmkRsQに展開されますが、これは無効ですが、展開したいのですがx1it3km%%2BTVmkRsQ 。この方法で、私は上司の幸せを作るために私のDjangoの秘密キーを変更する必要はありません。

このページは役に立ちましたか?
0 / 5 - 0 評価