作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 SlackAPIPostOperator
在 Airflow 中,在任务失败时发送 Slack 消息。
我想知道是否有一种聪明的方法可以将失败任务的 Airflow UI 日志页面的链接添加到 slack 消息。
以下是我想要实现的示例:
http://myserver-uw1.myaws.com:8080/admin/airflow/graph?execution_date=...&arrange=LR&root=&dag_id=MyDAG&_csrf_token=mytoken
当前消息是:
def slack_failed_task(context):
failed_alert = SlackAPIPostOperator(
task_id='slack_failed',
channel="#mychannel",
token="...",
text=':red_circle: Failure on: ' +
str(context['dag']) +
'\nRun ID: ' + str(context['run_id']) +
'\nTask: ' + str(context['task_instance']))
return failed_alert.execute(context=context)
最佳答案
您可以使用配置值 base_url
构建 UI 的 url下[webserver]
部分,然后使用 Slack 的 message format <http://example.com|stuff>
对于链接。
from airflow import configuration
def slack_failed_task(context):
link = '<{base_url}/admin/airflow/log?dag_id={dag_id}&task_id={task_id}&execution_date={execution_date}|logs>'.format(
base_url=configuration.get('webserver', 'BASE_URL'),
dag_id=context['dag'].dag_id,
task_id=context['task_instance'].task_id,
execution_date=context['ts'])) # equal to context['execution_date'].isoformat())
failed_alert = SlackAPIPostOperator(
task_id='slack_failed',
channel="#mychannel",
token="...",
text=':red_circle: Failure on: ' +
str(context['dag']) +
'\nRun ID: ' + str(context['run_id']) +
'\nTask: ' + str(context['task_instance']) +
'\nSee ' + link + ' to debug')
return failed_alert.execute(context=context)
关于slack - SlackAPIPostOperator 中的 Airflow UI 链接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48152871/
我正在使用 SlackAPIPostOperator在 Airflow 中,在任务失败时发送 Slack 消息。 我想知道是否有一种聪明的方法可以将失败任务的 Airflow UI 日志页面的链接添加
我是一名优秀的程序员,十分优秀!