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