日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > asp.net >内容正文

asp.net

编写第一个 .NET 微服务

發(fā)布時(shí)間:2023/12/4 asp.net 81 豆豆
生活随笔 收集整理的這篇文章主要介紹了 编写第一个 .NET 微服务 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

介紹

本文的目的是:通過創(chuàng)建一個(gè)返回列表的簡(jiǎn)單服務(wù),并在 Docker 容器中運(yùn)行該服務(wù),讓您熟悉使用 .NET 創(chuàng)建微服務(wù)的構(gòu)建過程。

安裝 .NET SDK

要開始構(gòu)建 .NET 應(yīng)用程序,首先下載并安裝 .NET Core SDK(軟件開發(fā)工具包)。

根據(jù)操作系統(tǒng)的類型下載并安裝對(duì)應(yīng)版本的 .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 安裝完成后,打開一個(gè)命令提示符窗口并運(yùn)行以下命令:

dotnet

如果命令運(yùn)行時(shí),打印出的信息是介紹如何使用?dotnet,說(shuō)明安裝正確。

創(chuàng)建您的服務(wù)

創(chuàng)建一個(gè)應(yīng)用

在命令提示符窗口運(yùn)行以下命令:

dotnet new webapi -o myMicroservice --no-https cd myMicroservice

第一行中?dotnet?命令創(chuàng)建了一個(gè)?webapi(一個(gè) REST API 終端)類型的“新”應(yīng)用。

  • 參數(shù)?-o?創(chuàng)建一個(gè)名為?myMicroservice?的目錄,用于存儲(chǔ)應(yīng)用程序。

  • 標(biāo)記?--no-https?創(chuàng)建一個(gè)不需要 HTTPS 證書就可以運(yùn)行的應(yīng)用程序,以便簡(jiǎn)化部署。

使用?cd myMicroservice?命令進(jìn)入新建應(yīng)用程序的目錄。

生成的代碼

可以看到,在?myMicroservice?目錄中創(chuàng)建了幾個(gè)文件,為您提供了一個(gè)可以運(yùn)行的簡(jiǎn)單服務(wù)。

  • myMicroservice.csproj?定義了項(xiàng)目引用的庫(kù)等。

  • Startup.cs?包含應(yīng)用程序啟動(dòng)時(shí)加載的所有設(shè)置和配置。

  • Controllers/WeatherForecastController.cs?有一個(gè)簡(jiǎn)單 API 的代碼,可以返回未來(lái) 5 天的天氣預(yù)報(bào)(模擬數(shù)據(jù))。

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();} }

運(yùn)行您的服務(wù)

確保命令提示符定位在?myMicroservice?目錄中,運(yùn)行以下命令:

dotnet run

命令完成后,在瀏覽器中打開『http://localhost:5000/WeatherForecast』

恭喜,您已經(jīng)運(yùn)行了一個(gè)簡(jiǎn)單的服務(wù)。

安裝 Docker

Docker 是一個(gè)平臺(tái),它可以讓你將一個(gè)應(yīng)用程序及其配置和依賴項(xiàng)組合成一個(gè)叫作容器的單獨(dú)的、可獨(dú)立部署的單元。

下載并安裝 Docker Desktop

請(qǐng)參閱我之前翻譯的?Docker 快速入門(一)

或者查看這篇文章:
https://ittranslator.cn/backend/docker/2020/06/19/quickstart-1.html

檢查 Docker 是否可用

安裝完成后,打開一個(gè)新的命令提示符窗口并運(yùn)行以下命令:

docker --version

若命令運(yùn)行后,顯示一個(gè)版本信息,那么表示 Docker 安裝成功了。

添加 Docker 元數(shù)據(jù)

要運(yùn)行 Docker 鏡像,需要一個(gè)?Dockerfile?—— 一個(gè)文本文件,其中包含如何將應(yīng)用構(gòu)建為 Docker 鏡像的指令。Docker 鏡像包含將您的應(yīng)用作為 Docker 容器運(yùn)行所需的所有內(nèi)容。

添加?Dockerfile?文件

在?myMicroservice?目錄中,使用文本編輯器(推薦使用 Visual Studio Code)創(chuàng)建一個(gè)名為?Dockerfile?的文件,包含以下內(nèi)容:

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(沒有擴(kuò)展名),而不是 Dockerfile.txt 或其他名稱。

添加?.dockerignore?文件(可選的)

.dockerignore?文件可以減少?docker build?過程中使用的文件集,文件越少則構(gòu)建越快。

在文本編輯器中創(chuàng)建一個(gè)名為?.dockerignore?的文件(這個(gè)文件類似于?.gitignore?文件,如果你熟悉的話),包含以下內(nèi)容:

Dockerfile [b|B]in [O|o]bj

創(chuàng)建 Docker 鏡像

運(yùn)行以下命令:

docker build -t mymicroservice .

docker build?命令使用?Dockerfile?構(gòu)建 Docker 鏡像。

  • 參數(shù)?-t mymicroservice?告訴命令標(biāo)記(或命名)鏡像為?mymicroservice。

  • 最后一個(gè)參數(shù)告訴命令使用哪個(gè)目錄來(lái)查找?Dockerfile?(.?指定當(dāng)前目錄)。

譯者注:
如果是第一次在本機(jī)上創(chuàng)建基于?mcr.microsoft.com/dotnet/core/sdk:3.1?和?mcr.microsoft.com/dotnet/core/aspnet:3.1?的鏡像,構(gòu)建?mymicroservice?鏡像將會(huì)是一個(gè)漫長(zhǎng)的過程,因?yàn)閺墓俜?Docker 注冊(cè)表拉取鏡像實(shí)在是太慢了!耐心等待,終會(huì)成功的,我已經(jīng)實(shí)踐過了。

等待鏡像構(gòu)建完成,可以運(yùn)行下面的命令來(lái)查看計(jì)算機(jī)上可用的所有鏡像的列表,包括您剛剛創(chuàng)建的?mymicroservice?鏡像。

docker images

運(yùn)行 Docker 鏡像

您可以使用下面的命令在容器中運(yùn)行您的應(yīng)用:

docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice

可選地,您可以在單獨(dú)的新的命令提示符窗口中輸入下面的命令查看正在運(yùn)行的容器:

docker ps

在運(yùn)行?docker run?命令后,您可以在瀏覽器中輸入 URL『http://localhost:3000/WeatherForecast』來(lái)訪問正在容器中運(yùn)行的應(yīng)用程序。

恭喜!您已經(jīng)成功地創(chuàng)建了一個(gè)可以使用 Docker 容器部署和縮放的小型、獨(dú)立的服務(wù)。

以上這些就是微服務(wù)的基本構(gòu)建塊。

作者 :Microsoft 官網(wǎng)?
譯者 :技術(shù)譯民
出品 :技術(shù)譯站(https://ITTranslator.cn/)

總結(jié)

以上是生活随笔為你收集整理的编写第一个 .NET 微服务的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。