엔드포인트를 노출하는 리소스는 .NET.NET Aspire런타임까지 알려지지 않은 호스트 및 포트만 구성합니다. 특히 대시보드에서 이러한 엔드포인트 중 하나에서 특정 경로에 액세스해야 하는 경우 사용자 지정 리소스 URL을 정의할 수 있습니다. 엔드포인트에 연결되지 않은 사용자 지정 URL을 추가할 수도 있습니다. 모든 사용자 지정 URL은 대시보드 사용을 위한 것이므로 "실행" 모드에서만 사용할 수 있습니다. 이 문서에서는 사용자 지정 URL을 정의하는 방법을 보여 줍니다.
기본 엔드포인트 동작
기본적으로 .NET.NET Aspire 프로젝트 리소스는 Kestrel 또는 시작 프로필과 같은 기존 구성을 사용하여 구성된 엔드포인트에 대한 리소스의 호스트 및 포트를 결정하며 엔드포인트는 항상 대시보드에 표시됩니다.
마찬가지로 WithEndpoint API를 사용하여 엔드포인트를 명시적으로 노출할 수 있습니다. 이 API를 사용하면 리소스에 대한 호스트 및 포트를 지정한 다음 해당 리소스에 대한 기본 URL을 만드는 데 사용됩니다. 기본 URL은 일반적으로 형식 <scheme>://<host>:<port>
입니다. 호스트 포트를 생략하려면 다음 방법 중 하나를 사용합니다.
자세한 내용은 엔드포인트 확장 메서드를 참조하세요.
지원되는 리소스 유형
사용자 지정 리소스 URL은 다음 리소스 종류에 대해 지원됩니다.
리소스 URL 사용자 지정
지원되는 리소스 작성기에서 적절한 WithUrl
오버로드 WithUrls
또는 WithUrlForEndpoint
API를 사용하여 리소스에 대한 사용자 지정 URL을 정의합니다. 다음 예제에서는 프로젝트 리소스에 대한 사용자 지정 URL을 설정하는 방법을 보여 줍니다.
var builder = DistributedApplication.CreateBuilder(args);
var api = builder.AddProject<Projects.AspireApp_Api>("api");
api.WithUrl("/admin", "Admin Portal");
builder.Build().Run();
팁 (조언)
string
을 받아 URL을 전달할 수 있도록 허용하는 오버로드가 있습니다. 리소스의 엔드포인트와 직접 관련이 없는 사용자 지정 URL을 정의하는 데 유용합니다.
위의 코드는 변수에 프로젝트 참조를 api
할당한 다음 경로에 대한 Admin Portal
사용자 지정 URL을 만드는 데 사용됩니다. 이 메서드는 WithUrl
와 ReferenceExpression 및 표시 이름을 매개 변수로 받습니다. 결과 URL은 다음 스크린샷과 같이 대시보드에서 사용할 수 있습니다.
엔드포인트 URL 사용자 지정
스칼라와 Swagger는 모두 엔드포인트의 유용성을 향상시키는 일반적인 API 서비스입니다. 이러한 서비스는 선언된 엔드포인트에 연결된 URL을 통해 액세스됩니다.
첫 번째 연결된 리소스 엔드포인트에 대한 URL을 사용자 지정하려면 이 메서드를 WithUrlForEndpoint 사용합니다.
다른 엔드포인트와 마찬가지로 별도의 URL을 추가하려면 ReferenceExpression 또는 보간된 문자열을 사용하는 WithUrl
오버로드를 호출하거나, WithUrls
를 호출해서 URL을 컨텍스트의 Urls
목록에 추가할 필요가 있습니다.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddProject<Projects.AspireApp_Api>("api")
.WithUrlForEndpoint("https", url =>
{
url.DisplayText = "Scalar (HTTPS)";
url.Url = "/scalar";
});
builder.Build().Run();
앞의 예제에서는 프로젝트 리소스에 api
구성된 엔드포인트가 있다고 https
가정합니다.
WithUrlForEndpoint
메서드는 엔드포인트와 관련된 ResourceUrlAnnotation을 업데이트합니다. 이 경우 표시 텍스트를 Scalar (HTTPS)
할당하고 URL에 대한 상대 /scalar
경로를 할당합니다.
리소스가 시작되면 다음 스크린샷과 같이 대시보드에서 URL을 사용할 수 있습니다.
또는 Func<EndpointReference, ResourceUrlAnnotation>
을(를) 콜백으로 수락하는 오버로드를 사용할 수 있습니다. 이렇게 하면 대상 EndpointReference 인스턴스에 대한 딥 링크를 지정할 수 있습니다.
여러 리소스 URL 사용자 지정
리소스에 대한 여러 URL을 사용자 지정하려면 이 메서드를 WithUrls 사용합니다. 이 메서드를 사용하면 리소스에 대해 각각 고유한 표시 텍스트가 있는 여러 URL을 지정할 수 있습니다. 다음 예제에서는 프로젝트 리소스에 대해 여러 URL을 설정하는 방법을 보여 줍니다.
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();
앞의 코드는 api
프로젝트 리소스에 대해 정의된 URL 리스트를 반복하며, 스키마를 사용하여 표시 텍스트를 할당합니다. 결과 URL은 다음 스크린샷과 같이 대시보드에서 사용할 수 있습니다.
팁 (조언)
ResourceUrlsCallbackContext는 이름이 지정된 엔드포인트라는 기본 리소스에 쉽게 액세스할 수 있는 확장 메서드를 제공합니다.
GetEndpoint
이를 위해 컨텍스트 인스턴스에서 API를 호출합니다.
URL 사용자 지정 수명 주기
애플리케이션 모델 수명 주기 중, 특히 BeforeResourceStartedEvent 이벤트 처리 시에 URL 사용자 지정 콜백이 실행됩니다. 엔드포인트와 연결된 URL은 활성화되고 엔드포인트 자체가 활성화되면 대시보드에 표시됩니다. 엔드포인트와 연결되지 않은 URL은 리소스가 "실행 중" 상태가 될 때만 활성화됩니다. 이렇게 하면 애플리케이션 리소스가 완전히 작동할 때 모든 사용자 지정 URL을 정확하게 표현하고 사용할 수 있습니다.
참고하십시오
.NET Aspire