1

目前我正在尝试将 Apache Airflow 与 Celery 执行器一起使用。为此,我有来自 IBM 云的 Redis 服务。该服务具有 TLS 连接类型,这意味着它的 redis 协议为 redis ://。不是:我正在使用 puckel 的气流 dockerfile。

我已经设置了 redis 参数,并且我的代理 url 采用 redis ://username:password@hostname:port/virtual_host的形式。例如,当我尝试运行 Flower 时,我收到以下错误:

指定的安全 redis 方案 (redis) 没有 ssl 选项,默认为不安全的 SSL 行为。

到目前为止我已经完成的步骤:

  • 我在 entrypoint.sh 中添加了以下几行:
    : "${AIRFLOW__CELERY__SSL_ACTIVE:="True"}"
    : "${AIRFLOW__CELERY__BROKER_USE_SSL:="{'ssl_cert_reqs': ssl.CERT_REQUIRED, 'ssl_ca_certs': '/6be25d73-0600-11ea-9bce-eaebe975ceba.crt'}"}"
    AIRFLOW__CELERY__BROKER_USE_SSL="${AIRFLOW__CELERY__BROKER_USE_SSL}"
    AIRFLOW__CELERY__SSL_ACTIVE="${AIRFLOW__CELERY__SSL_ACTIVE}"
    export AIRFLOW__CELERY__SSL_ACTIVE
    export AIRFLOW__CELERY__BROKER_USE_SSL
  • 我曾尝试将 redis:// 与相同的代理 url 一起使用,但花甚至没有启动。
4

1 回答 1

1

是的,但你需要一个相当新版本的 Kombu 和 redis-py。我们只是有一个看起来像的代理 URL,rediss://:BABADEDAuikxWx0oPZYfPE3IXJ9BVlSC@broker.example.com:6379/12?ssl_cert_reqs=CERT_OPTIONAL它“正常工作”。

于 2020-05-19T08:48:57.363 回答