airflow.providers.slack.operators.slack

SlackAPIOperator

基础 Slack Operator 类。

SlackAPIPostOperator

发送消息到 Slack 频道。

SlackAPIFileOperator

发送文件到 Slack 频道。

模块内容

class airflow.providers.slack.operators.slack.SlackAPIOperator(*, slack_conn_id=SlackHook.default_conn_name, method, api_params=None, base_url=None, proxy=None, timeout=None, retry_handlers=None, **kwargs)[source]

基类: airflow.models.BaseOperator

基础 Slack Operator 类。

参数:
  • slack_conn_id (str) – Slack API 连接,其密码为 Slack API token。

  • method (str) – 要调用的 Slack API 方法 (https://api.slack.com/methods)。

  • api_params (dict | None) – API 方法调用参数 (https://api.slack.com/methods)。 可选

  • timeout (int | None) – 客户端等待连接并接收 Slack 响应的最大秒数。 可选

  • base_url (str | None) – 表示 Slack API 基本 URL 的字符串。 可选

  • proxy (str | None) – 用于进行 Slack API 调用的代理。 可选

  • retry_handlers (list[slack_sdk.http_retry.RetryHandler] | None) – 用于自定义 slack_sdk.WebClient 中重试逻辑的处理程序列表。 可选

slack_conn_id = 'slack_api_default'[source]
method[source]
api_params = None[source]
base_url = None[source]
timeout = None[source]
proxy = None[source]
retry_handlers = None[source]
属性 hook: airflow.providers.slack.hooks.slack.SlackHook[source]

Slack Hook。

抽象方法 construct_api_call_params()[source]

构造由 execute 函数使用的 API 调用参数。

允许在构造之前对 api_call_params 字典的源字段进行模板化。

子类应重写此方法。 每个 SlackAPIOperator 子类都负责通过一个包含 API 调用参数的字典 (https://api.slack.com/methods) 来设置 self.api_call_params

执行(context)[source]

创建 operator 时派生。

Context 是与渲染 jinja 模板时使用的相同字典。

有关更多 context,请参阅 get_template_context。

airflow.providers.slack.operators.slack.SlackAPIPostOperator(channel='#general', username='Airflow', text='No message has been set.\nHere is a cat video instead\nhttps://www.youtube.com/watch?v=J---aiyznGQ', icon_url='https://raw.githubusercontent.com/apache/airflow/main/airflow-core/src/airflow/ui/public/pin_100.png', blocks=None, attachments=None, **kwargs)[source]

基类: SlackAPIOperator

发送消息到 Slack 频道。

slack = SlackAPIPostOperator(
    task_id="post_hello",
    dag=dag,
    text="hello there!",
    channel="#random",
)
参数:
  • channel (str) – 用于在 Slack 上发布消息的频道名称 (#general) 或 ID (C12318391)。 (模板化)

  • username (str) – Airflow 将用作发布到 Slack 的用户名。 (模板化)

  • text (str) – 要发送到 Slack 的消息。 (模板化)

  • icon_url (str) – 用于此消息的图标 URL

  • blocks (list | None) – 要随消息一起发送的 block 列表。 (模板化) 参阅 https://api.slack.com/reference/block-kit/blocks

  • attachments (list | None) – (旧版) 要随消息一起发送的 attachment 列表。 (模板化) 参阅 https://api.slack.com/docs/attachments

模板字段: collections.abc.Sequence[str] = ('username', 'text', 'attachments', 'blocks', 'channel')[source]
ui_color = '#FFBA40'[source]
channel = '#general'[source]
username = 'Airflow'[source]
text = Multiline-String[source]
显示值
"""No message has been set.
Here is a cat video instead
https://www.youtube.com/watch?v=J---aiyznGQ"""
icon_url = 'https://raw.githubusercontent.com/apache/airflow/main/airflow-core/src/airflow/ui/public/pin_100.png'[source]
attachments = [][source]
blocks = [][source]
construct_api_call_params()[source]

构造由 execute 函数使用的 API 调用参数。

允许在构造之前对 api_call_params 字典的源字段进行模板化。

子类应重写此方法。 每个 SlackAPIOperator 子类都负责通过一个包含 API 调用参数的字典 (https://api.slack.com/methods) 来设置 self.api_call_params

airflow.providers.slack.operators.slack.SlackAPIFileOperator(channels=None, initial_comment=None, filename=None, filetype=None, content=None, title=None, method_version='v2', snippet_type=None, **kwargs)[source]

基类: SlackAPIOperator

发送文件到 Slack 频道。

# Send file with filename and filetype
slack_operator_file = SlackAPIFileOperator(
    task_id="slack_file_upload_1",
    dag=dag,
    slack_conn_id="slack",
    channels="#general,#random",
    initial_comment="Hello World!",
    filename="/files/dags/test.txt",
    filetype="txt",
)

# Send file content
slack_operator_file_content = SlackAPIFileOperator(
    task_id="slack_file_upload_2",
    dag=dag,
    slack_conn_id="slack",
    channels="#general",
    initial_comment="Hello World!",
    content="file content in txt",
)
参数:
  • channels (str | collections.abc.Sequence[str] | None) – 文件将被共享的频道名称或 ID 的逗号分隔列表。如果将此参数设置为 None,则文件将发送到关联的工作区。 (模板化)

  • initial_comment (str | None) – 要发送到 Slack 的消息。 (模板化)

  • filename (str | None) – 文件名 (模板化)

  • filetype (str | None) – Slack 文件类型。 (模板化) 参阅: https://api.slack.com/types/file#file_types

  • content (str | None) – 文件内容。 (模板化)

  • title (str | None) – 文件标题。 (模板化)

  • snippet_type (str | None) – 上传的 snippet 的语法类型。(模板化)

  • method_version (typing_extensions.Literal[v1, v2]) – 要使用的 Slack SDK 客户端方法的版本,可以是“v1”或“v2”。

模板字段: collections.abc.Sequence[str] = ('channels', 'initial_comment', 'filename', 'filetype', 'content', 'title', 'snippet_type')[source]
ui_color = '#44BEDF'[source]
channels = None[source]
initial_comment = None[source]
filename = None[source]
filetype = None[source]
content = None[source]
title = None[source]
method_version = 'v2'[source]
snippet_type = None[source]
执行(context)[source]

创建 operator 时派生。

Context 是与渲染 jinja 模板时使用的相同字典。

有关更多 context,请参阅 get_template_context。

此条目是否有帮助?