自定义和重新部署微服务
本教程介绍如何编辑远程监视解决方案中的微服务之一、生成微服务的映像、将映像部署到 Docker 中心,然后在远程监视解决方案中使用该映像。 为了介绍此概念,本教程使用了一个简单场景:在其中调用微服务 API,并将状态消息从“Alive and Well”更改为“New Edits Made Here!”
远程监视解决方案使用使用从 docker 中心拉取的 docker 映像生成的微服务。
在本教程中,你将了解:
- 在远程监视解决方案中编辑并生成微服务
- 生成 Docker 映像
- 将 Docker 映像推送到 Docker 中心
- 提取新 Docker 映像
- 可视化更改
先决条件
若要学习本教程,需要:
- 在本地部署远程监视解决方案加速器
- Docker 帐户
- Postman - 用于查看 API 响应
调用 API 并查看响应状态
在此部分,我们调用默认的 IoT 中心管理器微服务 API。 该 API 返回一条状态消息,稍后我们将通过自定义微服务对其进行更改。
确保远程监视解决方案在计算机本地运行。
找到下载的 Postman 并打开它。
在 Postman 中的 GET 内输入以下内容:
https://localhost:8080/iothubmanager/v1/status
。查看返回的结果,应会看到 "Status": "OK:Alive and Well"。
更改状态并生成映像
现在,将 Iot Hub Manager 微服务的状态消息更改为“此处所做的新编辑!”,然后使用此新状态重新生成 docker 映像。 如果在此处遇到问题,请参阅故障排除部分。
确保终端处于打开状态,切换到远程监视解决方案所克隆到的目录。
将目录切换到“azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/Services”。
在任何文本编辑器或偏好的 IDE 中打开 StatusService.cs。
找到下列代码:
var result = new StatusServiceModel(true, "Alive and well!");
将其更改为以下代码并保存。
var result = new StatusServiceModel(true, "New Edits Made Here!");
返回终端,但这次请切换到以下目录:“azure-iot-pcs-remote-monitoring-dotnet/services/iothub-manager/scripts/docker”。
若要生成新的 Docker 映像,请键入
sh build
或在 Windows 上:
./build.cmd
若要验证是否已成功创建新映像,请键入
docker images
存储库应为“azureiotpcs/iothub-manager-dotnet”。
标记并推送映像
在将新的 Docker 映像推送到 Docker 中心之前,Docker 要求对映像进行标记。 如果在此处遇到问题,请参阅故障排除部分。
键入以下代码,找到创建的 Docker 映像的映像 ID:
docker images
若要使用“testing”标记映像,请键入
docker tag [Image ID] [docker ID]/iothub-manager-dotnet:testing
若要将新标记的映像推送到 Docker 中心,请键入
docker push [docker ID]/iothub-manager-dotnet:testing
打开 Internet 浏览器,转到 Docker 中心并登录。
现在,Docker 中心应会显示新推送的 Docker 映像。
更新远程监视解决方案
现在需要更新本地 docker-compose.yml,以从 Docker 中心提取新 Docker 映像。 如果在此处遇到问题,请参阅故障排除部分。
返回终端,并切换到以下目录:“azure-iot-pcs-remote-monitoring-dotnet/services/scripts/local”。
在任何文本编辑器或偏好的 IDE 中打开 docker-compose.yml。
找到下列代码:
image: azureiotpcs/iothub-manager-dotnet:testing
将其更改为下图所示的内容,并保存。
image: [docker ID]/iothub-manager-dotnet:testing
查看新响应状态
最后,重新部署远程监视解决方案的本地实例,并在 Postman 中查看新状态响应。
返回终端,并切换到以下目录:“azure-iot-pcs-remote-monitoring-dotnet/scripts/local”。
在终端中键入以下命令,启动远程监视解决方案的本地实例:
docker-compose up
找到下载的 Postman 并打开它。
在 Postman 中的 GET 内输入以下请求:
https://localhost:8080/iothubmanager/v1/status
。 现在应会看到 "Status": "OK: New Edits Made Here!"。
故障排除
如果遇到问题,请尝试删除本地计算机上的 Docker 映像和容器。
若要删除所有容器,首先需要停止所有正在运行的容器。 打开终端并键入
docker stop $(docker ps -aq) docker rm $(docker ps -aq)
若要删除所有映像,请打开终端并键入
docker rmi $(docker images -q)
可以键入以下代码,检查计算机上是否有任何容器
docker ps -aq
如果已成功删除所有容器,则不会显示任何结果。
可以键入以下代码,检查计算机上是否有任何映像
docker images
如果已成功删除所有容器,则不会显示任何结果。
后续步骤
本教程介绍如何执行下列操作:
- 在远程监视解决方案中编辑并生成微服务
- 生成 Docker 映像
- 将 Docker 映像推送到 Docker 中心
- 提取新 Docker 映像
- 可视化更改
有关可供开发人员参考的远程监视解决方案详细信息,请参阅: