Familiarícese con los bloques de creación para crear microservicios con .NET.
Ninguna.
macOS 10.15 o versiones posteriores.
15 minutos
Cree un servicio simple que devuelva una lista de valores y, a continuación, ejecute el servicio en un contenedor de Docker.
Para empezar a compilar aplicaciones .NET, descargue e instale el SDK de .NET.
Descarga del SDK de .NET 8 (64 bits)
Descarga de 32 bits
|
Descarga de Arm64
Debe instalar dependencias adicionales en versiones anteriores de Windows. Consulte Windows 7, 8.1 y Server 2012 para obtener más información.
Descargar el SDK x64 de .NET (Intel)
Descargar el SDK de .NET Arm64 (Apple Silicon)
Si está en un equipo Mac con un chip M1 de Apple, debe instalar la versión Arm64 del SDK.
Una vez instalado, abra un nuevo símbolo del sistema y ejecute el siguiente comando:
Una vez instalado, abra un terminal nuevo y ejecute el siguiente comando:
dotnet --version
Si la instalación se realizó correctamente, debería ver la versión 8.0.100 o posterior:
8.0.100
Si todo parece correcto, seleccione el botón Continuar de abajo para ir al siguiente paso.
Si recibe un error ”dotnet” no se reconoce como un comando interno o externo, asegúrese de que ha abierto un nuevo comando del sistema. Si reiniciar rápidamente la máquina y no puede resolver el problema, utilice el botón Me encontré con un problema para obtener ayuda para solucionar el problema.
En el símbolo del sistema, ejecute el siguiente comando para crear la aplicación:
En el terminal, ejecute el siguiente comando para crear la aplicación:
dotnet new webapi -o MyMicroservice --no-https
Después, vaya al nuevo directorio creado por el comando anterior:
cd MyMicroservice
El comando dotnet
crea una aplicación nueva de tipo webapi
(es decir, un punto de conexión de API de REST).
-o
crea un directorio denominado MyMicroservice
donde se almacena la aplicación.--no-https
crea una aplicación que se ejecutará sin un certificado HTTPS para simplificar la implementación.El comandocd MyMicroservice
le coloca en el directorio de aplicaciones recién creado.
Se crearon varios archivos en el directorio MyMicroservice
, para brindarle un servicio simple que está listo para ejecutarse, incluyendo los siguientes archivos:
Program.cs
es el archivo de punto de entrada y contiene todos los valores y configuraciones que se cargan cuando se inicia la aplicación y tiene código para una API simple que devuelve la previsión meteorológica para los próximos cinco días. También inicia la aplicación.MyMycroservice.http
se usa para probar proyectos de ASP.NET Core.MyMicroservice.csproj
define la versión de .NET de destino de la aplicación, qué bibliotecas hace referencia al proyecto, etc.MyMicroservice.sln
define el archivo de solución que organiza los proyectos en Visual Studio.launchSettings.json
dentro del directorio Properties
define diferentes configuraciones de perfil para el entorno de desarrollo local. Un número de puerto que oscila entre 5 000 y 5 300 se asigna automáticamente al crear el proyecto y se guarda en este archivo.El siguiente código muestra el contenido del archivo de 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);
}
Seleccione el botón Continuar para ir al siguiente paso.
Si recibe un mensaje similar a No se pudo crear la plantilla "ASP.NET Core Web API". Error al crear la plantilla. Detalles: Se denegó el acceso a la ruta “C:\Windows\System32\MyMicroservice”, cambie su directorio actual a uno donde tenga permisos para crear una nueva carpeta e intente ejecutar el comando de nuevo.
Si Windows no encuentra el SDK cuando intenta crear el proyecto y está seguro de haber instalado el SDK, su máquina podría tener un problema con la variable de entorno PATH. ConsulteStack Overflow post para obtener instrucciones sobre cómo diagnosticar y solucionar este problema.
Si no puede resolver el problema, use el botón He tenido un problema para obtener ayuda para solucionar el problema.
En el símbolo del sistema, ejecute el siguiente comando:
En el terminal, ejecute el siguiente comando:
dotnet run
Debería ver una salida similar a la siguiente:
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
Espere a que la aplicación muestre que está escuchando en http://localhost:<port number>, y luego abra un explorador y navegue a http://localhost:<port number>/weatherforecast.
En este ejemplo, se muestra que estaba escuchando en el puerto 5020, por lo que la siguiente imagen muestra la URL http://localhost:5020/weatherforecast
.
Enhorabuena, tiene un servicio simple en ejecución.
Presione CTRL+C en el símbolo del sistema para finalizar el comando dotnet run
que ejecuta el servicio localmente.
Presione CTRL+C en el terminal para finalizar el comando dotnet run
que ejecuta el servicio localmente.
Docker es una plataforma que permite combinar una aplicación más su configuración y dependencias en una sola unidad que se puede implementar de forma independiente, y que se denomina contenedor.
Si ya tiene Docker instalado, asegúrese de que sea la versión 23.0.0 o posterior.
Se le pedirá que se registre en la Tienda de Docker para poder descargar el instalador.
De forma predeterminada, Docker usará contenedores de Linux en Windows. Deje esta configuración tal cual cuando se le solicite en el instalador.
Después de instalar Docker, es posible que se le pida que cierre sesión para finalizar la instalación.
Una vez instalado, abra un nuevo símbolo del sistema y ejecute el siguiente comando:
Una vez instalado, abra un terminal nuevo y ejecute el siguiente comando:
docker --version
Si el comando se ejecuta y muestra información de versión, Docker se instala correctamente.
Para ejecutar con una imagen de Docker, necesita un Dockerfile
— un archivo de texto que contiene instrucciones sobre cómo compilar la aplicación como una imagen de Docker. Una imagen de Docker contiene todo lo necesario para ejecutar la aplicación como un contenedor Docker.
Dado que ha abierto un nuevo terminal en el paso anterior, tendrá que volver al directorio en el que ha creado el servicio.
Dado que ha abierto un nuevo terminal en el paso anterior, tendrá que volver al directorio en el que ha creado el servicio.
cd MyMicroservice
Cree un archivo llamado Dockerfile
con este comando:
touch Dockerfile
fsutil file createnew Dockerfile 0
A continuación, puede abrirlo en su editor de texto favorito.
A continuación, puede abrirlo en su editor de texto favorito manualmente o con este comando:
open Dockerfile
start Dockerfile
Reemplace el contenido de Dockerfile
con lo siguiente en el editor de texto:
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"]
Nota: Asegúrese de asignar al archivo el nombre Dockerfile
y no Dockerfile.txt
ni ningún otro nombre.
Un archivo .dockerignore reduce el conjunto de archivos que se utilizan como parte de `docker build`. Menos archivos darán como resultado compilaciones más rápidas.
Cree un archivo llamado .dockerignore
(es similar a un archivo .gitignore
si está familiarizado con ellos) con este comando:
touch .dockerignore
fsutil file createnew .dockerignore 0
A continuación, puede abrirlo en su editor de texto favorito.
A continuación, puede abrirlo en su editor de texto favorito manualmente o con este comando:
open .dockerignore
start .dockerignore
Reemplace el contenido de .dockerignore
a lo siguiente en el editor de texto:
Dockerfile
[b|B]in
[O|o]bj
Ejecute el comando siguiente:
docker build -t mymicroservice .
El comando docker build
usa el Dockerfile
para compilar una imagen de Docker.
-t mymicroservice
le indica que etiquete (o asigne un nombre) a la imagen como mymicroservice
.Dockerfile
(.
especifica el directorio actual).Puede ejecutar el siguiente comando para ver una lista de todas las imágenes disponibles en el equipo, incluida la que acaba de crear.
docker images
Puede ejecutar la aplicación en un contenedor con el siguiente comando:
docker run -it --rm -p 3000:80 --name mymicroservicecontainer mymicroservice
Puede ir a la siguiente dirección URL para acceder a la aplicación que se ejecuta en un contenedor: http://localhost:3000/weatherforecast
De forma opcional, puede ver el contenedor que se ejecuta en un símbolo del sistema separado utilizando el siguiente comando:
Opcionalmente, puede ver su contenedor ejecutándose en una ventana de terminal separada usando el siguiente comando:
docker ps
Presione CTRL+C en el símbolo del sistema para finalizar el comando docker run
que ejecuta el servicio. en un contenedor.
Presione CTRL+C en el terminal para finalizar el comando docker run
que ejecuta el servicio en un contenedor.
Enhorabuena, ha creado correctamente un pequeño servicio independiente que se puede implementar y escalar mediante contenedores de Docker.
Estos son los componentes básicos de los microservicios.
Enhorabuena. Ha creado un servicio simple y lo ha ejecutado en un contenedor Docker.
Ahora, puede aprender a implementar el microservicio en la nube con nuestro siguiente tutorial.
Tutorial: Implementación de microservicios en Azure
Es posible que también le interese...