钉钉操作器¶
前提任务¶
- 要使用此操作器,您必须执行以下操作
将自定义机器人添加到您要发送消息的聊天群组。
将访问令牌放在
dingding_default
连接的密码字段中。注意:您只需要令牌值,而不需要整个 webhook 字符串。
基本用法¶
使用 DingdingOperator
通过 钉钉自定义机器人 发送消息
text_msg_remind_none = DingdingOperator(
task_id="text_msg_remind_none",
message_type="text",
message="Airflow dingding text message remind none",
at_mobiles=None,
at_all=False,
)
在消息中提醒用户¶
使用参数 at_mobiles
和 at_all
在发送消息时提醒特定用户,当 at_all
设置为 True
时,at_mobiles
将被忽略
text_msg_remind_all = DingdingOperator(
task_id="text_msg_remind_all",
message_type="text",
message="Airflow dingding text message remind all users in group",
# list of user phone/email here in the group
# when at_all is specific will cover at_mobiles
at_mobiles=["156XXXXXXXX", "130XXXXXXXX"],
at_all=True,
)
发送富文本消息¶
DingdingOperator
可以通过 钉钉自定义机器人 发送富文本消息,包括链接、Markdown、actionCard 和 feedCard。除使用 Markdown 类型消息外,富文本消息无法提醒特定用户
markdown_msg = DingdingOperator(
task_id="markdown_msg",
message_type="markdown",
message={
"title": "Airflow dingding markdown message",
"text": "# Markdown message title\n"
"content content .. \n"
"### sub-title\n"
"![logo](https://airflow.org.cn/_images/pin_large.png)",
},
at_mobiles=["156XXXXXXXX"],
at_all=False,
)
从任务回调发送消息¶
DingdingHook
可以通过编写回调函数并将该函数传递给 sla_miss_callback
、on_success_callback
、on_failure_callback
或 on_retry_callback
来处理任务回调。这里我们以 on_failure_callback
为例
def failure_callback(context):
"""
The function that will be executed on failure.
:param context: The context of the executed task.
"""
message = f"The task {context['ti'].task_id} failed"
DingdingHook(message_type="text", message=message, at_all=True).send()
如果需要,更改连接主机¶
DingdingOperator
操作器使用默认主机 https://oapi.dingtalk.com
发送 HTTP 请求,如果您需要更改使用的主机,可以设置连接的主机字段。