首页 > 解决方案 > 将 Azure Functions 部署为 IoT Edge 模块

问题描述

我一直在尝试使用以下链接将 IoT Edge 模块部署到我的 IoT Edge 设备:

https://docs.microsoft.com/en-us/azure/iot-edge/tutorial-deploy-function

一切似乎都工作正常,但是,当我右键单击 deployment.template.json 文件并选择构建 IoT Edge 解决方案时,我得到以下输出:

PS C:\Users\Carlton\Documents\OnAzureFunction\EdgeSolutionAF> docker build --rm -f "c:\Users\Carlton\Documents\OnAzureFunction\EdgeSolutionAF\modules\edgeonAzureF\Dockerfile.amd64" -t carlscontainer.azurecr.io /edgeonazuref:0.0.1-amd64 "c:\Users\Carlton\Documents\OnAzureFunction\EdgeSolutionAF\modules\edgeonAzureF" ; if ($?) { docker push carlscontainer.azurecr.io/edgeonazuref:0.0.1-amd64 } 将构建上下文发送到 Docker 守护进程 12.29kB 步骤 1/3:来自 mcr.microsoft.com/azureiotedge-functions-binding:1.0。 0-linux-amd641.0.0-linux-amd64:从 azureiotedge-functions-bindingimage 操作系统“linux”中提取不能在此平台上使用PS C:\Users\Carlton\Documents\OnAzureFunction\EdgeSolutionAF>

如您所见,第 1/3 步似乎失败了。

错误

应该发生的是,Visual Studio Code 首先获取部署模板中的信息,并在新的配置文件夹中生成一个 deployment.json 文件。然后它在集成终端中运行两个命令:docker build 和 docker push。这两个命令构建您的代码,将函数容器化,并将其推送到您在初始化解决方案时指定的容器注册表。但是,您可以 docker push 不会将其发送到容器注册表。

标签: azureazure-iot-hub

解决方案


哪个容器在 docker 主机、Linux 容器或 Windows 容器上运行?您应该将容器切换到 Linux 容器(右键单击任务栏中的 docker 图标 -> 切换到 Linux 容器)。

在此处输入图像描述


推荐阅读