MWAA ECSOperator "No task found" 但成功
MWAA ECSOperator "No task found" but succeeds
我在 MWAA 中有一个 ECSOperator
任务。
当我触发任务时,它立即成功。不过这个任务应该需要时间才能完成,所以我不相信它真的开始了。
当我去检查任务 运行 时,我收到错误消息“找不到任务”。
任务定义如下所示:
from datetime import datetime
from airflow import DAG
from airflow.providers.amazon.aws.operators.ecs import ECSOperator
dag = DAG(
"my_dag",
description = "",
start_date = datetime.fromisoformat("2022-03-28"),
catchup = False,
)
my_task = ECSOperator(
task_id = "my_task",
cluster = "my-cluster",
task_definition = "my-task",
launch_type = "FARGATE",
aws_conn_id = "aws_ecs",
overrides = {},
network_configuration = {
"awsvpcConfiguration": {
"securityGroups": [ "sg-aaaa" ],
"subnets": [ "subnet-bbbb" ],
},
},
awslogs_group = "/ecs/my-task",
)
my_task
我在这里错过了什么?
如果执行任务,它应该有一个日志。
我认为您的问题是您定义的任务未分配给任何 DAG 对象,因此您看到 No task found
error (empty DAG)
您应该添加 dag=dag
:
my_task = ECSOperator(
task_id = "my_task",
...,
dag=dag
)
或使用上下文管理器来避免此类问题:
with DAG(
dag_id="my_dag",
...
) as dag:
my_task = ECSOperator(
task_id = "my_task",
...,
)
如果您使用的是 Airflow 2,您还可以使用 dag decorator。
我在 MWAA 中有一个 ECSOperator
任务。
当我触发任务时,它立即成功。不过这个任务应该需要时间才能完成,所以我不相信它真的开始了。
当我去检查任务 运行 时,我收到错误消息“找不到任务”。
任务定义如下所示:
from datetime import datetime
from airflow import DAG
from airflow.providers.amazon.aws.operators.ecs import ECSOperator
dag = DAG(
"my_dag",
description = "",
start_date = datetime.fromisoformat("2022-03-28"),
catchup = False,
)
my_task = ECSOperator(
task_id = "my_task",
cluster = "my-cluster",
task_definition = "my-task",
launch_type = "FARGATE",
aws_conn_id = "aws_ecs",
overrides = {},
network_configuration = {
"awsvpcConfiguration": {
"securityGroups": [ "sg-aaaa" ],
"subnets": [ "subnet-bbbb" ],
},
},
awslogs_group = "/ecs/my-task",
)
my_task
我在这里错过了什么?
如果执行任务,它应该有一个日志。
我认为您的问题是您定义的任务未分配给任何 DAG 对象,因此您看到 No task found
error (empty DAG)
您应该添加 dag=dag
:
my_task = ECSOperator(
task_id = "my_task",
...,
dag=dag
)
或使用上下文管理器来避免此类问题:
with DAG(
dag_id="my_dag",
...
) as dag:
my_task = ECSOperator(
task_id = "my_task",
...,
)
如果您使用的是 Airflow 2,您还可以使用 dag decorator。