Я создал функцию Python Azure в качестве Docker для создания образа Docker на компьютере с Windows. Затем я внедряю это в Azure IoT Edge. У меня есть его развертывание на моем Raspberry Pi 3 B + (работает Raspbian или Debian). Это очень успешно. Однако, когда я запускаю свой образ докера, я получаю с --debug:
standard_init_linux.go: 211: пользовательский процесс exec вызвал «ошибку формата exec» DEBU [0001] [hijack] Конец stdout
ЗДЕСЬ ШАГИ, К КОТОРЫМ Я ДОБРАЛСЯ, ЧТОБЫ ГДЕ НАХОДИТЬСЯ: azureiotedgeraspberrypi3.wordpress.com
Не аккуратные шаги репо, но пока они мои шаги репо. Задавайте вопросы, и я отвечу, чтобы ответить на любые вопросы или предложения.
Поскольку это была небольшая функция, я вручную изменил все окончания строк на Unix с помощью Notepad ++. Воссозданная функция Azure и образ Docker, развертываемые в ACR, а затем IoT Edge.
Примечание. Функция Azure работает на компьютере Windows и работает через Azure.
Функция Azure:
import logging
import azure.functions as func
import os
def main(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
name = req.params.get('name')
os.system("echo \'dawg\' >> ~/delete_azure_function_proof.txt")
if not name:
try:
req_body = req.get_json()
except ValueError:
pass
else:
name = req_body.get('name')
if name:
return func.HttpResponse(f"Hello {name}!")
else:
return func.HttpResponse(
f"Please pass a name on the query string or in the request body",
status_code=400
)
Ожидается: развертывается на Raspberry Pi 3 (RP3) и запускается, изменяя содержимое файла, перечисленное в коде: os.system ("echo \ 'dawg \' >> ~ / delete_azure_function_proof.txt") на RP3.
Actual: Развертывание отлично до RP3. За исключением ошибки get при попытке запуска образа Docker: standard_init_linux.go: 211: пользовательский процесс exec вызвал «ошибку формата exec» DEBU [0001] [hijack] Конец stdout