Lors de la définition du paramètre environment=
dans un fichier de configuration, le signe %
renvoie une erreur Error: Format string 'KEY="%"' for 'environment' is badly formatted
.
par exemple
D'accord : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wkyi"
Cassé : environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
Cassé : environment=FOO="%"
Cassé : environment=FOO="\%"
Cassé :
environment=SECRET_KEY="*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i"
Vous devriez pouvoir inclure un %
en utilisant %%
.
Supervisor utilise l'interpolation de chaîne Python lors de l'analyse du fichier de configuration, vous pouvez donc le tester comme ceci :
$ 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
Avec %%
:
>>> "*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%%i" % {}
'*wi4h$kqxp84f3w6uh8w@l$0(+@x$3cr&)z^lmg+pqw^6wky%i'
Salut,
Je fait face à un problème similaire avec config dans environment=
paramètre intérieur [supervisord]
bloc.
J'ai un paramètre avec le signe %
. J'ai essayé la solution suggérée (en utilisant 2 signes %
), mais je n'ai pas réussi à résoudre le problème.
Exemple de chaîne à essayer : x1it3km%2BTVmkRsQ
Obtention de l'erreur suivante pour cette chaîne
Erreur : La chaîne de format 'SECRET="x1it3km%2BTVmkRsQ"' pour 'supervisord.environment' est mal formatée : caractère de format 'B' non pris en charge
Je pense que cela a quelque chose à voir avec un nombre suivant le signe %
, mais je ne suis pas sûr.
Des idées?
@chinmaybhoir c'est le cas... il considère %2 comme un caractère spécial ou quelque chose comme ça.... Dans mon cas j'étais sur Django donc j'enlève juste tous les % dans la clé et ça a bien fonctionné
Ce serait incroyable si le superviseur pouvait automatiquement échapper à %
s dans les chaînes (par exemple, %(ENV_SECRET_KEY)
se développe actuellement en x1it3km%2BTVmkRsQ
, ce qui n'est pas valide, mais j'aimerais qu'il se développe à x1it3km%%2BTVmkRsQ
. De cette façon, je n'aurais pas à changer ma clé secrète Django pour faire plaisir au superviseur.
Commentaire le plus utile
Vous devriez pouvoir inclure un
%
en utilisant%%
.Supervisor utilise l'interpolation de chaîne Python lors de l'analyse du fichier de configuration, vous pouvez donc le tester comme ceci :
Avec
%%
: