У меня есть экземпляр EC2, в котором есть репозиторий dbt, который выглядит следующим образом:
Код: Выделить всё
home/ubuntu/mmp_redshift_model# ls
README.md analyses dbt_project.yml logs macros models profiles.yml seeds snapshots target tests venvs
Команда Мой EC2 размещен в VPC, и соединение между MWAA и EC2 в порядке. Протестировал.
Теперь, когда я запускаю этот пример кода DAG, он выдает ошибку:
Код: Выделить всё
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': datetime(2024, 7, 13),
}
sshHook = SSHHook(ssh_conn_id="ec2_ssh_connection")
dag = DAG(
'dbt_dag',
default_args=default_args,
description='A DAG to run DBT on EC2',
schedule_interval='@daily',
catchup=False,
)
dbt_command = "pwd && cd mmp_redshift_model && source venvs/bin/activate;\
dbt run --profiles-dir .;"
run_dbt_task = SSHOperator(
ssh_hook = sshHook,
task_id='run_dbt_task',
command=dbt_command,
dag=dag,
)
run_dbt_task
Код: Выделить всё
[2024-07-15, 15:24:50 UTC] {{ssh.py:478}} INFO - Running command: pwd && cd mmp_redshift_model && source venvs/bin/activate; dbt run --profiles-dir .;
[2024-07-15, 15:24:51 UTC] {{ssh.py:524}} INFO - /home/ubuntu
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - [0m15:24:53 Encountered an error:
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - [Errno 13] Permission denied: '/home/ubuntu/mmp_redshift_model/logs/dbt.log'
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - [0m15:24:53 Traceback (most recent call last):
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt/cli/requires.py", line 138, in wrapper
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - result, success = func(*args, **kwargs)
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt/cli/requires.py", line 77, in wrapper
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - setup_event_logger(flags=flags, callbacks=callbacks)
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt/events/logging.py", line 99, in setup_event_logger
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - add_logger_to_manager(
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt_common/events/event_manager_client.py", line 17, in add_logger_to_manager
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - _EVENT_MANAGER.add_logger(logger)
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt_common/events/event_manager.py", line 36, in add_logger
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - _JsonLogger(config) if config.line_format == LineFormat.Json else _TextLogger(config)
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt_common/events/logger.py", line 147, in __init__
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - super().__init__(config)
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/local/lib/python3.10/dist-packages/dbt_common/events/logger.py", line 107, in __init__
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - file_handler = RotatingFileHandler(
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/lib/python3.10/logging/handlers.py", line 155, in __init__
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - BaseRotatingHandler.__init__(self, filename, mode, encoding=encoding,
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/lib/python3.10/logging/handlers.py", line 58, in __init__
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - logging.FileHandler.__init__(self, filename, mode=mode,
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/lib/python3.10/logging/__init__.py", line 1169, in __init__
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - StreamHandler.__init__(self, self._open())
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - File "/usr/lib/python3.10/logging/__init__.py", line 1201, in _open
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - return open_func(self.baseFilename, self.mode,
[2024-07-15, 15:24:53 UTC] {{ssh.py:524}} INFO - PermissionError: [Errno 13] Permission denied: '/home/ubuntu/mmp_redshift_model/logs/dbt.log'
[2024-07-15, 15:24:54 UTC] {{taskinstance.py:2698}} ERROR - Task failed with exception
Traceback (most recent call last):
File "/usr/local/airflow/.local/lib/python3.11/site-packages/airflow/models/taskinstance.py", line 433, in _execute_task
result = execute_callable(context=context, **execute_callable_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/.local/lib/python3.11/site-packages/airflow/providers/ssh/operators/ssh.py", line 191, in execute
result = self.run_ssh_client_command(ssh_client, self.command, context=context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/airflow/.local/lib/python3.11/site-packages/airflow/providers/ssh/operators/ssh.py", line 179, in run_ssh_client_command
self.raise_for_status(exit_status, agg_stderr, context=context)
File "/usr/local/airflow/.local/lib/python3.11/site-packages/airflow/providers/ssh/operators/ssh.py", line 173, in raise_for_status
raise AirflowException(f"SSH operator error: exit status = {exit_status}")
airflow.exceptions.AirflowException: SSH operator error: exit status = 2
TIA
Подробнее здесь: https://stackoverflow.com/questions/787 ... h-operator