Nikhil Jain
10/11/2024, 11:10 PM{{ event }}
(which is basically just the name of the event, I tried passing in {{ resource.event_data }}
. Please note that resource.event_data
is a property I defined this property in my webhook template, it gets populated from the body of the webhook I received originally.
So, what’s happening is that the flow gets executed but instead of receiving the actual resource.event_data
it just received the raw string “{{ resource.event_data }}“. Is it even possible to pass on dynamic data from the original event to the deployment as a parameter?Nate
10/11/2024, 11:27 PMNate
10/11/2024, 11:28 PMNikhil Jain
10/11/2024, 11:39 PM"__prefect_kind": "jinja"
in the parameter definition?Nikhil Jain
10/11/2024, 11:43 PMDeploymentEventTrigger
only?Nikhil Jain
10/11/2024, 11:49 PM{{ event.resource.event_data }}
did not help. The flow got the raw string as the parameter instead of interpreting it as a template:Nate
10/11/2024, 11:54 PMNikhil Jain
10/11/2024, 11:56 PMtriggers=[
DeploymentEventTrigger(
name="dev_document_upload_event_trigger",
enabled=True,
match_related={
"prefect.resource.id": "prefect-cloud.webhook.94676184-be06-4d32-ab88-7b8e55e96ad1"
},
parameters={
"event_data_str": "{{ event.resource.event_data }}"
},
)
],
Nikhil Jain
10/12/2024, 12:05 AMDEPLOYMENT_CONFIGS = [
{
"flow": document_upload_event_handler_flow,
"envs": ["dev"],
"triggers": [
DeploymentEventTrigger(
name="dev_document_upload_event_trigger",
enabled=True,
match_related={
"prefect.resource.id": "prefect-cloud.webhook.94676184-be06-4d32-ab88-7b8e55e96ad1"
},
parameters={"event_data_str": "{{ event.resource.event_data }}"},
)
],
},
{
"flow": document_upload_event_handler_flow,
"envs": ["staging", "prod"],
},
]
for config in deployment_configs:
flow.deploy(
deployment_name,
work_pool_name=work_pool_name,
job_variables={
"task_definition_arn": task_def_arn,
},
build=False,
# image param is redundant because image is always picked from the
# task-def-arn, but deploy function complains if not provided
image=image,
tags=tags,
schedule=config.get("schedule", None),
parameters=config.get("parameters", None),
print_next_steps=False,
triggers=config.get("triggers", None),
)
Nate
10/12/2024, 12:06 AMNikhil Jain
10/12/2024, 12:07 AMNikhil Jain
10/12/2024, 12:07 AM'prefect >= 2.14.8, < 3.0.0',
Nikhil Jain
10/12/2024, 12:12 AM{
"event_data_str": {
"value": "\"{{ event.resource.event_data }}\"",
"__prefect_kind": "json"
}
}
Nate
10/12/2024, 12:14 AMparameters
?
parameters={
"event_data_str": {
"__prefect_kind": "json",
"value": {
"__prefect_kind": "jinja",
"template": "{{ event.resource.event_data }}"
},
},
},
Nikhil Jain
10/12/2024, 12:15 AMDeploymentEventTrigger
?Nate
10/12/2024, 12:18 AM__prefect_kind
stuffNate
10/12/2024, 12:19 AMDeploymentEventTrigger
Nikhil Jain
10/12/2024, 12:19 AMNikhil Jain
10/12/2024, 12:21 AMUser Jinja input
-> and then set value to {{ event.resource.event_data }}
(without "
) and it worked. But I want to try your suggestion using the DeploymentEventTrigger
since that is what we’ll eventually use for deployment, not the UINikhil Jain
10/12/2024, 12:34 AMAutomation Action Failed
"Unable to create flow run from deployment: InvalidJSON()"
Nikhil Jain
10/12/2024, 12:38 AM{
"event_data_str": "{'data': {'applicationId': '8867b27e-c8d8-4219-9d74-b613d33bf143', 'id': 127239, 'tag': {'id': 82, 'name': 'DMI: Driver License Collected'}}}"
}