在flow DAG中调用Google云函数

2024-09-24 02:14:47 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个google云功能正在工作,我试图从气流DAG调用它。在

到目前为止,我尝试使用SimpleHttpOperator:

MY_TASK_NAME = SimpleHttpOperator(
        task_id= "MY_TASK_NAME",
        method='POST',
        http_conn_id='http_default',
        endpoint='https://us-central1-myprojectname.cloudfunctions.net/MyFunctionName',
        data=({"schema": schema, "table": table}),
        headers={"Content-Type": "application/json"},
        xcom_push=False
    )

但通过对日志的挖掘,它说它找不到资源:

{base_task_runner.py:98} INFO - Subtask:

The requested URL /https://us-central1-myprojectname.cloudfunctions.net/MyFunctionName was not found on this server. That’s all we know.

我还注意到,它实际上发布到https://www.google.com/+我给出的url:

^{pr2}$

调用函数的正确方法是什么? 谢谢


Tags: namehttpsidhttptasknetmygoogle
1条回答
网友
1楼 · 发布于 2024-09-24 02:14:47

这是因为您正在使用http_conn_id='http_default'。在

http_default连接如下所示:

enter image description here

如果选中Hosts字段,它将显示http://www.google.com。在

使用HTTP连接类型创建新连接,或者修改http_default连接并将主机更改为https://us-central1-myprojectname.cloudfunctions.net

然后将任务中的endpoint字段更新为:

MY_TASK_NAME = SimpleHttpOperator(
        task_id= "MY_TASK_NAME",
        method='POST',
        http_conn_id='http_default',
        endpoint='MyFunctionName',
        data=({"schema": schema, "table": table}),
        headers={"Content-Type": "application/json"},
        xcom_push=False
    )

相关问题 更多 >