【问题标题】:AWS managed airflow to Databricks SSL errorAWS 管理的气流到 Databricks SSL 错误
【发布时间】:2023-03-13 20:54:01
【问题描述】:

我正在尝试使用气流提供的 databricks 内置运算符,例如 DatabricksSubmitRunOperator 或 DatabricksRunNowOperator 但我无法使用它,它给出以下错误:

尝试 1 次对 Databricks 的 API 请求失败,原因是:HTTPSConnectionPool(host='usdev.databaricks.xyz.com', port=443):最大重试次数超出了 url:/api/2.0/jobs/run-now(导致by SSLError(SSLCertVerificationError(1, '[SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败:证书链中的自签名证书 (_ssl.c:1091)'))

如果我要使用自定义 python 代码,那么我可以在 python 的请求模块中提供 verify = False,但由于我使用的是这个内置运算符,我看不到任何选项来禁用从气流到数据块的 ssl 验证。

正在使用的示例代码:

from airflow import DAG
from airflow.operators.dummy import DummyOperator
from airflow.providers.databricks.operators.databricks import (
    DatabricksRunNowOperator,
)
from datetime import datetime, timedelta

"""
SUCCESS SCENARIO.
- It will run the job_id=14, that is already created in databricks.
- Basically, it will trigger what that job is supposed to do (that is, run a notebook)
"""


# Define params for Run Now Operator
notebook_params = {"Variable": 5}


with DAG(
    "databricks_dag_run_now",
    start_date=datetime(2021, 1, 1),
    schedule_interval="@daily",
    catchup=False,
    default_args={
        "email_on_failure": False,
        "email_on_retry": False,
        "retry_delay": timedelta(minutes=2),
    },
) as dag:

    t0 = DummyOperator(
        task_id='start'
    )

    opr_run_now = DatabricksRunNowOperator(
        task_id="run_now",
        databricks_conn_id="custom_databricks_conn",
        job_id=12345,
        notebook_params=notebook_params,
    )


    t0 >> opr_run_now

【问题讨论】:

    标签: python amazon-web-services airflow databricks mwaa


    【解决方案1】:

    根据主机名,我可以假设您在实际 Databricks 工作区之前使用负载平衡器或类似代理的东西,并且此负载平衡器/代理使用自签名证书(Datarbicks 工作区的实际证书是用众所周知的CA 证书)。

    要解决您的问题,您需要提取用于签署负载均衡器/代理证书 (usdev.databaricks.xyz.com) 的 CA 证书,例如,使用来自 this answer 的代码或使用 Web 浏览器,然后添加它到requests 包使用的certifi 包的证书链,类似这样(shell 脚本,证书应为PEM 格式):

    CERTIFI_HOME="$(python -m certifi 2>/dev/null)"
    cat path_to_certificate_file >> $CERTIFI_HOME
    

    【讨论】:

    • 嗨,亚历克斯!感谢您的回答,但正如我所说,我们已经管理了 aws 气流,所以我不确定我们如何运行这个命令!因为在那种情况下,我们甚至不能做 ssh。
    • 啊,抱歉 - 错过了这一部分。我认为这将需要扩展 Databricks Airflow 运算符以支持调整 SSL 选项或类似的东西。我建议为 Airflow 创建一个问题
    猜你喜欢
    • 2018-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-28
    • 2021-07-09
    • 2021-06-20
    • 2020-12-07
    • 1970-01-01
    相关资源
    最近更新 更多