python - 将 `http_conn_id` 传递给 SlackWebhookOperator 时出现问题

标签 python airflow

我尝试创建一个SlackWebhookOperator,并使用可能的HTTP连接,但他仍然训练使用http_default

failed_alert = SlackWebhookOperator(
        task_id='slack_test',
        http_conn_id='slack_conn',
        webhook_token=slack_webhook_token,
        message=slack_msg,
        username='airflow')

failed_alert.execute(context=context)

[2019-07-21 13:14:57,415] {{init.py:1625}} ERROR - Failed at executing callback

[2019-07-21 13:14:57,415] {{init.py:1626}} ERROR - The conn_id http_default isn't defined

最佳答案

我认为这是 1.10.3 的一个已知问题:https://github.com/apache/airflow/pull/5066

我的解决方法是这样的:

def task_fail_slack_alert_hook(url, context): 
   """ This is a webhook utility which will push an error message to a given slack channel using a URL """

   slack_msg = """
           :red_circle: Task Failed.
           *Task*: {task}
           *Dag*: {dag}
           *Execution Time*: {exec_date}
           *Log Url*: {log_url}
           <!channel>
           """.format(
       task=context.get("task_instance").task_id,
       dag=context.get("task_instance").dag_id,
       ti=context.get("task_instance"),
       exec_date=context.get("execution_date"),
       log_url=context.get("task_instance").log_url,
   )
   slack_data = {"text": slack_msg}
   return requests.post(
       url,
       data=json.dumps(slack_data),
       headers={"Content-Type": "application/json"},
   )
  • 您必须将整个 Webhook URL 放入主机中,而不是将主机和密码分开。

  • 您也可以查看 slack 客户端

关于python - 将 `http_conn_id` 传递给 SlackWebhookOperator 时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57135168/

相关文章:

python - sklearn 分类器 - 最大化 auc 的 Predict_proba 阈值

python - 使用 SQLAlchemy 仅将类的某些部分映射到数据库?

python - Django Rest 框架序列化器中有没有什么方法可以忽略选择字段中的大小写?

Airflow 在成功时多次重新运行单个任务

python - 在 BigQuery API 中使用标准 SQL 时出现 BigQuery 无效表名错误

python - 将模板变量传递给 HiveOperator

python - `numpy.dot` 中的数组顺序

python - 使用pandas中的filter同时获得精确匹配和部分匹配

amazon-s3 - 如何使用 localstack s3 端点以编程方式设置 Airflow 1.10 日志记录?

airflow - 如何在 Airflow 中的电子邮件运算符(operator)上附加文件