Не удалось заставить ECSOperator (Fargate) работать с Airflow

Я получаю эту ошибку при использовании ECSOperator для запуска задач через ECS Fargate в Airflow 1.10.1. Код DAG доступен здесь

[2019-04-15 15:57:36,960] {{models.py:1788}} ERROR - An error occurred 
(InvalidParameterException) when calling the RunTask operation: Network 
Configuration must be provided when networkMode 'awsvpc' is specified.

Не уверен, что там не так, так как network_configuration передается в словарь args, аналогично тому, что делается здесь https://github.com/apache/airflow/blob/master/tests/contrib/operators/test_ecs_operator.py#L61


person scetoaux    schedule 16.04.2019    source источник


Ответы (2)


network_configuration был добавлен в ESCOperator начиная с Airflow v1.10.3. Я бы предложил обновить версию Airflow до v1.10.3.

Ссылка: https://github.com/apache/airflow/blob/1.10.3/airflow/contrib/operators/ecs_operator.py#L69

person Ryan Yuan    schedule 16.04.2019

Пример конфигурации ECSOperator для запуска Fargate в версии Airflow — v1.10.3

def get_ecs_operator_args(param):
    return dict(

launch_type="FARGATE", 
              # The name of your task as defined in ECS

task_definition="my_automation_task",
              # The name of your ECS cluster

cluster="my-cluster", 
              network_configuration={

                    'awsvpcConfiguration': {
                           'securityGroups': ['sg-hijk', 'sg-abcd'],
                           'subnets': ['subnet-lmn'],
                           'assignPublicIp': "ENABLED"
                       }
               }, 
              overrides = {
                        'containerOverrides': [
                          {
                               'name': "my-container",
                               'command': ["python", "myCode.py",
                                           str(param)]
                           }
                         ]
                },


region_name="us-east-1")

ecs_args = get_ecs_operator_args("{{ dag_run.conf['name'] }}")

my_operator = ECSOperator( task_id= "task_0",**ecs_args, dag=dag)
person GTO    schedule 10.07.2019