如何从Azure Function应用程序中的Data Factory任务接收/访问POST请求的标头和``用户属性''

时间:2019-01-17 20:58:51

标签: azure azure-functions azure-data-factory azure-data-factory-2

我还是Azure的新手,如果这是一个新手问题,请多多包涵。

我在Azure数据工厂中创建了一个任务,该任务将调用Http触发的Python函数(消耗计划)。该任务的设置和用户属性如下所示:

enter image description here

在这里

enter image description here

函数本身如下所示:

enter image description here

问题1:我想知道如何在Python函数(上面的屏幕快照中的“ run.py”)中读取/访问POST请求的标头。目前,我只能使用os.environ['req']访问HTTP请求的正文。

第二季度:,我还想知道是否有可能在“ run.py”中访问“用户属性”,前提是我在数据工厂中运行了该任务(第一个和第二个)屏幕截图)。如果是这样,我该怎么做。

我可以在网上找到的现有资源(例如12)还没有告诉我。任何建议/提示将不胜感激。预先谢谢你!

1 个答案:

答案 0 :(得分:1)

我终于弄明白了,并分享了我在下面发现的内容,以便它可以帮助所有人都想知道和我一样的事情。

这是我在Python Function App中编写的用于访问正文和请求标头的代码。

import os
import json

# This is how I'm currently reading the **body of the POST request**
postreqdata = json.loads(open(os.environ['req']).read())

# This is how we should read **a header of the POST request**;
# here 'excelSourcePath' is one of the header names.
postreqdata['header1'] = os.environ['REQ_HEADERS_EXCELSOURCEPATH']

# 'User Properties' is just for monitoring purpose
# https://social.msdn.microsoft.com/Forums/en-US/8692cd00-307b-4204-a547-bed2030cb762/adfv2-user-property-setting?forum=AzureDataFactory

response = open(os.environ['res'], 'w')
response.write(json.dumps({'This is what I see from POST request now':postreqdata}))
response.close()

希望这会有所帮助。