Ich möchte ein Python-Skript ausführen, die einen Datetime-Parameter benötigen und ihre Ausgabe in Slack versetzen. Aber ich weiß nicht, wie Luftstrom Vorlage Variable ds
erhalten.Wie kann ich `ds` in SlackAPIPostOperator bekommen?
Lassen Sie uns sagen, ich unten Code haben:
def make_txt():
# get ds
ds = get_ds()
ds = ds * 3 + 4/5 # do something with ds
return ds
slack_task = SlackAPIPostOperator(
text=make_txt(),
token='xoxp-xxxxxxx',
)
Weil ich mit airflow backfill dag_id -s 2016-10-01
laufen wird, die ds
(hier ist 2016.10.01) sollte Text nachzulassen passieren.
Ich versuche, Python-Skript-Ausgabe in eine Datei schreiben und dann lesen und übergeben, um direkt Text zu verlieren. Aber ich denke nicht, dass das eine perfekte Lösung ist.
Danke für Ihre Antwort. Aber ich möchte das {{ds}} für einen Python-Operator, es kann zu einer Funktion übergeben. Ich denke, diese Frage hat keine Antwort darauf. – MoreFreeze
Innerhalb des PythonOperators können Sie 'provide_context = True' angeben, ein' ** kwargs' zu der aufgerufenen Funktion hinzufügen und dann über 'kwargs ['ds']' 'darauf zugreifen. Wenn Sie versuchen, innerhalb der DAG-Definition selbst auf "ds" zuzugreifen, ist das nicht wirklich möglich. – Nik
Das ist richtig. Danke für deine Antwort. – MoreFreeze