Tutorial .NET - Layanan Mikro Pertama Anda
Intro
Tujuan
Pahami blok penyusun untuk membuat layanan mikro dengan .NET.
Prasyarat
Tidak ada.
macOS 12.0 atau versi yang lebih baru.
Waktu untuk Menyelesaikan
15 menit
Skenario
Buat layanan sederhana yang menghasilkan daftar nilai, lalu jalankan layanan dalam kontainer Docker.
Instal SDK .NET
Untuk mulai membuat aplikasi .NET, unduh dan instal .NET SDK.
Unduh .NET 8 SDK x64 (Intel)
Unduh .NET 8 SDK Arm64 (Apple Silicon)
Jika menggunakan Mac dengan chip Apple M1 atau M2, Anda perlu menginstal SDK versi Arm64.
Periksa semuanya terinstal dengan benar
Setelah menginstal, buka prompt perintah baru dan jalankan perintah berikut:
Setelah menginstal, buka terminal baru dan jalankan perintah berikut:
dotnet --version
Jika penginstalan berhasil, Anda akan melihat versi 8.0.100 atau lebih tinggi yang dihasilkan:
8.0.100
Jika semuanya terlihat baik, pilih tombol Lanjutkan di bawah untuk melanjutkan ke langkah berikutnya.
Ada kesalahan?
Jika Anda menerima kesalahan 'dotnet' tidak dikenal sebagai perintah internal atau eksternal, pastikan Anda membuka baris perintah baru. Jika memulai ulang mesin Anda dengan cepat tidak menyelesaikan masalah, gunakan tombol Saya mengalami masalah untuk mendapatkan bantuan dalam memperbaiki masalah tersebut.
Buat layanan Anda
Di prompt perintah Anda, jalankan perintah berikut untuk membuat aplikasi Anda:
Di terminal Anda, jalankan perintah berikut untuk membuat aplikasi Anda:
dotnet new webapi -o MyMicroservice --no-https
Kemudian, navigasikan ke direktori baru yang dibuat oleh perintah sebelumnya:
cd MyMicroservice
Apa arti perintah ini?
Perintah dotnet
membuat aplikasi baru jenis webapi
(yaitu titik akhir REST API).
- Parameter
-o
membuat direktori bernamaMyMicroservice
tempat aplikasi Anda disimpan. - Bendera
--no-https
membuat aplikasi yang akan berjalan tanpa sertifikat HTTPS, untuk mempermudah penerapan.
Perintah cd MyMicroservice
akan menempatkan Anda pada direktori aplikasi yang baru dibuat.
Kode yang dihasilkan
Beberapa file dibuat di direktori MyMicroservice
, untuk memberi Anda layanan sederhana yang siap dijalankan, termasuk file berikut ini:
Program.cs
adalah file titik masuk dan berisi semua pengaturan dan konfigurasi yang dimuat saat aplikasi dimulai dan memiliki kode untuk API sederhana yang mengembalikan prakiraan cuaca untuk lima hari ke depan. Ini juga akan memulai aplikasi.MyMycroservice.http
digunakan untuk menguji proyek ASP.NET Core.MyMicroservice.csproj
menentukan versi .NET yang ditargetkan aplikasi, pustaka apa yang menjadi referensi proyek, dll.- File
launchSettings.json
di dalam direktoriProperties
menentukan pengaturan profil yang berbeda untuk lingkungan pengembangan lokal. Nomor port berkisar antara 5000-5300 secara otomatis ditetapkan pada pembuatan proyek dan disimpan pada file ini.
Kode berikut ini memperlihatkan konten file Program.cs
:
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
// Learn more about configuring Swagger/OpenAPI at https://aka.ms/aspnetcore/swashbuckle
builder.Services.AddEndpointsApiExplorer();
builder.Services.AddSwaggerGen();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (app.Environment.IsDevelopment())
{
app.UseSwagger();
app.UseSwaggerUI();
}
var summaries = new[]
{
"Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
};
app.MapGet("/weatherforecast", () =>
{
var forecast = Enumerable.Range(1, 5).Select(index =>
new WeatherForecast
(
DateOnly.FromDateTime(DateTime.Now.AddDays(index)),
Random.Shared.Next(-20, 55),
summaries[Random.Shared.Next(summaries.Length)]
))
.ToArray();
return forecast;
})
.WithName("GetWeatherForecast")
.WithOpenApi();
app.Run();
record WeatherForecast(DateOnly Date, int TemperatureC, string? Summary)
{
public int TemperatureF => 32 + (int)(TemperatureC / 0.5556);
}
Pilih tombol Lanjutkan di bawah ini untuk menuju ke langkah berikutnya.
Ada kesalahan?
Jika Anda menerima pesan yang serupa dengan Templat "ASP.NET Core Web API" tidak dapat dibuat. Gagal membuat templat. Detail: Buka 'C:\Windows\System32\MyMicroservice' ditolak, ubah direktori Anda saat ini ke direktori tempat Anda memiliki izin untuk membuat folder baru dan coba jalankan perintah lagi.
Jika Windows tidak dapat menemukan SDK saat Anda mencoba membuat proyek dan Anda yakin telah menginstal SDK, mesin Anda mungkin memiliki masalah dengan variabel lingkungan PATH. Lihat postingan Stack Overflow ini untuk petunjuk tentang cara mendiagnosis dan memperbaiki masalah ini.
Jika Anda tidak dapat menyelesaikan masalah yang Anda alami, pilih tombol Saya mengalami masalah di bawah untuk mendapatkan bantuan dalam memperbaiki masalah tersebut.
Jalankan layanan Anda
Di prompt perintah Anda, jalankan perintah berikut:
Di terminal Anda, jalankan perintah berikut:
dotnet run
Anda akan melihat output yang mirip dengan berikut:
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
Tunggu hingga aplikasi menampilkan bahwa aplikasi mendengarkan http://localhost:<port number>, lalu buka browser dan buka http://localhost:<port number>/weatherforecast.
Dalam contoh ini, terlihat bahwa ia mendengarkan pada port 5020, sehingga gambar berikut menunjukkan URL localhost:5020/weatherforecast
.
Selamat, Anda memiliki layanan sederhana yang berjalan!
Tekan CTRL+C pada perintah untuk mengakhiri perintah dotnet run
yang menjalankan layanan secara lokal.
Tekan CTRL+C pada terminal untuk mengakhiri perintah dotnet run
yang menjalankan layanan secara lokal.
Ada kesalahan?
Jika Anda menerima pesan seperti Tidak ada halaman web yang ditemukan untuk alamat web: http://localhost:5020, pastikan Anda melihat halaman Prakiraan Cuaca di aplikasi Anda. URL seharusnya terlihat seperti http://localhost:5020/weatherforecast dan bukan hanya http://localhost:5020.
Instal Docker
Docker adalah platform yang memungkinkan Anda menggabungkan aplikasi beserta konfigurasi dan dependensinya menjadi satu unit yang dapat disebarkan secara independen yang disebut kontainer.
Jika sudah menginstal Docker, pastikan Docker versi 23.0.0 atau lebih tinggi.
Unduh dan instal
Anda akan diminta untuk mendaftar ke Docker Store sebelum Anda dapat mengunduh penginstal.
Secara default, Docker akan menggunakan Kontainer Linux di Windows. Biarkan pengaturan konfigurasi ini sebagaimana adanya saat diminta di penginstal.
Setelah menginstal Docker, Anda mungkin diminta untuk keluar untuk menyelesaikan penginstalan.
Periksa apakah Docker siap digunakan
Setelah menginstal, buka prompt perintah baru dan jalankan perintah berikut:
Setelah menginstal, buka terminal baru dan jalankan perintah berikut:
docker --version
Jika perintah berjalan, menampilkan beberapa informasi versi, maka Docker berhasil diinstal.
Tambahkan metadata Docker
Untuk menjalankan citra Docker, Anda memerlukan Dockerfile
— file teks yang berisi instruksi tentang cara membuat aplikasi Anda sebagai citra Docker. Citra Docker berisi semua yang diperlukan untuk menjalankan aplikasi Anda sebagai kontainer Docker.
Kembali ke direktori aplikasi
Karena anda membuka prompt perintah baru di langkah sebelumnya, Anda harus kembali ke direktori tempat Anda membuat layanan.
Karena Anda membuka terminal baru di langkah sebelumnya, Anda harus kembali ke direktori tempat Anda membuat layanan.
cd MyMicroservice
Tambahkan DockerFile
Buat file yang disebut Dockerfile
dengan perintah ini:
touch Dockerfile
fsutil file createnew Dockerfile 0
Anda kemudian dapat membukanya di editor teks favorit Anda.
Anda kemudian dapat membukanya di editor teks favorit Anda secara manual atau dengan perintah ini:
open Dockerfile
start Dockerfile
Ganti konten Dockerfile
ke hal berikut di editor teks:
FROM mcr.microsoft.com/dotnet/sdk:8.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:8.0
WORKDIR /app
COPY --from=build /app .
ENTRYPOINT ["dotnet", "MyMicroservice.dll"]
Catatan: Pastikan untuk menamai file sebagai Dockerfile
dan bukan Dockerfile.txt
atau nama lainnya.
Opsional: Menambahkan file .dockerignore
File .dockerignore mengurangi kumpulan file yang digunakan sebagai bagian dari 'build docker'. Lebih sedikit file akan menghasilkan build yang lebih cepat.
Buat file bernama file .dockerignore
(mirip dengan file .gitignore
jika Anda terbiasa dengan file tersebut) dengan perintah ini:
touch .dockerignore
fsutil file createnew .dockerignore 0
Anda kemudian dapat membukanya di editor teks favorit Anda.
Anda kemudian dapat membukanya di editor teks favorit Anda secara manual atau dengan perintah ini:
open .dockerignore
start .dockerignore
Ganti konten .dockerignore
ke hal berikut di editor teks:
Dockerfile
[b|B]in
[O|o]bj
Buat gambar Docker
Jalankan perintah berikut:
docker build -t mymicroservice .
Perintah docker build
menggunakan Dockerfile
untuk membuat gambar Docker.
- Parameter
-t mymicroservice
memberi tahunya untuk memberi tag (atau nama) gambar sebagaimymicroservice
. - Parameter akhir memberi tahu direktori mana yang akan digunakan untuk menemukan
Dockerfile
(.
menentukan direktori saat ini). - Perintah ini akan mengunduh dan membuat semua dependensi untuk membuat gambar Docker dan mungkin memerlukan waktu beberapa saat.
Anda dapat menjalankan perintah berikut untuk melihat daftar semua gambar yang tersedia di komputer Anda, termasuk yang baru saja Anda buat.
docker images
Jalankan gambar Docker
Anda dapat menjalankan aplikasi di kontainer menggunakan perintah berikut:
docker run -it --rm -p 3000:8080 --name mymicroservicecontainer mymicroservice
Anda dapat menelusuri URL berikut untuk mengakses aplikasi yang berjalan dalam kontainer: http://localhost:3000/weatherforecast
Secara opsional, Anda dapat melihat kontainer berjalan di perintah terpisah menggunakan perintah berikut:
Secara opsional, Anda dapat melihat kontainer yang berjalan di jendela terminal terpisah menggunakan perintah berikut:
docker ps
Tekan CTRL+C pada perintah Anda untuk mengakhiri perintah docker run
yang menjalankan layanan dalam kontainer.
Tekan CTRL+C di terminal Anda untuk mengakhiri perintah docker run
yang menjalankan layanan dalam kontainer.
Selamat! Anda telah berhasil membuat layanan kecil dan independen yang dapat disebarkan dan diskalakan menggunakan kontainer Docker.
Ini adalah blok pembangun dasar microservices.
Ada kesalahan?
Jika Anda menerima pesan yang mirip dengan ERROR: kesalahan selama sambungan: kesalahan ini mungkin menunjukkan bahwa daemon docker tidak berjalan, hal ini mungkin menunjukkan bahwa Anda perlu meluncurkan aplikasi Docker. Periksa apakah klien Docker berjalan dengan menjalankan docker run hello-world
. Ini akan menarik dan menjalankan gambar. Untuk bantuan selengkapnya, lihatDokumentasi Docker untuk petunjuk tentang cara mendiagnosis dan memperbaiki masalah ini.
Langkah berikutnya
Selamat! Anda telah membuat layanan sederhana dan kemudian menjalankannya di kontainer Docker.
Sekarang, Anda dapat mempelajari cara menyebarkan layanan mikro Anda ke cloud dengan tutorial kami berikutnya.
Tutorial: Menyebarkan layanan mikro ke Azure
Anda mungkin juga tertarik dengan...