Как получить / получить доступ к заголовкам запроса POST и «Свойства пользователя» из задачи «Фабрика данных» в приложении-функции Azure - PullRequest
0 голосов
/ 17 января 2019

Я все еще новичок в Azure, поэтому, пожалуйста, потерпите меня, если это вопрос новичка.

Я создал задачу в фабрике данных Azure, которая будет вызывать функцию Python, запускаемую по протоколу Http (план потребления). Настройки и пользовательские свойства этой задачи показаны ниже:

enter image description here

и здесь

enter image description here

Сама функция показана ниже:

enter image description here

Q1: Я хотел бы знать, как читать / получать доступ к заголовкам запроса POST в функции Python ('run.py' на скриншоте выше). Пока я мог получить доступ только к телу HTTP-запроса, используя os.environ['req'].

Q2: Я также хотел бы знать, можно ли получить доступ к «Свойствам пользователя» в «run.py», предполагая, что я запускаю задачу в фабрике данных (первый и второй снимки экрана) ). Если так, как бы я это сделал.

Существующие ресурсы (например, 1 и 2 ), которые я мог найти в Интернете, пока не говорят мне. Любой совет / совет будет принята с благодарностью. Заранее спасибо!

1 Ответ

0 голосов
/ 23 апреля 2019

Я наконец понял это и делюсь тем, что нашел ниже, чтобы это помогло всем удивиться тому же, что и я.

Это код, который я написал в 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()

Надеюсь, это полезно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...