Daniel Nilsen
04/19/2022, 10:24 AMAnna Geller
04/19/2022, 10:35 AMDaniel Nilsen
04/19/2022, 10:37 AMAnna Geller
04/19/2022, 10:37 AMDaniel Nilsen
04/19/2022, 10:44 AMare you dynamically changing say DB passwordlets say I did this. how would I hide the password from the logs?
Anna Geller
04/19/2022, 10:47 AMfrom prefect import task, Flow, Parameter
import time
import logging
import prefect
# Creating a filter
class SecureFilter(logging.Filter):
def filter(self, rec):
if 'secs' in rec.msg:
return 0
return 1
@task
def abc(x):
time.sleep(x)
return x
def get_logger():
logger = logging.getLogger("prefect.TaskRunner")
logger.addFilter(SecureFilter())
return logger
with Flow("timer flow") as flow:
logger = get_logger()
secs= Parameter("secs", 1)
abc.map([secs]*5)
flow.run()
but again, I don't think that this is the right approach (just to be transparent)Daniel Nilsen
04/19/2022, 10:48 AMAnna Geller
04/19/2022, 11:09 AMKevin Kho
04/19/2022, 1:57 PM@task
def get_secret_name(env):
return env+"password"
with Flow(...) as flow:
env = Parameter("env", default="staging")
secret_name = get_secret_name(env)
pw = PrefectSecret()(secret_name)
You just need to pass the secret name to the run method instead of the init