Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Neste início rápido, você criará um sinalizador de recurso na Configuração de Aplicativos do Azure e o usará para controlar dinamicamente a disponibilidade de uma nova página da Web em um aplicativo Aspire sem reiniciá-lo ou reimplantá-lo.
O suporte ao gerenciamento de recursos estende o recurso de configuração dinâmica na Configuração de Aplicativos. O exemplo neste início rápido baseia-se no aplicativo Aspire introduzido no tutorial de configuração dinâmica. Antes de continuar, conclua o início rápido e o tutorial para criar um aplicativo Aspire com configuração dinâmica primeiro.
Pré-requisitos
Siga os documentos para criar uma solução Aspire com configuração dinâmica.
- Início Rápido: Criar uma solução Aspire com a Configuração de Aplicativos
- Tutorial: Usar a configuração dinâmica em um aplicativo Aspire
Criar um sinalizador de recurso
Adicione um sinalizador de recurso chamado Beta ao repositório de Configuração de Aplicativos (criado nas etapas de pré-requisitos ) e deixe Rótulo e Descrição com seus valores padrão. Para obter mais informações sobre como adicionar sinalizadores de recursos a um repositório usando o portal do Azure ou a CLI, acesse Criar um sinalizador de recurso.
Adicione o seguinte par chave-valor através da interface de usuário do emulador de Configuração do Aplicativo.
| Key | Tipo de conteúdo | Value |
|---|---|---|
| .appconfig.featureflag/Beta | application/vnd.microsoft.appconfig.ff+json; charset=utf-8 | {"id":"Beta","enabled":false} |
Sinalizadores de recursos são valores-chave especiais que definem sinalizadores de recursos da Microsoft. Os provedores de configuração identificam os sinalizadores de recursos por seu tipo de conteúdo específico e prefixo de chave. O valor de um feature flag é um objeto JSON que segue Microsoft Feature Flag schema.
- Tipo de conteúdo do sinalizador de recurso:
application/vnd.microsoft.appconfig.ff+json;charset=utf-8 - Prefixo da chave do sinalizador de recurso:
.appconfig.featureflag/
Usar um sinalizador de recurso
Navegue até o
Webdiretório do projeto (criado nas etapas de pré-requisitos ). Execute o comando a seguir para adicionar oMicrosoft.FeatureManagement.AspNetCorepacote Nuget.dotnet add package Microsoft.FeatureManagement.AspNetCoreAbra Program.cs e adicione uma chamada ao
UseFeatureFlagsmétodo dentro daAddAzureAppConfigurationchamada. Você pode se conectar à Configuração de Aplicativos usando o Microsoft Entra ID (recomendado) ou uma cadeia de conexão. O trecho de código a seguir demonstra o uso do Microsoft Entra ID.builder.AddAzureAppConfiguration( "appconfiguration", configureOptions: options => { // Load all keys that start with `TestApp:` and have no label. options.Select("TestApp:*", LabelFilter.Null); // Reload configuration if any key-values have changed. options.ConfigureRefresh(refreshOptions => refreshOptions.RegisterAll()); // Load all feature flags with no label options.UseFeatureFlags(); });Dica
Quando nenhum parâmetro é transmitido ao método
UseFeatureFlags, ele carrega todos os sinalizadores de recursos sem rótulo no repositório Configuração de Aplicativos. O intervalo de atualização padrão dos sinalizadores de recursos é de 30 segundos. Você pode personalizar esse comportamento com o parâmetroFeatureFlagOptions. Por exemplo, o snippet de código a seguir carrega apenas sinalizadores de recursos que começam com TestApp: em seu nome de chave e têm o rótulo dev. O código também altera o intervalo de atualização para 5 minutos. Observe que esse intervalo de atualização é separado daquele dos valores-chave regulares.options.UseFeatureFlags(featureFlagOptions => { featureFlagOptions.Select("TestApp:*", "dev"); featureFlagOptions.CacheExpirationInterval = TimeSpan.FromMinutes(5); });Adicione o gerenciamento de recursos à coleção de serviços do seu aplicativo chamando
AddFeatureManagement.Atualize Program.cs com o código a seguir.
// Existing code in Program.cs // ... ... // Add Azure App Configuration middleware to the container of services. builder.Services.AddAzureAppConfiguration(); // Add feature management to the container of services. builder.Services.AddFeatureManagement(); var app = builder.Build(); // The rest of existing code in program.cs // ... ...Adicione
using Microsoft.FeatureManagement;ao início do arquivo se não estiver lá.Adicione uma nova página razor chamada Beta.razor no diretório Componentes/Páginas .
@page "/beta" @inject IFeatureManager FeatureManager @if (isBetaEnabled) { <h1>This is the beta website.</h1> } else { <h1>Not found.</h1> } @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }Abra _Imports.razor e importe o namespace de gerenciamento de recursos.
@using Microsoft.FeatureManagementAbra NavMenu.razor no diretório Components/Layout .
Injete
IVariantFeatureManagerna parte superior do arquivo.@inject IVariantFeatureManager FeatureManager <div class="top-row ps-3 navbar navbar-dark"> <div class="container-fluid"> <a class="navbar-brand" href="">AspireApp</a> </div> </div>Adicione o código a seguir.
// Existing code // ... ... <div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()"> <nav class="nav flex-column"> // Existing code // ... ... @if (isBetaEnabled) { <div class="nav-item px-3"> <NavLink class="nav-link" href="beta"> <span class="bi bi-list-nested" aria-hidden="true"></span> Beta </NavLink> </div> } </nav> </div> @code { private bool isBetaEnabled; protected override async Task OnInitializedAsync() { isBetaEnabled = await FeatureManager.IsEnabledAsync("Beta"); } }
Executar o aplicativo localmente
Execute o projeto
AppHost. Vá para o painel do Aspire e abra o aplicativo Web.No portal do Azure, navegue até o Gerenciador de Recursos do repositório de Configuração de Aplicativos e localize o sinalizador de recurso Beta . Habilite o sinalizador selecionando a caixa de seleção em Habilitado.
Atualize a página algumas vezes. Quando a janela de tempo do intervalo de atualização passar, a página será exibida com o conteúdo atualizado.
Clique no botão Beta . Ele levará você para a página beta que você habilitou dinamicamente.
Executar o aplicativo localmente
Execute o projeto
AppHost. Vá para o painel do Aspire e abra o aplicativo Web.Vá para o emulador, edite o valor do sinalizador de recurso para habilitá-lo.
Key Value appconfig.featureflag/Beta {"id":"Beta","enabled":true} Atualize a página algumas vezes. Quando a janela de tempo do intervalo de atualização passar, a página será exibida com o conteúdo atualizado.
Clique no botão Beta . Ele levará você para a página beta que você habilitou dinamicamente.
Próximas etapas
Neste guia de início rápido, você adicionou a capacidade de gerenciamento de recursos a um aplicativo Aspire, além da configuração dinâmica. A biblioteca Microsoft.FeatureManagement.AspNetCore oferece integração com aplicativos ASP.NET Core, incluindo gerenciamento de recursos em ações do controlador MVC, páginas razor, exibições, rotas e middleware. Para obter o resumo completo dos recursos da biblioteca de gerenciamento de recursos .NET, continue para o documento a seguir.
Embora um sinalizador de recurso permita ativar ou desativar a funcionalidade em seu aplicativo, convém personalizar um sinalizador de recurso com base na lógica do aplicativo. Os filtros de recursos permitem habilitar um sinalizador de recurso condicionalmente. Para saber mais, continue no tutorial a seguir.
A Configuração de Aplicativos do Azure oferece filtros de recursos internos que permitem ativar um sinalizador de recurso somente durante um período específico ou para um público-alvo específico do seu aplicativo. Para saber mais, continue no tutorial a seguir.
Para habilitar a funcionalidade de gerenciamento de recursos para outros tipos de aplicativos, prossiga para os tutoriais a seguir.
Para saber mais sobre como gerenciar sinalizadores de recursos na Configuração de Aplicativos do Azure, continue no tutorial a seguir.