.NET を使用してマイクロサービスを作成するための文書パーツに精通します。
ありません。
macOS 10.15 以降のバージョン。
15 分
値のリストを返す簡単なサービスを作成してから、Docker コンテナーでサービスを実行します。
.NET アプリの構築を開始するには、.NET SDK (ソフトウェア開発キット) をダウンロードしてインストールします。
.NET 7 SDK のダウンロード (64 ビット)
32 ビットのダウンロード
|
ARM64 のダウンロード
以前のバージョンの Windows では、SDK が依存する追加のファイルをインストールする必要があります。詳しくは、Windows 7 / Vista / 8.1 / Server 2008 R2 / Server 2012 R2 をご覧ください。
.NET SDK x64 (Intel) のダウンロード
.NET SDK Arm64 (Apple Silicon) のダウンロード
Apple M1 チップを搭載した Mac をお使いの場合は、Arm64 バージョンの SDK をインストールする必要があります。
インストールが完了したら、新しい コマンド プロンプトを開き、次のコマンドを実行します:
インストールが完了したら、新しい ターミナルを開き、次のコマンドを実行します:
dotnet
インストールが成功した場合、次のような出力が表示されます:
Usage: dotnet [options]
Usage: dotnet [path-to-application]
Options:
-h|--help Display help.
--info Display .NET information.
--list-sdks Display the installed SDKs.
--list-runtimes Display the installed runtimes.
path-to-application:
The path to an application .dll file to execute.
問題がなければ、下の [続行] を選択して次の手順に進みます。
“'dotnet' は内部コマンドまたは外部コマンドとして認識されていません” というエラーを受信した場合は、新しいコマンド プロンプトを開いていることを確認してください。問題が解決しない場合は、[問題発生] ボタンを押して、問題解決のためのサポートを受けてください。
zsh: コマンドが見つかりません: dotnet エラーが発生した場合、新しいターミナル ウィンドウが開かれていることを確認してください。問題を解決できない場合は、[問題が発生しました] ボタンを使用して、問題解決のためのサポートを受けてください。
dotnet: コマンドが見つかりません エラーが発生した場合は、新しいターミナル ウィンドウが開かれていることを確認してください。問題を解決できない場合は、[問題が発生しました] ボタンを使用して、問題の修正方法を確認してください。
コマンド プロンプトで、次のコマンドを実行してアプリを作成します:
ターミナルで、次のコマンドを実行してアプリを作成します:
dotnet new webapi -o MyMicroservice --no-https -f net7.0
次に、前のコマンドで作成された新しいディレクトリに移動します:
cd MyMicroservice
dotnet
コマンドは、タイプ webapi
(REST API エンドポイント) の 新しいアプリケーションを作成します。
-o
パラメーターでは、アプリが保存される MyMicroservice
という名前のディレクトリを作成します。--no-https
フラグは、HTTPS 証明書なしで実行されるアプリを作成し、デプロイを簡単にします。-f
パラメーターは、.NET 7 アプリケーションを作成していることを示します。cd MyMicroservice
コマンドを実行すると、新しく作成されたアプリ ディレクトリに入れます。
MyMicroservice
ディレクトリにいくつかのファイルが作成され、実行の準備が整ったシンプルなサービスが用意されました。
MyMicroservice.csproj
は、プロジェクトが参照するライブラリなどを定義します。Program.cs
には、アプリの起動時に読み込まれるすべての設定や構成が含まれます。Controllers/WeatherForecastController.cs
には、5 日先までの天気予報を返すシンプルな API 用コードがあります。Properties
内の launchSettings.json
は、ローカル開発環境のさまざまなプロファイル設定を定義します。5000 - 5300 の範囲のポート番号は、プロジェクトの作成時に自動的に割り当てられ、このファイルに保存されます。次のコードは、Controllers
ディレクトリにあるWeatherForecastController.cs
ファイルの内容を示しています:
using Microsoft.AspNetCore.Mvc;
namespace MyMicroservice.Controllers;
[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(Name = "GetWeatherForecast")]
public IEnumerable<WeatherForecast> Get()
{
return Enumerable.Range(1, 5).Select(index => new WeatherForecast
{
Date = DateTime.Now.AddDays(index),
TemperatureC = Random.Shared.Next(-20, 55),
Summary = Summaries[Random.Shared.Next(Summaries.Length)]
})
.ToArray();
}
}
下の [続行] を選択して、次の手順に進みます。
Template "ASP.NET Core Web API" のようなメッセージを受信した場合は、作成できませんでした。テンプレートを作成できませんでした。詳細: パス 'C:\Windows\System32\MyMicroservice' へのアクセスが拒否されました、現在のディレクトリを新しいフォルダーを作成するためのアクセス許可を持つディレクトリに変更してから、コマンドを再実行してください。
SDK がインストールされていることが確実でありながら、プロジェクトの作成中に SDK が見つからない場合は、マシンの PATH 環境変数に問題がある可能性があります。この問題を診断して解決する方法については、 Stack Overflow 投稿 の手順をご覧ください。
発生している問題を解決できない場合は、[I ran into an issue] ボタンを選択して、問題の修正方法を確認してください。
コマンドプロンプトで、次のコマンドを実行します:
ターミナルで、次のコマンドを実行します:
dotnet run
次のような出力が表示されます:
Building...
info: Microsoft.Hosting.Lifetime[14]
Now listening on: http://localhost:5020
info: Microsoft.Hosting.Lifetime[0]
Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
Hosting environment: Development
info: Microsoft.Hosting.Lifetime[0]
Content root path: C:\Users\Ana\MyMicroservice\
アプリが http://localhost:<port number> でリッスンしていることを表示するまで待ってから、ブラウザーを開き、http://localhost:<port number>/WeatherForecast に移動します。
この例では、ポート 5020 でリッスンしていることを示しているため、次のイメージは URL http://localhost:5020/WeatherForecast
を示しています。
おめでとうございます。簡単なサービスを実行しています。
コマンド プロンプトで CTRL+C を押して、ローカルでサービスを実行している dotnet run
コマンドを終了します。
ターミナルで CTRL+C を押して、ローカルでサービスを実行している dotnet run
コマンドを終了します。
Docker は、アプリとその構成や依存関係を、コンテナーと呼ばれる独立して展開可能な単一の単位にまとめることができるプラットフォームです。
Docker が既にインストールされている場合は、バージョン 20.10 以降であることを確認してください。
インストーラーをダウンロードするには、Docker ストアを登録するように求められます。
既定で、Docker は Windows 上の Linux コンテナーを使用します。インストーラーでメッセージが表示されたら、この構成設定をそのままにしておきます。
Docker のインストール後、インストールを完了するためにサインアウトを求められる場合があります。
インストールが完了したら、新しい コマンド プロンプトを開き、次のコマンドを実行します:
インストールが完了したら、新しい ターミナルを開き、次のコマンドを実行します:
docker --version
コマンドが実行され、一部のバージョン情報が表示されると、Docker が正常にインストールされます。
Docker イメージで実行するには、Dockerfile
(Docker イメージとしてアプリをビルドする手順を含むテキスト ファイル) が必要です。Docker イメージには、Docker コンテナーとしてアプリを実行するために必要なすものすべてが含まれています。
前の手順で新しいコマンドプロンプトを開いたため、サービスを作成したディレクトリに戻る必要があります。
前の手順で新しいターミナルを開いたため、サービスを作成したディレクトリに戻る必要があります。
cd MyMicroservice
次のコマンドを使用して、Dockerfile
というファイルを作成します。
touch Dockerfile
fsutil file createnew Dockerfile 0
その後、お好みのテキスト エディターで開くことができます。
次に、手動で、または次のコマンドを使用して、任意のテキストエディターで開くことができます。
open Dockerfile
start Dockerfile
テキスト エディターで Dockerfile
のコンテンツを次のように置き換えます:
FROM mcr.microsoft.com/dotnet/sdk:7.0 AS build
WORKDIR /src
COPY MyMicroservice.csproj .
RUN dotnet restore
COPY . .
RUN dotnet publish -c release -o /app
FROM mcr.microsoft.com/dotnet/aspnet:7.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "MyMicroservice.dll"]
注意: ファイル名は Dockerfile
であり、Dockerfile.txt
などの他の名前ではないことを確認してください。
.dockerignore ファイルを使用すると、' docker build ' の一部として使用されるファイル一式を減らすことができます。ファイル数を減らすと、ビルドが高速になります。
このコマンドを使用して、.dockerignore
ファイル (これは、使い慣れた .gitignore
ファイルに類似しています) というファイルを作成します。
touch .dockerignore
fsutil file createnew .dockerignore 0
その後、お好みのテキスト エディターで開くことができます。
次に、手動で、または次のコマンドを使用して、任意のテキストエディターで開くことができます。
open .dockerignore
start .dockerignore
テキスト エディターで .dockerignore
のコンテンツを次のように置き換えます:
Dockerfile
[b|B]in
[O|o]bj
次のコマンドを実行します:
docker build -t mymicroservice .
docker build
コマンドは、Dockerfile
を使用して Docker イメージをビルドします。
-t mymicroservice
パラメーターは、Docker イメージにタグ (名前) 「mymicroservice
」を付けるように指示します。Dockerfile
を見つけるために使用するディレクトリを指示します (.
は現在のディレクトリを指定します)。次のコマンドを実行すると、作成したばかりのものを含め、マシンで利用可能なすべての画像の一覧が表示されます。
docker images
次のコマンドを使用して、コンテナーでアプリを実行できます:
docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice
次の URL を参照して、コンテナー内で実行されているアプリケーションにアクセスできます: http://localhost:3000/WeatherForecast
必要に応じて、次のコマンドを使用して、別のコマンド プロンプトで実行されているコンテナーを表示できます:
必要に応じて、次のコマンドを使用して、別々のターミナル ウィンドウで実行されているコンテナーを表示できます:
docker ps
コマンド プロンプトで CTRL+C を押して、コンテナー内でサービスを実行している docker run
コマンドを終了します。
ターミナルで CTRL+C を押して、コンテナー内でサービスを実行している docker run
コマンドを終了します。
おめでとうございます。Docker コンテナーを使用してデプロイおよびスケーリングできる小規模な独立したサービスが正常に作成されました。
マイクロサービスの基本的なビルド ブロックです。
おめでとうございます。簡単なサービスを作成し、Docker コンテナーで実行しました。
これで、次のチュートリアルでマイクロサービスをクラウドにデプロイする方法を学ぶことができます。
チュートリアル: Azure にマイクロサービスをデプロイする
あなたは下記にもご興味がおありかもしれません...