Airflow - GCP - файлы из папки DAG не отображаются

Я новичок в GCP. У меня есть образец скрипта Python, созданный в среде GCP, который работает нормально. Я хочу запланировать это на Airflow. Я скопировал файл в DAG папку в среде (gs://us-west2-*******-6f9ce4ef-bucket/dags), но он отображается в DAG воздушного потока. Это местоположение в конфигурации воздушного потока. dags_folder = /home/airflow/gcs/dags

Пожалуйста, дайте мне знать, как заставить мой код Python отображаться в воздушном потоке .. мне нужно настроить какие-либо другие вещи. Я сохранил все дефолтные.

Заранее спасибо.


person GCPStart    schedule 10.03.2021    source источник


Ответы (1)


То, что вы сделали, уже правильно, и вы поместили свой скрипт python в свой gs://auto-generated-bucket/dags/. Я не уверен, что вы могли использовать airflow библиотеку в своем скрипте, но эта библиотека позволит вам настроить поведение вашего DAG в воздушном потоке. Вы можете увидеть пример в кратком руководстве по Cloud Composer.

Подробное руководство по DAG можно найти здесь.

Пример DAG (test_dag.py), который печатает dag_run.id:

# test_dag.py #

import datetime
import airflow
from airflow.operators import bash_operator

YESTERDAY = datetime.datetime.now() - datetime.timedelta(days=1)

default_args = {
    'owner': 'Composer Example',
    'depends_on_past': False,
    'email': [''],
    'email_on_failure': False,
    'email_on_retry': False,
    'retries': 1,
    'retry_delay': datetime.timedelta(minutes=5),
    'start_date': YESTERDAY,
}

with airflow.DAG(
        'this_is_the_test_dag', ## <-- This string will be displayed in the AIRFLOW web interface as the DAG name ##
        'catchup=False',
        default_args=default_args,
        schedule_interval=datetime.timedelta(days=1)) as dag:

    # Print the dag_run id from the Airflow logs
    print_dag_run_conf = bash_operator.BashOperator(
        task_id='print_dag_run_conf', bash_command='echo {{ dag_run.id }}')

gs://auto-generated-bucket/dags/ Расположение gcs:  введите описание изображения здесь

Веб-сервер Airflow:  введите описание изображения здесь

person Ricco D    schedule 11.03.2021
comment
Спасибо, Ricco .. это помогло мне решить проблему и исправить ее .. вот что это происходит .. У меня есть скрипт python в среде, но я не могу скопировать его напрямую в папку DAG .. поэтому я должен создать файл python на моем рабочем столе ..загрузите в папку DAG, когда я это сделаю, тип файла не отображается как x-python в облаке GCP .. это причина того, что он не отображается в воздушном потоке .. Мне нужно вручную изменить тип файла, перейдя к редактированию свойств метаданных .. есть ли способ избежать этого 1 .. пожалуйста, советую - person GCPStart; 11.03.2021
comment
@GCPStart Если вы установили Google Cloud SDK, вы можете запустить эту команду на своем терминале. gcloud composer environments storage dags import --environment "you-environment-name-here" --location "your-environment-location" --source "/full_path_of_your_code/your_python_script.py". Эта команда скопирует ваш скрипт в папку DAGs вашего облачного композитора. Дополнительные сведения о том, как использовать команду gcloud, можно найти здесь. - person Ricco D; 12.03.2021