Модуль Runbook для автоматизации Azure Python — данные веб-перехватчиков
Я готовлю автоматизацию Azure, использую runbook Python SDK Automation, runbook будет запускаться веб-перехватчиком. Я протестировал веб-перехватчик и могу запустить модуль Runbook Python с помощью веб-перехватчика. Состояние задания Runbook автоматизации:
Completed
, я вижу выходные данные.
входные данные
"WebhookName":"webhookname","RequestBody":"{\"name\": \"Mike\", \"Nazwisko\": \"Tyson\"}","RequestHeader":{"Connection":"keep-alive","Accept":"*/*","Accept-Encoding":"gzip","Host":"XXXzzzWWW.webhook.wus2.azure-automation.net","User-Agent":"python-requests/2.27.1","x-ms-request-id":"AAAbbbCCC"}}
выходные данные
['C:\\Temp\\ce51on0d.0c4\\XXvvBB', '{WebhookName:webhookname,RequestBody:{"name":', '"Mike",', '"Nazwisko":', '"Tyson"},RequestHeader:{Connection:keep-alive,Accept:*/*,Accept-Encoding:gzip,Host:AAAbbbCCC.webhook.wus2.azure-automation.net,User-Agent:python-requests/2.27.1,x-ms-request-id:AAbbCC}}']
Скрипт Python для отправки вебхука
import requests
import json
url = 'webhookURL'
payload = {'name': 'Mike','Nazwisko': 'Tyson'}
requests.post(url, data=json.dumps(payload), headers={'Content-Type': 'application/json'})
Мой вопрос заключается в том, как я могу получить в моем модуле Runbook Automation Python определенные значения из данных Webhook. как:
var1 = payload.name
var2 = payload.nazwisko
я пытался с
sys
модуль, но он не работает должным образом.
import sys
test = str(sys.argv)
print(test)
1 ответ
Спасибо за помощь здесь. Решил аналогично:
def webhookDataHandler():
Dict = {}
data = sys.argv[1]
data = data.replace("{", ',').replace("}", "").replace("\"","")
data = data.split(",")
for i in data:
i = i.replace('\\', "")
try:
temp = i.split(":")
Dict[temp[0]] = temp[1]
print(temp[0], temp[1])
except:
pass
return Dict
Оператор «try» помогает мне преодолевать ошибки из вложенных списков при вводе всего в dict.
Мне пришлось делать операцию по списку, предоставленному argv. Это просто удалило лишний синтаксис и реорганизовало вещи в формат словаря. Надеюсь, это поможет следующему человеку!