Skip to content

Latest commit

 

History

History
85 lines (60 loc) · 4.44 KB

2-servicedefaults.md

File metadata and controls

85 lines (60 loc) · 4.44 KB

Padrões de Serviço (Service Defaults/Smart Defaults)

Introdução

.NET Aspire fornece um conjunto de padrões inteligentes para serviços que são comumente usados em aplicações .NET. Esses padrões são projetados para ajudá-lo a começar rapidamente e fornecer uma experiência consistente em diferentes tipos de aplicações. Isso inclui:

  • Telemetria: Métricas, Rastreamento, Log
  • Resiliência
  • Verificações de Saúde do Ambiente (Health Checks)
  • Descoberta de Serviço (Service Discovery)

Crie um Projeto de Padrões de Serviço

Visual Studio & Visual Studio Code

  1. Adicione um novo projeto à solução chamado ServiceDefaults:

    • Clique com o botão direito na solução e selecione Add > New Project.
    • Selecione o modelo de projeto .NET Aspire Service Defaults.
    • Nomeie o projeto como ServiceDefaults.
    • Clique em Next > Create.

    Visual Studio Janela do Visual Studio para adicionar um projeto de padrões de serviço

    Visual Studio Code Janela do Visual Studio Code para adicionar um projeto de padrões de serviço

Linha de Comando

  1. Crie um novo projeto usando o comando dotnet new aspire-servicedefaults:

    dotnet new aspire-servicedefaults -n ServiceDefaults

Configure o Padrões de Serviço

  1. Adicione uma referência ao projeto ServiceDefaults nos projetos Api e MyWeatherHub:

    • Clique com o botão direito no projeto Api e selecione Add > Reference.
      • Selecione o projeto ServiceDefaults e clique em OK.
    • Clique com o botão direito no projeto MyWeatherHub e selecione Add > Reference.
      • Selecione o projeto ServiceDefaults e clique em OK.

    Dica: No Visual Studio 2022, você pode arrastar e soltar o projeto em outro projeto para adicionar uma referência.

  2. Nos projetos Api e MyWeatherHub, atualize seus arquivos Program.cs, adicionando a seguinte linha imediatamente após a linha var builder = WebApplication.CreateBuilder(args);:

    builder.AddServiceDefaults();
  3. Nos projetos Api e MyWeatherHub, atualize seus arquivos Program.cs, adicionando a seguinte linha imediatamente após a linha var app = builder.Build();:

    app.MapDefaultEndpoints();

Execute a aplicação

  1. Execute a aplicação usando uma configuração de execução multiprojeto no Visual Studio ou Visual Studio Code.

    • Visual Studio: Clique com o botão direito na solução MyWeatherHub e vá para propriedades. Selecione Api e MyWeatherHub como "startup projects", selecione OK.
      • Propriedades da solução do Visual Studio
      • Clique em Start para começar e depurar ambos os projetos.
    • Visual Studio Code: Execute os projetos Api e MyWeatherHub usando o painel Run and Debug. Fornecemos um arquivo launch.json com as configurações necessárias para executar ambos.
  2. Teste a aplicação navegando para os seguintes URLs:

  3. Você deve conseguir accessar a API e a página inicial do MyWeatherHub no Swagger.

  4. Você também pode accessar as verificações de saúde (health checks) da API navegando para https://localhost:7032/health.

  5. Você também pode visualizar as verificações de saúde (health checks) do MyWeatherHub navegando para https://localhost:7274/health.

  6. Veja os logs no terminal para ver as verificações de saúde (health checks) e outros dados de telemetria, como resiliência com Polly:

    Polly: Information: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '200', Handled: 'False', Attempt: '0', Execution Time: '13.0649'
  7. Clique em 5 cidades diferentes e um erro "aleatório" será lançado. Você verá a política de nova tentativa do Polly em ação.

    Polly: Warning: Execution attempt. Source: '-standard//Standard-Retry', Operation Key: '', Result: '500', Handled: 'True', Attempt: '0', Execution Time: '9732.8258'
    Polly: Warning: Resilience event occurred. EventName: 'OnRetry', Source: '-standard//Standard-Retry', Operation Key: '', Result: '500'
    System.Net.Http.HttpClient.NwsManager.ClientHandler: Information: Sending HTTP request GET http://localhost:5271/forecast/AKZ318