我正在使用Azure数据块从Azure密钥保管库中获取环境值,该值为intg
。
env = dbutils.secrets.get(scope = "myscrope", key = "environment")
当我打印这个时,它显示为[REDACTED]
,这是预期的。
现在我声明另一个变量如下。
prm = 'myintgterritoy'
当我打印这个变量时,它显示为my[REDACTED]territoy
,因为intg
关键字在这里。我不期望这个行为,因为这是一个完全不同的变量。我如何才能得到myintgterritoy
的值?
我尝试了一种方法,可以使用下面的代码将带有空格的实际值放到一个新变量中。
new_prm = ''
for char in prm:
new_prm += char + ' '
但是当我用空字符串替换空格时,它返回的结果是my[REDACTED]territoy
。
new_prm.replace(' ','')
我希望输出为myintgterritoy
。
1条答案
按热度按时间juzqafwq1#
这是不可能的,Databricks只是扫描整个输出中出现的秘密值,并将其替换为“[REDACTED]"。
如果你转换值,这是没有用的。例如,就像你已经尝试过的,你可以在字符之间插入空格,这将显示值。你可以对一个不可见的字符使用一个技巧-例如Unicode invisible separator,它在UTF-8中编码为
0xE281A3
。注意,看起来像“intg”的东西实际上是“intg”--所以分隔符仍然在那里,只是看不见,如果你复制粘贴值,分隔符会保留下来。
更好的做法是,使用秘密范围来定义真正的秘密,而对于其他变量,选择其他工具,如Azure应用程序配置或领事KV,或者可能只是一个配置文件。