wonsun
07/13/2022, 2:16 AMTraceback (most recent call last):
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 551, in _send_request
response.raise_for_status()
File "C:\Users\user\anaconda3\lib\site-packages\requests\models.py", line 960, in raise_for_status
raise HTTPError(http_error_msg, response=self)
requests.exceptions.HTTPError: 400 Client Error: Bad Request for url: <http://localhost:4200/>
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File ".\label_test.py", line 19, in <module>
client.set_secret(name="mysql", value="<mysql+pymysql://user:pwd@host/database>")
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 1643, in set_secret
result = self.graphql(
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 452, in graphql
result = <http://self.post|self.post>(
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 407, in post
response = self._request(
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 641, in _request
response = self._send_request(
File "C:\Users\user\anaconda3\lib\site-packages\prefect\client\client.py", line 564, in _send_request
raise ClientError(f"{exc}\n{graphql_msg}") from exc
prefect.exceptions.ClientError: 400 Client Error: Bad Request for url: <http://localhost:4200/>
The following error messages were provided by the GraphQL server:
GRAPHQL_VALIDATION_FAILED: Unknown type "set_secret_input". Did you mean
"agent_set_input", "edge_set_input", "log_set_input", "task_set_input", or
"agent_insert_input"?
GRAPHQL_VALIDATION_FAILED: Cannot query field "set_secret" on type "Mutation".
The GraphQL query was:
mutation($input: set_secret_input!) {
set_secret(input: $input) {
success
}
}
The passed variables were:
{"input": {"name": "mysql", "value": "<mysql+pymysql://user:pwd@host/database>"}}
Anna Geller
07/13/2022, 10:19 AMfrom prefect import Flow, task, resource_manager, case
from prefect.tasks.control_flow import merge
from prefect.tasks.secrets import PrefectSecret
with Flow('test') as flow:
my_secret = PrefectSecret("mysql")
new_data, decision = task1(credential=my_secret)
with case(decision, True):
processing = statement_update(credential=my_secret, list=new_data)
with case(decision, False):
processing = None
wonsun
07/13/2022, 10:41 PMfrom prefect import Flow, task, resource_manager, case
from prefect.tasks.control_flow import merge
from prefect import Client
from prefect.tasks.secrets import PrefectSecret
client = Client()
client.set_secret(name="mysql", value="<mysql+pymysql://user:pwd@host/database>")
@task(nout=2)
def task1(credential):
connection = create_engine(credential).connnect()
~
~~
return out1, out2
@task
def task2(credential, list):
connection = create_engine(credential).connect()
~
~~
need2processing = a_function(list)
~~
~
with Flow('test') as flow:
my_secret = PrefectSecret("mysql")
new_data, decision = task1(credential=my_secret)
with case(decision, True):
processing = task2(credential=my_secret, list=new_data)
with case(decision, False):
processing = None
flow.register(~~~)
code?
Can't I use the secret function when I run flow immediately in the console with flow.run()
?Anna Geller
07/13/2022, 11:11 PMwonsun
07/13/2022, 11:21 PMAnna Geller
07/14/2022, 11:30 AM