Каков синтаксис команды cURL в python для GCP Composer (поток воздуха) bash_command - PullRequest
0 голосов
/ 01 февраля 2020

Ниже приведен мой код, в котором я пытаюсь использовать GCP composer для отправки задания с помощью команды cURL. Я получаю сообщение об ошибке «bash command failed». Что не так с строкой bash_command =? Эта команда работает из командной строки и из сценария bash, но не работает при подключении к коду GCP Composer example python. Может быть, экранирование некоторых символов?

Thx.

Вот полный журнал: `*** Чтение удаленного журнала из gs: // us-east1-dataclymer-airflow-9312ee93-bucket / logs /gcp_composer_airflow_matillion/gcp_composer_airflow_matillion/2020-02-04T19:22:58.964822+00:00/1.log. [2020-02-04 19: 23: 05,032] { init .py: 1189} ИНФОРМАЦИЯ - все зависимости были выполнены для [2020-02-04 19: 23: 05,041] { init .py: 1189} INFO - все зависимости, встречающиеся для

[2020-02-04 19: 23: 05,041] { init .py: 1403} INFO -

[2020-02-04 19: 23: 05,041] { init .py: 1404} INFO - попытка запуска 1 из 2

[2020-02-04 19: 23: 05,041 ] { init .py: 1405} INFO -

[2020-02-04 19: 23: 05,079] { init .py: 1424} INFO - Выполнение в 2020-02-04T19: 22: 58.964822 + 00: 00 [2020-02-04 19: 23: 05,080] {base_task_runner.py:119} INFO - Выполняется: ['airflow', 'run', 'gcp_composer_airflow_matillion', 'gcp_composer_airflow_matillion', '2020-02-04T19: 22: 58.964822 + 00: 00', '--job_id', '3345', '--raw', '-sd', 'DAGS_FOLDER / gcp_composer_airflow_matillion.py', ' --cfg_path ',' / tmp / tmpcvqzg0n4 '] [2020-02-04 19: 23: 06,032] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion / usr / local / lib / airflow / airflow / configuration .py: 569: DeprecationWarning: указание на переменную среды AIRFLOW_HOME и airflow_home в файле конфигурации не рекомендуется. Пожалуйста, используйте только переменную окружения AIRFLOW_HOME и удалите запись в файле конфигурации. [2020-02-04 19: 23: 06,032] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion warnings.warn (msg, category = DeprecationWarning) [2020-02-04 19: 23: 06,544] {base_task_runner .py: 101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,543] {settings.py:185} INFO - settings.configure_orm (): использование настроек пула. pool_size = 5, pool_recycle = 1800, pid = 95352 [2020-02-04 19: 23: 06,710] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,709] { default_celery.py:90} ПРЕДУПРЕЖДЕНИЕ - вы настроили result_backend для redis: //airflow-redis-service.default.svc.cluster.local: 6379/0, настоятельно рекомендуется использовать альтернативный result_backend (т. е. база данных). [2020-02-04 19: 23: 06,712] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,712] { init .py: 51 } INFO - Использование executor CeleryExecutor [2020-02-04 19: 23: 06,919] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,919] {app.py:54 } ПРЕДУПРЕЖДЕНИЕ - Использование по умолчанию Composer переменных среды. Переопределения не были применены. [2020-02-04 19: 23: 06,924] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,923] {configuration.py:556} INFO - чтение конфигурации из /etc/airflow/airflow.cfg [2020-02-04 19: 23: 06,927] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion /usr/local/lib/airflow/airflow/configuration.py: 569: DeprecationWarning: Задание как переменной среды AIRFLOW_HOME, так и airflow_home в файле конфигурации не рекомендуется. Пожалуйста, используйте только переменную окружения AIRFLOW_HOME и удалите запись в файле конфигурации. [2020-02-04 19: 23: 06,927] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion warnings.warn (msg, category = DeprecationWarning) [2020-02-04 19: 23: 06,930] {base_task_runner .py: 101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 06,930] {settings.py:185} INFO - settings.configure_orm (): использование настроек пула. pool_size = 5, pool_recycle = 1800, pid = 95352 [2020-02-04 19: 23: 07,013] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 07,012] { init .py: 596 } ИНФОРМАЦИЯ - Заполнение DagBag из /home/airflow/gcs/dags/gcp_composer_airflow_matillion.py [2020-02-04 19: 23: 07,691] {base_task_runner.py:101} INFO - Задание 3345: Подзадача gcp_composer_airflow_-02tiion -04 19: 23: 07,691] {cli.py:517} INFO - Работа на хосте airflow-worker-75bc494cb4-m4jdz [2020-02-04 19: 23: 07,747] {base_task_runner.py:101} INFO - Задание 3345 : Подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 07,746] {bash_operator.py:82} INFO - Tmp dir root location: [2020-02-04 19: 23: 07,747] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion / tmp [2020-02-04 19: 23: 07,747] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 07,747] py: 91} INFO - Экспорт следующих переменных env: [2020-02-04 19: 23: 07,747] {base_task_runner.py:10 1} INFO - задание 3345: подзадача gcp_composer_airflow_matillion AIRFLOW_CTX_DAG_ID = gcp_composer_airflow_matillion [2020-02-04 19: 23: 07,747] {base_task_runner.py:101} INFO - задание_команды__________ : 07,747] {base_task_runner.py:101} ИНФОРМАЦИЯ - Задание 3345: подзадача gcp_composer_airflow_matillion AIRFLOW_CTX_EXECUTION_DATE = 2020-02-04T19: 22: 58.964822 + 00: 00 [2020-02-04 19: 23: 07,747]: юнит базы } ИНФО - Работа 3345: Подзадача gcp_composer_airflow_matillion AIRFLOW_CTX_DAG_RUN_ID = manual__2020-02-04T19: 22: 58,964822 + 00: 00 [2020-02-04 19: 23: 07747] {base_task_runner.py:101} ИНФО - Работа 3345: Подзадача gcp_composer_airflow_matillion [ 2020-02-04 19: 23: 07,747] {bash_operator.py:105} ИНФОРМАЦИЯ - Местоположение временного скрипта: / tmp / airflowtmp2o6y6l8q / gcp_composer_airflow_matillionss6e394n [2020-02-04 19: 23: 07,747] {base_task_runner.O01: 01 - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 07,747] {bas h_operator.py:115} INFO - Выполнение команды: curl -s -u 'ec2-user: i-0d44f430cf31cb57b' -X POST 'http://52.13.147.192/rest/v0/tasks?groupName=sf-giants&projectName=Development&versionName=default&environmentName=Development&jobName=test_bash_time' [2020-02-04 19: 23: 08,021 ] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 23: 08,021] {bash_operator.py:124} INFO - Вывод: [2020-02-04 19: 25: 18,780] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 25: 18,778] {bash_operator.py:132} INFO - команда завершена с кодом возврата 7 [2020-02-04 19:25 : 18,798] { init .py: 1631} ОШИБКА - Команда Bash завершилась неудачно. Traceback (последний последний вызов) Файл "/ usr / local / lib / airflow / airflow / models / init .py ", строка 1491, в _run_raw_tas result = task_copy.execute (context = context File" /usr/local/lib/airflow/airflow/operators/bash_operator.py ", строка 136, при выполнении вызвать AirflowException (" Bash команда завершилась неудачно "airflow.exceptions.AirflowException: Bash команда не выполнена [2020-02-04 19: 25: 18,821] {base_task_runner.py:101} INFO - Задание 3345: Sub task gcp_composer_airflow_matillion [2020-02-04 19: 25: 18,798] { init .py: 1631} ОШИБКА - Bash команда не выполнена [2020-02-04 19: 25: 18,821] {base_task_runner.py : 101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion Traceback (последний последний вызов): [2020-02-04 19: 25: 18,821] { init .py: 1654} INFO - Пометка задачи как UP_FOR_RETRY [ 2020-02-04 19: 25: 18,821] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/models/init.py" , строка 1491, в _run_raw_task [2020-02-04 19: 25: 18,821] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion result = task_copy.execute (context = context) [2020-02-04 19: 25: 18,822] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/operators/bash_operator.py", строка 136, в выполнении [2020-02-04 19 : 25: 18,822] {base_task_runner. py: 101} ИНФОРМАЦИЯ - Задание 3345: подзадача gcp_composer_airflow_matillion повысить AirflowException ("Bash команда завершилась неудачно") [2020-02-04 19: 25: 18,822] {base_task_runner.py:101} ИНФОРМАЦИЯ - Задание 3345: подзадача gcp_composer_airflow_ti. exceptions.AirflowException: Bash команда не выполнена [2020-02-04 19: 25: 18,822] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion [2020-02-04 19: 25: 18,821] { init .py: 1654} INFO - Пометка задачи как UP_FOR_RETRY [2020-02-04 19: 25: 18,854] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion Traceback (последний вызов последнего): [2020-02-04 19: 25: 18,855] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/ usr / local / bin / airflow", строка 7, в [2020-02-04 19: 25: 18,855] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion exe c (compile (f.read (), file , 'exe c')) [2020- 02-04 19: 25: 18,855] {base_task_runner.py:101} ИНФОРМАЦИЯ - Работа 3345: файл подзадачи gcp_composer_airflow_matillion "/ usr / local / lib / airflow / airflow / bin / airflow", строка 32, в [2020-02-04 19: 25: 18,856] {base_task_runner.py:101} ИНФОРМАЦИЯ - Задание 3345: Подзадача gcp_composer_airflow_matillion args.fun c (args) [2020-02-04 19: 25: 18,856] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/ usr / local / lib air air utils / cli.py ", строка 74, в оболочке [2020-02-04 19: 25: 18,856] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion возвращает f (* args, ** kwargs) [2020 -02-04 19: 25: 18,857] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/bin/cli.py", строка 523, в работе [ 2020-02-04 19: 25: 18,857] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion _run (args, dag, ti) [2020-02-04 19: 25: 18,857] {base_task_runner.py: 101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/ usr / local / lib / airflow / airflow / b в / cli.py ", строка 442, в _run [2020-02-04 19: 25: 18,858] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion pool = args.pool, [2020-02-04 19: 25: 18,858] {base_task_runner.py:101} INFO - Задание 3345: файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/utils/db.py", строка 73, в оболочке [2020-02- 04 19: 25: 18,858] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion вернуть удовольствие c (* args, ** kwargs) [2020-02-04 19: 25: 18,859] {base_task_runner.py : 101} ИНФОРМАЦИЯ - Задание 3345: Файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/models/init.py", строка 1491, в _run_raw_task [2020-02-04 19:25 : 18,859] {base_task_runner.py:101} INFO - задание 3345: подзадача gcp_composer_airflow_matillion result = task_copy.execute (context = context) [2020-02-04 19: 25: 18,863] {base_task_runner.py:101} INFO - задание 3345 : Файл подзадачи gcp_composer_airflow_matillion "/usr/local/lib/airflow/airflow/operators/bash_operator.py ", строка 136, в выполнении [2020-02-04 19: 25: 18,863] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion повысить AirflowException (" Bash команда завершилась неудачно ") [2020-02-04 19: 25: 18,863] {base_task_runner.py:101} INFO - Задание 3345: подзадача gcp_composer_airflow_matillion airflow.exceptions.AirflowException: Bash сбой команды `

from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from datetime import timedelta

default_args = {
    'start_date': airflow.utils.dates.days_ago(0),
    'retries': 1,
    'retry_delay': timedelta(minutes=5)
}

dag = DAG(
    'gcp_composer_airflow_matillion',
    default_args=default_args,
    description='gcp composer airflow matillion dag',
    schedule_interval=None,
    dagrun_timeout=timedelta(minutes=60))

# priority_weight has type int in Airflow DB, uses the maximum.
t1 = BashOperator(
    task_id='gcp_composer_airflow_matillion',
    bash_command='curl -s -u "ec2-user:i-xxxxx" -X POST "http://xx.xx.xxx.xxx/rest/v0/tasks?groupName=xx-xxx&projectName=Development&versionName=default&environmentName=Development&jobName=test_bash_time"',
    dag=dag,
    depends_on_past=False,
    priority_weight=2**31-1)```

...