使用容器将 ASP.NET WEB API 托管到 Azure Service Fabric





5.00/5 (2投票s)
如何使用容器将 ASP.NET Web API 托管到 Azure Service Fabric
引言
在本文中,我们将通过以下三个步骤将 ASP.NET WEB API 托管到 Azure Service Fabric
- 创建 ASP.NET Web API
- 为 ASP.NET WEB API 在本地创建一个 Docker 镜像并将其推送到 Docker Hub
- 使用镜像创建容器并将其发布到 Azure Service Fabric 集群
必备组件
运行开发计算机
- Visual Studio 2017
- Service Fabric SDK 和工具.
- 适用于 Windows 的 Docker。 获取适用于 Windows 的 Docker CE (稳定版)。 安装并启动 Docker 后,右键单击托盘图标并选择“切换到 Windows 容器”。 这是运行基于 Windows 的 Docker 镜像所必需的。
1. 创建 ASP.NET Web API
- Visual Studio -> 文件 -> 新建项目 -> ASP.NET Web 应用程序
- 选择 Web API
- 浏览应用程序,您将能够在浏览器上看到正在运行的示例 WEB API。
2. 为 ASP.NET WEB API 在本地创建一个 Docker 镜像并将其推送到 Docker Hub
- 当您需要创建一个 Docker 镜像(基于 Windows)时,有趣的部分就来了。 因此,让我们首先在解决方案中创建一个 docker 文件。 在项目中添加一个名为“DockerFile”的新文件,并添加以下几行
FROM microsoft/aspnet:4.7.1-windowsservercore-1709 ARG source WORKDIR /inetpub/wwwroot COPY ${source:-obj/Docker/publish} .
- 上面的 Docker 文件指示将当前项目发布文件夹中的所有文件复制到容器内部的工作目录中。
- 因此,现在您有了 docker 文件; 您可以通过 PowerShell 中的 docker build 来构建一个镜像(将目录更改为创建 docker 文件的位置)。
- 给它一个名称,例如“apiimage/aspwebapi”,以及一个可选的标签,例如“
latest
”。docker build -t apiimage/aspwebapi:latest
- 完成后,您可以从 PowerShell 执行
docker images
命令来检查镜像是否已创建。docker images
- 使用以下命令在本地运行镜像
docker run -d –name aspwebimage apiimage/aspwebapi:latest
- 运行以下命令以检查您正在运行的本地镜像
docker ps
- 运行以下命令以获取本地 docker 镜像的 IP
docker inspect –format=’{{range .NetworkSettings.Networks}}{{.IPAddress}}{{end}}’ [Container ID]
- 浏览 IP 地址以检查 docker 中托管的 docker 镜像是否正在运行
- 现在,您在本地计算机上有了镜像。 因此,您需要将其发布到 Azure Service Fabric 可以下载或其他人可以下载并使用您的应用程序的地方。 您可以将其发布到公共 docker hub 存储库或发布到 Azure 容器存储库。
- 按照以下步骤发布到您的存储库。
- docker login --username docker4asf --password ************
- docker push docker4asf/apiimage
- 上传后,您现在在 Docker Hub 上有了镜像,如下图所示。 我们可以使用此镜像来部署我们的 Service Fabric 服务。
3. 使用镜像创建容器并将其发布到 Azure Service Fabric 集群
- 文件 -> 新建项目(云) -> Service Fabric 应用程序
- 选择容器,并提供镜像名称
- 在 ServiceManifest.xml 文件中添加端口号,如下所示
- 在 ApplicationManifest.xml 文件中添加策略,如下所示
<Policies> <ContainerHostPolicies CodePackageRef="Code" Isolation="process"> <!-- See https://aka.ms/I7z0p9 for how to encrypt your repository password --> <RepositoryCredentials AccountName="docker4asf" Password="**********" PasswordEncrypted="false" /> <PortBinding ContainerPort="80" EndpointRef="apiimageContainerTypeEndpoint" /> </ContainerHostPolicies> </Policies>
- ApplicationManifest 文件中的
EndpointRef
必须与 servicemanifest.xml 文件中的Endpoint
名称相同。 - 发布应用程序。
- 成功发布应用程序后,它将托管在 Azure Service Fabric 集群中。 转到 Azure Service Fabric 集群。
- 容器应用程序托管在本地集群中,并创建了 Endpoint,如下所示
- 浏览端点,您可以浏览托管在 Azure Service Fabric 中的 ASP.NET WEB API。
结论
在本文中,我们学习了如何使用容器将 ASP.NET WEB API 托管到 Azure Service Fabric。
感谢您的阅读。希望您喜欢我的文章。