Dela via


Definiera anpassade resurs-URL:er

Inom Aspire konfigurerar resurser som exponerar slutpunkter endast värd och port, vilka inte är kända förrän vid körningstid. Om du behöver komma åt en specifik sökväg på någon av dessa slutpunkter , särskilt från instrumentpanelen, kan du definiera anpassade resurs-URL:er. Du kan också lägga till anpassade URL:er som inte är knutna till någon slutpunkt. Alla anpassade URL:er är endast tillgängliga i "körningsläge", eftersom de är avsedda för instrumentpanelsanvändning. Den här artikeln visar hur du definierar anpassade URL:er.

Standardbeteende för slutpunkter

Som standardinställning förlitar sig projektresurser på befintliga konfigurationer som Kestrel eller startprofiler för att fastställa värd och port för en konfigurerad slutpunkt, och slutpunkterna visas alltid på instrumentpanelen.

På samma sätt kan du uttryckligen exponera slutpunkter med hjälp av API:et WithEndpoint . Med det här API:et kan du ange värddatorn och porten för en resurs, som sedan används för att skapa standardwebbadressen för den resursen. Standard-URL:en är vanligtvis i formatet <scheme>://<host>:<port>. Om du vill utelämna värdporten använder du någon av följande metoder:

Mer information finns i Slutpunktstilläggsmetoder.

Resurstyper som stöds

Anpassade resurs-URL:er stöds för följande resurstyper:

Anpassa resurs-URL:er

Använd lämplig WithUrl överlagring, WithUrlseller WithUrlForEndpoint API:er på alla resursbyggare som stöds för att definiera anpassade URL:er för en resurs. I följande exempel visas hur du anger en anpassad URL för en projektresurs:

var builder = DistributedApplication.CreateBuilder(args);

var api = builder.AddProject<Projects.AspireApp_Api>("api");

api.WithUrl("/admin", "Admin Portal");

builder.Build().Run();

Tips/Råd

Det finns en överlagring som accepterar en string som gör att du kan skicka alla URL:er. Detta är användbart för att definiera anpassade URL:er som inte är direkt relaterade till resursens slutpunkt.

Föregående kod tilldelar en projektreferens till variabeln api , som sedan används för att skapa en anpassad URL för Admin Portal vägen. Metoden WithUrl tar ett ReferenceExpression och ett visningsnamn som parametrar. Den resulterande URL:en är tillgänglig på instrumentpanelen enligt följande skärmbild:

Aspire url för den anpassade administratörsportalen på instrumentpanelen.

Anpassa endpunktens webbadress

Både Scalar och Swagger är vanliga API-tjänster som förbättrar användbarheten för slutpunkter. Dessa tjänster nås via URL:er som är knutna till deklarerade slutpunkter.

Om du vill anpassa URL:en för den första associerade resursslutpunkten använder du WithUrlForEndpoint metoden .

Om du vill lägga till en separat URL (även för samma slutpunkt) måste du anropa överlagringen WithUrl som tar en ReferenceExpression eller interpolerad sträng, eller anropa WithUrls och lägga till URL:en i kontextens Urls-lista.

var builder = DistributedApplication.CreateBuilder(args);

builder.AddProject<Projects.AspireApp_Api>("api")
    .WithUrlForEndpoint("https", url =>
    {
        url.DisplayText = "Scalar (HTTPS)";
        url.Url = "/scalar";
    });

builder.Build().Run();

I föregående exempel förutsätts att projektresursen api har en https konfigurerad slutpunkt. Metoden WithUrlForEndpoint uppdaterar den ResourceUrlAnnotation som är associerad med slutpunkten. I det här fallet tilldelar den visningstexten till Scalar (HTTPS) och tilldelar den relativa /scalar sökvägen till URL:en.

När resursen startas är URL:en tillgänglig på instrumentpanelen enligt följande skärmbild:

Aspire kontrollpanel med anpassad Scalar-URL.

Du kan också använda överbelastningsversionen som accepterar en Func<EndpointReference, ResourceUrlAnnotation> som callbackfunktion. På så sätt kan du ange djuplänkar för målinstanser EndpointReference .

Anpassa flera resurs-URL:er

Om du vill anpassa flera URL:er för en resurs använder du WithUrls metoden . Med den här metoden kan du ange flera URL:er för en resurs, var och en med sin egen visningstext. I följande exempel visas hur du anger flera URL:er för en projektresurs:

var builder = DistributedApplication.CreateBuilder(args);

builder.AddProject<Projects.AspireApp_Api>("api")
    .WithUrls(context =>
    {
        foreach (var url in context.Urls)
        {
            if (string.IsNullOrEmpty(url.DisplayText))
            {
                url.DisplayText = $"API ({url.Endpoint?.Scheme?.ToUpper()})";
            }
        }
    });

builder.Build().Run();

Föregående kod itererar via url:erna som definierats för projektresursen api och tilldelar en visningstext med schema. De resulterande URL:erna är tillgängliga på instrumentpanelen enligt följande skärmbild:

Aspire anpassade och namngivna URL:er för instrumentpanelen.

Tips/Råd

Exponerar ResourceUrlsCallbackContext en tilläggsmetod som gör att du enkelt kan komma åt den underliggande resursen med namnet slutpunkter. Anropa API:et GetEndpoint på en kontextinstans för att uppnå detta.

Livscykel för URL-anpassning

Anpassningsåteranrop för URL körs under applikationsmodellens livscykel, särskilt under händelsehantering BeforeResourceStartedEvent. URL:er som är associerade med slutpunkter blir aktiva och visas på instrumentpanelen när själva slutpunkten blir aktiv. URL:er som inte är associerade med slutpunkter blir endast aktiva när resursen anger tillståndet "Körs". Detta säkerställer att alla anpassade URL:er representeras korrekt och är tillgängliga när programresurserna är i full drift.

Se även