- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 CLI(使用 Click 构建)创建了一个自定义包。这个包可以做两件事:运行预处理和运行机器学习模型。我为这个客户包创建了一个 Docker 镜像,并将其推送到 AWS (ECR) 上的私有(private)注册表。
现在我想用 Airflow 运行这个容器,我想在 EC2 实例上运行它。我正在使用 docker-compose 运行它。
对于这个例子,我将只关注一个任务:运行容器进行预处理。
但是,现在我得到 t2 的“上游失败”。
from datetime import timedelta
import airflow
from airflow import DAG
from airflow.operators.bash_operator import BashOperator
from airflow.operators.docker_operator import DockerOperator
default_args = {
'owner': 'airflow',
'depends_on_past': False,
'start_date': airflow.utils.dates.days_ago(1),
'email': ['airflow@example.com'],
'email_on_failure': False,
'email_on_retry': False,
'retries': 1,
'retry_delay': timedelta(minutes=5)
}
dag = DAG(
'example_pipeline',
default_args=default_args,
description='example data pipeline.',
schedule_interval=timedelta(minutes=3)
)
t1 = BashOperator(
task_id='starting_airflow',
bash_command='echo "Starting Airflow DAG..."',
dag=dag,
)
t2 = DockerOperator(
task_id='data_pipeline',
image='XXXXXXXX.dkr.ecr.eu-central-1.amazonaws.com/rwg:latest',
container_name='task__export_data',
command="run-preprocessing",
network_mode="bridge",
api_version="auto",
docker_url="unix://var/run/docker.sock",
docker_conn_id='aws_con',
dag=dag
)
t1 >> t2
我通过 UI 创建了“aws_con”。但这似乎不起作用。
此外,这是我的 docker-compose.yml 文件。
version: '3'
services:
postgres:
image: postgres:9.6
environment:
- POSTGRES_USER=airflow
- POSTGRES_PASSWORD=airflow
- POSTGRES_DB=airflow
ports:
- "5432:5432"
volumes:
- ./pgdata:/var/lib/postgresql/data
webserver:
build: .
restart: always
depends_on:
- postgres
environment:
- LOAD_EX=n
- EXECUTOR=Local
- FERNET_KEY=jsDPRErfv8Z_eVTnGfF8ywd19j4pyqE3NpdUBA_oRTo=
volumes:
- ./dags:/usr/local/airflow/dags
ports:
- "8080:8080"
command: webserver
healthcheck:
test: ["CMD-SHELL", "[ -f /usr/local/airflow/airflow-webserver.pid ]"]
interval: 30s
timeout: 30s
retries: 3
关于 Docker Operator,我做错了什么?
第二个问题:如何通过代码或 cli 创建这个“aws_con”?
最佳答案
您应该指定 docker 连接。
这是在 Airflow 中传递凭据的标准方式,Docker 有一个专用的 Docker 连接,您可以在 Airlfow DB 或 Secrets 中定义该连接,并将连接的 ID 作为 docker_conn_id
传递给 DockerOperator -参数(您也可以在那里指定 url,这样您就不需要在运算符(operator)中传递 docker_url)。
在这里查看 Python API:
这里是关于 Docker 连接的单独页面(docker_conn_id
描述链接到此页面):
关于python - 如何将来自 AWS ECR 的私有(private)镜像与 Airflow 的 DockerOperator 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69338426/
我正在尝试通过 Airflow 运行 docker 容器,但得到 Permission Denied错误。我看过一些相关的帖子,有些人似乎已经通过sudo chmod 777 /var/run/doc
我有一个 DockerOperator 工作,但是当我使用“Airflow 测试”运行它时, Airflow 没有像 PythonOperator 或 BashOperator 那样显示我的 Dock
我正在使用 docker-compose 和 Airflow 图像 puckel/docker-airflow 设置一个新的 Airflow 服务器。BashOperators和 PythonOper
这个问题与理解有关 DockerOperator 和 Apache Airflow 的概念有关,所以我不确定这个站点是否正确。如果没有,请告诉我可以在哪里发布。 情况如下:我正在使用 Windows
需要在 Airflow 的 docker 运算符(operator)中访问计划时间。例如 t1 = DockerOperator( task_id="task", dag=dag, image="te
我在 Apache Airflow 中编写了一个 DockerOperator,我想给它一个卷。到目前为止,一切都很好。这是一个例子: t = DockerOperator( task
我对 Docker + Airflow 很陌生。以下是我想要完成的。 我有 4 项服务,如下面的撰写文件所示。 3 个与 Airflow 相关,一个作为测试 Ubuntu 实例。 Airflow 相关
我已经在本地成功开发了一个 super 简单的 ETL 流程(下面称为 load_staging),该流程从某个远程位置提取数据,然后将未处理的数据写入本地 Windows 计算机上的 MongoDB
我使用 CLI(使用 Click 构建)创建了一个自定义包。这个包可以做两件事:运行预处理和运行机器学习模型。我为这个客户包创建了一个 Docker 镜像,并将其推送到 AWS (ECR) 上的私有(
我正在尝试在Mac上使用Airflow进行DockerOperator的工作。我正在运行基于Puckel的Airflow,并做了一些小的修改。 Dockerfile构建为与docker-inside之
我是一名优秀的程序员,十分优秀!