ОК, после долгих копаний я нашел решение. Что бы вы ни делали, не ищите в Интернете «создайте модуль iot из docker контейнера» или что-нибудь ПОЛНОСТЬЮ ЗНАЧИТЕЛЬНОЕ, как это. Вместо этого мне пришлось искать что-то очень специфичное c для принятия EULA Azure Cognitive Service при запуске docker (т.е. мне пришлось искать "iot edge module docker \" eula \ ""). Обратите внимание на кавычки вокруг eula, чтобы убедиться, что они есть в результатах поиска. Я наткнулся на эту статью .
. Используя руководство статьи, я подробно повторю то, что сделал здесь, если ссылка когда-либо устареет.
- В VS Code, создайте новое IoT Edge Solution
- В своем решении добавьте новый IoT Edge Module a. Когда вам будет предложено указать тип создаваемого модуля, выберите «Выбрать существующий модуль (введите полный URL-адрес)» *
- Если вы заглянете в ваш файл deploy.template. json, вы увидите новый элемент для " registryCredentials ", который был добавлен в ваши детали edgeAgent. Укажите соответствующий адрес, имя пользователя и пароль.
- Если вы еще этого не сделали, создайте ресурс Cognitive Services в Интернете, чтобы получить URL-адрес конечной точки и ApiKey. Запомните эти значения.
В файле deploy.template. json в настройках конфигурации вашего нового модуля добавьте следующее.
"settings": {
"image": "containerpreview.azurecr.io/microsoft/cognitive-services-speech-to-text:latest",
"createOptions":
{
"Cmd": [
"Eula=accept",
"Billing={enter-your-EndpointURL}",
"ApiKey={enter-your-ApiKey}"
],
"HostConfig": {
"PortBindings": {
"5000/tcp": [
{
"HostPort": "5000"
}
]
}
}
}
Это будет эквивалентно запускать "docker run" из командной строки с такими параметрами:
docker run --rm -it -p 5000:5000 --memory 4g --cpus 1 \
containerpreview.azurecr.io/microsoft/cognitive-services-recognize-text \
Eula=accept \
Billing={BILLING_ENDPOINT_URI} \
ApiKey={BILLING_KEY}
Теперь «Создайте и примените sh ваше IoT Edge Solution», затем «Создать развертывание для одного устройства». На целевом устройстве IoT Edge теперь вы должны увидеть, что модуль установлен и работает через CLI "iotedge list".
Обновление: 2020/05/01
После отправки запроса на лучшую документацию от MSFT, они обновили свой сайт документации, чтобы включить информацию о том, как изменить файл deploy.template. json, чтобы он соответствовал аргументам командной строки docker: https://docs.microsoft.com/en-us/azure/iot-edge/how-to-use-create-options