Модуль 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. Это просто удалило лишний синтаксис и реорганизовало вещи в формат словаря. Надеюсь, это поможет следующему человеку!

Другие вопросы по тегам