Luke Orland
07/16/2020, 5:26 PMfrom prefect import Flow, Parameter, task
from prefect.tasks.secrets import PrefectSecret
with Flow("parameter_to_secret") as flow:
aws_credentials_secret_name = Parameter(
'aws_credentials_secret_name', default='AWS_CREDENTIALS',
)
aws_credentials = PrefectSecret(aws_credentials_secret_name)
aws_credentials['ACCESS_KEY']
if __name__ == "__main__":
flow.run()
"""
Traceback (most recent call last):
File ".../workflow_parameter_to_secret.py", line 10, in <module>
aws_credentials = PrefectSecret(aws_credentials_secret_name)
File ".../lib/python3.7/site-packages/prefect/tasks/secrets/base.py", line 48, in __init__
super().__init__(**kwargs)
File ".../lib/python3.7/site-packages/prefect/tasks/secrets/base.py", line 29, in __init__
super().__init__(**kwargs)
File ".../lib/python3.7/site-packages/prefect/core/task.py", line 209, in __init__
self.logger = logging.get_logger(self.name)
File ".../lib/python3.7/site-packages/prefect/utilities/logging.py", line 281, in get_logger
return prefect_logger.getChild(name)
File ".../lib/python3.7/logging/__init__.py", line 1649, in getChild
suffix = '.'.join((self.name, suffix))
TypeError: sequence item 1: expected str instance, Parameter found
"""
use_local_secrets = true/false
in config.toml
Dylan
07/16/2020, 5:46 PMaws_secret = PrefectSecret(name=None) # initializes Task, unrelated to binding it within a Flow
with Flow("parameter_to_secret") as flow:
aws_credentials_secret_name = Parameter(
'aws_credentials_secret_name', default='AWS_CREDENTIALS',
)
aws_credentials = aws_secret(name=aws_credentials_secret_name) # calls the task, actually creates a task dependency
aws_credentials['ACCESS_KEY']
Luke Orland
07/16/2020, 7:02 PMaws_credentials = PrefectSecret(name=None)(name=aws_credentials_secret_name)
Dylan
07/16/2020, 7:18 PM