目前,我正在尝试将Apache Airflow与Celery执行器一起使用。为此,我有来自IBM云的Redis服务。该服务具有TLS连接类型,这意味着它的redis协议(protocol)为 rediss:// 。不,我正在使用puckel的气流dockerfile。
我已经设置了redis参数,并且代理URL的形式为 rediss:// username:password @ hostname:port / virtual_host 。例如,当我尝试运行“花”时,出现以下错误:
指定了安全redis方案(rediss),没有ssl选项,默认为不安全的SSL行为。
到目前为止,我已经完成的步骤:
: "${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
最佳答案
是的,确实可以,但是您需要一个相当新的Kombu和redis-py版本。我们只是有一个类似于rediss://:[email protected]:6379/12?ssl_cert_reqs=CERT_OPTIONAL
的代理URL,它“可以正常工作”。