釘釘運算子¶
先決條件任務¶
- 要使用這些運算子,您必須執行以下幾件事
將自訂機器人新增至您要傳送訊息的聊天群組。
將存取權杖放入
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"
"",
},
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 請求,如果您需要變更使用的主機,您可以設定連線的主機欄位。