编写第一个 .NET 微服务
介紹
本文的目的是:通過創建一個返回列表的簡單服務,并在 Docker 容器中運行該服務,讓您熟悉使用 .NET 創建微服務的構建過程。
安裝 .NET SDK
要開始構建 .NET 應用程序,首先下載并安裝 .NET Core SDK(軟件開發工具包)。
根據操作系統的類型下載并安裝對應版本的 .NET Core SDK v3.1:?
.NET SDK (64-位):https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.401-windows-x64-installer
.NET SDK (32-位):https://dotnet.microsoft.com/download/dotnet-core/thank-you/sdk-3.1.401-windows-x86-installer
檢查安裝是否正確
.NET SDK 安裝完成后,打開一個命令提示符窗口并運行以下命令:
dotnet如果命令運行時,打印出的信息是介紹如何使用?dotnet,說明安裝正確。
創建您的服務
創建一個應用
在命令提示符窗口運行以下命令:
dotnet new webapi -o myMicroservice --no-https cd myMicroservice第一行中?dotnet?命令創建了一個?webapi(一個 REST API 終端)類型的“新”應用。
參數?-o?創建一個名為?myMicroservice?的目錄,用于存儲應用程序。
標記?--no-https?創建一個不需要 HTTPS 證書就可以運行的應用程序,以便簡化部署。
使用?cd myMicroservice?命令進入新建應用程序的目錄。
生成的代碼
可以看到,在?myMicroservice?目錄中創建了幾個文件,為您提供了一個可以運行的簡單服務。
myMicroservice.csproj?定義了項目引用的庫等。
Startup.cs?包含應用程序啟動時加載的所有設置和配置。
Controllers/WeatherForecastController.cs?有一個簡單 API 的代碼,可以返回未來 5 天的天氣預報(模擬數據)。
Controllers/WeatherForecastController.cs?文件中代碼:
[ApiController] [Route("[controller]")] public class WeatherForecastController : ControllerBase {private static readonly string[] Summaries = new[]{"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"};private readonly ILogger<WeatherForecastController> _logger;public WeatherForecastController(ILogger<WeatherForecastController> logger){_logger = logger;}[HttpGet]public IEnumerable<WeatherForecast> Get(){var rng = new Random();return Enumerable.Range(1, 5).Select(index => new WeatherForecast{Date = DateTime.Now.AddDays(index),TemperatureC = rng.Next(-20, 55),Summary = Summaries[rng.Next(Summaries.Length)]}).ToArray();} }運行您的服務
確保命令提示符定位在?myMicroservice?目錄中,運行以下命令:
dotnet run命令完成后,在瀏覽器中打開『http://localhost:5000/WeatherForecast』
恭喜,您已經運行了一個簡單的服務。
安裝 Docker
Docker 是一個平臺,它可以讓你將一個應用程序及其配置和依賴項組合成一個叫作容器的單獨的、可獨立部署的單元。
下載并安裝 Docker Desktop
請參閱我之前翻譯的?Docker 快速入門(一)
或者查看這篇文章:
https://ittranslator.cn/backend/docker/2020/06/19/quickstart-1.html
檢查 Docker 是否可用
安裝完成后,打開一個新的命令提示符窗口并運行以下命令:
docker --version若命令運行后,顯示一個版本信息,那么表示 Docker 安裝成功了。
添加 Docker 元數據
要運行 Docker 鏡像,需要一個?Dockerfile?—— 一個文本文件,其中包含如何將應用構建為 Docker 鏡像的指令。Docker 鏡像包含將您的應用作為 Docker 容器運行所需的所有內容。
添加?Dockerfile?文件
在?myMicroservice?目錄中,使用文本編輯器(推薦使用 Visual Studio Code)創建一個名為?Dockerfile?的文件,包含以下內容:
FROM mcr.microsoft.com/dotnet/core/sdk:3.1 AS build WORKDIR /src COPY myMicroservice.csproj . RUN dotnet restore COPY . . RUN dotnet publish -c release -o /appFROM mcr.microsoft.com/dotnet/core/aspnet:3.1 WORKDIR /app COPY --from=build /app . ENTRYPOINT ["dotnet", "myMicroservice.dll"]注意:確保將文件命名為 Dockerfile(沒有擴展名),而不是 Dockerfile.txt 或其他名稱。
添加?.dockerignore?文件(可選的)
.dockerignore?文件可以減少?docker build?過程中使用的文件集,文件越少則構建越快。
在文本編輯器中創建一個名為?.dockerignore?的文件(這個文件類似于?.gitignore?文件,如果你熟悉的話),包含以下內容:
Dockerfile [b|B]in [O|o]bj創建 Docker 鏡像
運行以下命令:
docker build -t mymicroservice .docker build?命令使用?Dockerfile?構建 Docker 鏡像。
參數?-t mymicroservice?告訴命令標記(或命名)鏡像為?mymicroservice。
最后一個參數告訴命令使用哪個目錄來查找?Dockerfile?(.?指定當前目錄)。
譯者注:
如果是第一次在本機上創建基于?mcr.microsoft.com/dotnet/core/sdk:3.1?和?mcr.microsoft.com/dotnet/core/aspnet:3.1?的鏡像,構建?mymicroservice?鏡像將會是一個漫長的過程,因為從官方 Docker 注冊表拉取鏡像實在是太慢了!耐心等待,終會成功的,我已經實踐過了。
等待鏡像構建完成,可以運行下面的命令來查看計算機上可用的所有鏡像的列表,包括您剛剛創建的?mymicroservice?鏡像。
docker images運行 Docker 鏡像
您可以使用下面的命令在容器中運行您的應用:
docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice可選地,您可以在單獨的新的命令提示符窗口中輸入下面的命令查看正在運行的容器:
docker ps在運行?docker run?命令后,您可以在瀏覽器中輸入 URL『http://localhost:3000/WeatherForecast』來訪問正在容器中運行的應用程序。
恭喜!您已經成功地創建了一個可以使用 Docker 容器部署和縮放的小型、獨立的服務。
以上這些就是微服務的基本構建塊。
作者 :Microsoft 官網?
譯者 :技術譯民
出品 :技術譯站(https://ITTranslator.cn/)
總結
以上是生活随笔為你收集整理的编写第一个 .NET 微服务的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深入探究.Net Core Config
- 下一篇: 把Autofac玩的和java Spri