Я создал в Python функцию Azure, запускаемую сеткой событий. Я успешно развернул свое решение для лазури, и выполнение работает нормально. Но у меня есть проблема с вызовом другого скрипта Python в той же папке. Мой код указан ниже: -
import os, json, subprocess
import logging
import azure.functions as func
def main(event: func.EventGridEvent):
try:
correctionsMessages = event.get_json()
for correctionMessage in correctionsMessages:
strMessage = json.dumps(correctionMessage)
full_path_to_script = os.path.join(os.path.dirname(os.path.realpath(__file__)) + '/' + correctionMessage['ScriptName'] + '.py')
logging.info('Script Path: %s', full_path_to_script)
logging.info('Parameter: %s', json.dumps(detectionMessage))
subprocess.check_call('python '+ full_path_to_script + ' ' + json.dumps(strMessage))
result = json.dumps({
'id': event.id,
'data': event.get_json(),
'topic': event.topic,
'subject': event.subject,
'event_type': event.event_type,
})
logging.info('Python EventGrid trigger processed an event: %s', result)
except Exception as e:
logging.info('Error: %s', e)
Приведенный выше код выдает ошибку для subprocess.check_call . Ошибка: «Ошибка: [Errno 2] Нет такого файла или каталога:« python /home/site/wwwroot/Detections/Script1.py ». Script1.py находится в той же папке с init .py. Когда я запускаю эту функцию локально, она работает абсолютно нормально.