airflow.providers.slack.operators.slack

Module Contents

Classes

SlackAPIOperator

Base Slack Operator

SlackAPIPostOperator

Posts messages to a slack channel

SlackAPIFileOperator

Send a file to a slack channel

class airflow.providers.slack.operators.slack.SlackAPIOperator(*, slack_conn_id=None, token=None, method=None, api_params=None, **kwargs)[source]

Bases: airflow.models.BaseOperator

Base Slack Operator The SlackAPIPostOperator is derived from this operator. In the future additional Slack API Operators will be derived from this class as well. Only one of slack_conn_id and token is required.

Parameters
abstract construct_api_call_params(self)[source]

Used by the execute function. Allows templating on the source fields of the api_call_params dict before construction

Override in child classes. Each SlackAPIOperator child class is responsible for having a construct_api_call_params function which sets self.api_call_params with a dict of API call parameters (https://api.slack.com/methods)

execute(self, **kwargs)[source]

The SlackAPIOperator calls will not fail even if the call is not unsuccessful. It should not prevent a DAG from completing in success

class 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/www/static/pin_100.png', attachments=None, blocks=None, **kwargs)[source]

Bases: SlackAPIOperator

Posts messages to a slack channel Examples:

slack = SlackAPIPostOperator(
    task_id="post_hello",
    dag=dag,
    token="XXX",
    text="hello there!",
    channel="#random",
)
Parameters
  • channel (str) -- channel in which to post message on slack name (#general) or ID (C12318391). (templated)

  • username (str) -- Username that airflow will be posting to Slack as. (templated)

  • text (str) -- message to send to slack. (templated)

  • icon_url (str) -- url to icon used for this message

  • attachments (Optional[List]) -- extra formatting details. (templated) - see https://api.slack.com/docs/attachments.

  • blocks (Optional[List]) -- extra block layouts. (templated) - see https://api.slack.com/reference/block-kit/blocks.

template_fields :Sequence[str] = ['username', 'text', 'attachments', 'blocks', 'channel'][source]
ui_color = #FFBA40[source]
construct_api_call_params(self)[source]

Used by the execute function. Allows templating on the source fields of the api_call_params dict before construction

Override in child classes. Each SlackAPIOperator child class is responsible for having a construct_api_call_params function which sets self.api_call_params with a dict of API call parameters (https://api.slack.com/methods)

class airflow.providers.slack.operators.slack.SlackAPIFileOperator(channel='#general', initial_comment='No message has been set!', filename=None, filetype=None, content=None, **kwargs)[source]

Bases: SlackAPIOperator

Send a file to a slack channel Examples:

# Send file with filename and filetype
slack_operator_file = SlackAPIFileOperator(
    task_id="slack_file_upload_1",
    dag=dag,
    slack_conn_id="slack",
    channel="#general",
    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",
    channel="#general",
    initial_comment="Hello World!",
    content="file content in txt",
)
Parameters
  • channel (str) -- channel in which to sent file on slack name (templated)

  • initial_comment (str) -- message to send to slack. (templated)

  • filename (Optional[str]) -- name of the file (templated)

  • filetype (Optional[str]) -- slack filetype. (templated) - see https://api.slack.com/types/file

  • content (Optional[str]) -- file content. (templated)

template_fields :Sequence[str] = ['channel', 'initial_comment', 'filename', 'filetype', 'content'][source]
ui_color = #44BEDF[source]
execute(self, **kwargs)[source]

The SlackAPIOperator calls will not fail even if the call is not unsuccessful. It should not prevent a DAG from completing in success

Was this entry helpful?