Невозможно заставить ECSOperator (Fargate) работать с Airflow - PullRequest
1 голос
/ 16 апреля 2019

Я получаю эту ошибку при использовании 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.

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

Ответы [ 2 ]

2 голосов
/ 16 апреля 2019

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

0 голосов
/ 10 июля 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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...