Creare comandi nella dashboard .NET Aspire

di Morgan Pizzini, in ASP.NET Core,

All'interno della dashboard di .NET Aspire, oltre ad importare servizi e configurare le nostre applicazioni, è anche possibile impostare dei comandi personalizzati per ogni tipo di risorsa visualizzata. Lo scopo è permettere un controllo esterno all'ecosistema, attraverso dei pulsanti nella dashboard, in grado di eseguire operazioni che richiederebbero altrimenti un intervento umano molto più dispendioso.

Un esempio può essere l'inizializzazione di un database, il reset della cache o azioni composite, che permettano quindi di reimpostare lo stato di partenza senza però riavviare il processo.

var cache = builder.AddRedis("cache")
            .WithHttpCommand("admin-flush", "Flush Cache",
                commandName: "cache-flush",
                commandOptions: new HttpCommandOptions
                {
                  Method = HttpMethod.Delete,
                  Description = "Clear all cached data"
                });

Lo stesso processo può essere chiamato da altri comandi, creando un comando composito che può eseguire un vasto numero di operazioni.

var api = builder.AddProject<Projects.Api>("api")
    .WithReference(cache)
    .WithCommand("reset-all", "Reset Everything", async (context, ct) =>
    {
        // servizio aspire
        var commandService = context.ServiceProvider.GetRequiredService<ResourceCommandService>();
        try
        {
            // chiamata al comando configurato precedentemente
            var flushResult = await commandService.ExecuteCommandAsync(cache.Resource, "cache-flush", ct);
            // [..altre chiamate]
            if (!flushResult.Success)
            {
                return CommandResults.Failure($"System reset failed");
            }
            return CommandResults.Success();
        }
        catch (Exception ex)
        {
            return CommandResults.Failure(ex);
        }
    },
    displayDescription: "Reset cache",
    iconName: "ArrowClockwise");

Commenti

Visualizza/aggiungi commenti

| Condividi su: LinkedIn, Facebook

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi