.NET Aspire Azure Event Hubs 통합
Azure Event Hubs 모든 원본에서 모든 대상으로 대기 시간이 짧은 초당 수백만 개의 이벤트를 스트리밍할 수 있는 클라우드의 네이티브 데이터 스트리밍 서비스입니다. .NET Aspire Azure Event Hubs 통합을 사용하면 .NET 애플리케이션에서 Azure Event Hubs 인스턴스에 연결할 수 있습니다.
호스팅 통합
.NET .NET Aspire Azure Event Hubs 호스팅 통합은 다양한 Event Hub 리소스를 다음과 같은 형식으로 모델화합니다.
- AzureEventHubsResource: 허브 컬렉션 및 기본 Azure 리소스에 대한 연결 정보를 나타내는 데 사용되는 최상위 Azure Event Hubs 리소스를 나타냅니다.
- AzureEventHubResource: 단일 Event Hub 리소스를 나타냅니다.
- AzureEventHubsEmulatorResource: 컨테이너 리소스로 Azure Event Hubs 에뮬레이터를 나타냅니다.
- AzureEventHubConsumerGroupResource: Event Hub 리소스 내의 소비자 그룹을 나타냅니다.
앱 호스트 프로젝트 내에서 이러한 형식 및 API에 액세스하려면 📦Aspire.Hosting.Azure.EventHubs NuGet 패키지를 설치하세요.
dotnet add package Aspire.Hosting.Azure.EventHubs
자세한 내용은 dotnet add package 또는 .NET 응용 프로그램에서 패키지 종속성 관리를 참조하십시오.
Azure Event Hubs 리소스 추가
앱 호스트 프로젝트에 AzureEventHubsResource 추가하려면 이름을 제공하는 AddAzureEventHubs 메서드를 호출한 다음, AddHub호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs");
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
앱 호스트에 Azure Event Hubs 리소스를 추가하면 Event Hub 리소스, 소비자 그룹을 추가하고 명시적 프로비저닝 구성을 표현하는 다른 유용한 API를 노출하고 Azure Event Hubs 에뮬레이터를 사용할 수 있습니다. 앞의 코드는 event-hubs
라는 Azure Event Hubs 리소스와 messages
이라는 Event Hub를 앱 호스트 프로젝트에 추가합니다.
WithReference 메서드는 연결 정보를 ExampleService
프로젝트에 전달합니다.
중요하다
AddAzureEventHubs호출할 때 암시적으로 AddAzureProvisioning(IDistributedApplicationBuilder)호출합니다. 그러면 앱 시작 중에 Azure 리소스를 동적으로 생성하는 지원이 추가됩니다. 앱은 적절한 구독 및 위치를 구성해야 합니다. 자세한 내용은 로컬 프로비저닝: 구성 참조하세요.
프로비저닝 Bicep 생성됨
Bicep을 처음 접하는 경우, 이는 Azure 리소스를 정의하기 위한 도메인별 언어입니다. .NET .NET Aspire사용하면 Bicep을 직접 작성할 필요가 없으며 프로비전 API는 Bicep을 생성합니다. 앱을 게시하면 생성된 Bicep이 매니페스트 파일과 함께 출력됩니다. Azure Event Hubs 리소스를 추가할 때, 다음의 Bicep 코드가 생성됩니다.
@description('The location for the resource(s) to be deployed.')
param location string = resourceGroup().location
param sku string = 'Standard'
param principalType string
param principalId string
resource event_hubs 'Microsoft.EventHub/namespaces@2024-01-01' = {
name: take('event_hubs-${uniqueString(resourceGroup().id)}', 256)
location: location
sku: {
name: sku
}
tags: {
'aspire-resource-name': 'event-hubs'
}
}
resource event_hubs_AzureEventHubsDataOwner 'Microsoft.Authorization/roleAssignments@2022-04-01' = {
name: guid(event_hubs.id, principalId, subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f526a384-b230-433a-b45c-95f59c4a2dec'))
properties: {
principalId: principalId
roleDefinitionId: subscriptionResourceId('Microsoft.Authorization/roleDefinitions', 'f526a384-b230-433a-b45c-95f59c4a2dec')
principalType: principalType
}
scope: event_hubs
}
resource messages 'Microsoft.EventHub/namespaces/eventhubs@2024-01-01' = {
name: 'messages'
parent: event_hubs
}
output eventHubsEndpoint string = event_hubs.properties.serviceBusEndpoint
위의 Bicep은 다음 기본값으로 Azure Event Hubs 리소스를 프로비전하는 모듈입니다.
-
location
: 리소스 그룹의 위치입니다. -
sku
: Event Hubs 리소스의 SKU로, 기본적으로Standard
. -
principalId
: Event Hubs 리소스의 주체 ID입니다. -
principalType
: Event Hubs 리소스의 주요 유형입니다. -
event_hubs
: Event Hubs 네임스페이스 리소스입니다. -
event_hubs_AzureEventHubsDataOwner
: 기본Azure Event Hubs Data Owner
역할에 따라 Event Hubs 리소스 소유자입니다. 자세한 내용은 Azure Event Hubs 데이터 소유자참조하세요. -
messages
: Event Hub 리소스입니다. -
eventHubsEndpoint
: Event Hubs 리소스의 엔드포인트입니다.
생성된 Bicep은 시작 지점이며 특정 요구 사항을 충족하도록 사용자 지정할 수 있습니다.
프로비저닝 인프라 사용자 지정
모든 .NET AspireAzure 리소스는 AzureProvisioningResource 형식의 하위 클래스입니다. 이 형식을 사용하면 Azure API를 사용하여 ConfigureInfrastructure<T>(IResourceBuilder<T>, Action<AzureResourceInfrastructure>) 리소스를 구성하는 흐름 API를 제공하여 생성된 Bicep을 사용자 지정할 수 있습니다. 예를 들어 kind
, consistencyPolicy
, locations
등을 구성할 수 있습니다. 다음 예제에서는 AzureAzure Cosmos DB 리소스를 사용자 지정하는 방법을 보여 줍니다.
builder.AddAzureEventHubs("event-hubs")
.ConfigureInfrastructure(infra =>
{
var eventHubs = infra.GetProvisionableResources()
.OfType<EventHubsNamespace>()
.Single();
eventHubs.Sku = new EventHubsSku()
{
Name = EventHubsSkuName.Premium,
Tier = EventHubsSkuTier.Premium,
Capacity = 7,
};
eventHubs.PublicNetworkAccess = EventHubsPublicNetworkAccess.SecuredByPerimeter;
eventHubs.Tags.Add("ExampleKey", "Example value");
});
앞의 코드는 다음과 같습니다.
-
ConfigureInfrastructure API에 대한 호출을 연결합니다.
-
infra
매개 변수는 AzureResourceInfrastructure 형식의 인스턴스입니다. - 프로비전 가능한 리소스는 GetProvisionableResources() 메서드를 호출하여 검색됩니다.
- 단일 EventHubsNamespace 리소스가 검색됩니다.
-
EventHubsNamespace.Sku 속성은
Premium
이름과 등급, 그리고7
의Capacity
가 있는 새 EventHubsSku 인스턴스에 할당됩니다. -
PublicNetworkAccess 속성은
SecuredByPerimeter
할당됩니다. -
ExampleKey
키와 값Example value
을 가진 태그가 Event Hubs 리소스에 추가됩니다.
-
Event Hubs 리소스 리소스를 사용자 지정하는 데 사용할 수 있는 더 많은 구성 옵션이 있습니다. 자세한 내용은 Azure.Provisioning.PostgreSql참조하세요. 자세한 내용은 Azure.Provisioning
사용자 지정참조하세요.
기존 Azure Event Hubs 네임스페이스에 연결
연결하려는 기존 Azure Event Hubs 네임스페이스가 있을 수 있습니다. 새 Azure Event Hubs 리소스를 나타내는 대신 앱 호스트에 연결 문자열을 추가할 수 있습니다. 기존 Azure Event Hubs 네임스페이스에 대한 연결을 추가하려면 AddConnectionString 메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddConnectionString("event-hubs");
builder.AddProject<Projects.WebApplication>("web")
.WithReference(eventHubs);
// After adding all resources, run the app...
메모
연결 문자열은 데이터베이스 연결, 메시지 브로커, 엔드포인트 URI 및 기타 서비스를 비롯한 광범위한 연결 정보를 나타내는 데 사용됩니다. .NET .NET Aspire 명명법에서 "연결 문자열"이라는 용어는 모든 종류의 연결 정보를 나타내는 데 사용됩니다.
연결 문자열은 앱 호스트의 구성에서 구성되며, 일반적으로 섹션의 ConnectionStrings
아래에 구성됩니다. 앱 호스트는 이 연결 문자열을 환경 변수로 모든 종속 리소스에 삽입합니다. 예를 들면 다음과 같습니다.
{
"ConnectionStrings": {
"event-hubs": "{your_namespace}.servicebus.windows.net"
}
}
종속 리소스는 GetConnectionString 메서드를 호출하고 연결 이름을 매개 변수로 전달하여 삽입된 연결 문자열에 액세스할 수 있습니다. 이 경우 "event-hubs"
.
GetConnectionString
API는 IConfiguration.GetSection("ConnectionStrings")[name]
의 줄임말입니다.
Event Hub 소비자 그룹 추가
소비자 그룹을 추가하려면 IResourceBuilder<AzureEventHubsResource>
호출을 AddConsumerGroup API에 연결합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs");
var messages = eventHubs.AddHub("messages");
messages.AddConsumerGroup("messagesConsumer");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
AddConsumerGroup
호출하면 messages
Event Hub 리소스에 messagesConsumer
이라는 소비자 그룹이 있도록 구성됩니다. 이전 추가한 AzureEventHubsResource
이 표현하는 Azure Event Hubs 네임스페이스에 소비자 그룹이 생성됩니다. 자세한 내용은 Azure Event Hubs: 소비자 그룹참조하세요.
Azure Event Hubs 에뮬레이터 리소스 추가
.NET Aspire
Azure Event Hubs 호스팅 통합은 mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest
컨테이너 이미지를 기반으로 Event Hubs 리소스를 에뮬레이터로 로컬로 실행할 수 있습니다. 이는 개발 및 테스트 목적으로 Event Hubs 리소스를 로컬로 실행하려는 경우 Azure 리소스를 프로비전하거나 기존 Azure Event Hubs 서버에 연결할 필요가 없는 경우에 유용합니다.
Event Hubs 리소스를 에뮬레이터로 실행하려면 RunAsEmulator 메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator();
eventHubs.AddHub("messages");
var exampleProject = builder.AddProject<Projects.ExampleProject>()
.WithReference(eventHubs);
// After adding all resources, run the app...
앞의 코드는 컨테이너에서 로컬로 실행되도록 Azure Event Hubs 리소스를 구성합니다. 자세한 내용은 Azure Event Hubs 에뮬레이터참조하세요.
Event Hubs 에뮬레이터 컨테이너 구성
컨테이너 리소스에 사용할 수 있는 다양한 구성이 있습니다. 예를 들어 컨테이너의 포트, 데이터 바인딩 탑재, 데이터 볼륨을 구성하거나 모든 것을 재정의하는 전체적인 JSON 구성을 제공할 수 있습니다.
Event Hubs 에뮬레이터 컨테이너 호스트 포트 구성
기본적으로 .NET.NET Aspire구성된 Event Hubs 에뮬레이터 컨테이너는 다음 엔드포인트를 노출합니다.
끝점 | 이미지 | 컨테이너 포트 | 호스트 포트 |
---|---|---|---|
emulator |
mcr.microsoft.com/azure-messaging/eventhubs-emulator/latest |
5672 | 동적인 |
수신 대기 중인 포트는 기본적으로 동적입니다. 컨테이너가 시작되면 포트가 호스트 컴퓨터의 임의 포트에 매핑됩니다. 엔드포인트 포트를 구성하려면 다음 예제와 같이 RunAsEmulator
메서드에서 제공한 컨테이너 리소스 작성기 및 WithHostPort(IResourceBuilder<AzureEventHubsEmulatorResource>, Nullable<Int32>) 대한 호출을 연결합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator(emulator =>
{
emulator.WithHostPort(7777);
});
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
앞의 코드는 포트 7777
수신하도록 Azure 이벤트 에뮬레이터 컨테이너의 기존 emulator
엔드포인트를 구성합니다.
Azure 이벤트 에뮬레이터 컨테이너의 포트는 다음 표와 같이 호스트 포트에 매핑됩니다.
엔드포인트 이름 | 포트 매핑(container:host ) |
---|---|
emulator |
5672:7777 |
데이터 볼륨을 사용하여 Event Hubs 에뮬레이터 추가
Event Hubs 에뮬레이터 리소스에 데이터 볼륨을 추가하려면 Event Hubs 에뮬레이터 리소스에서 WithDataVolume 메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator(emulator =>
{
emulator.WithDataVolume();
});
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
데이터 볼륨은 Event Hubs 에뮬레이터 데이터를 컨테이너의 수명 주기 외부에 유지하는 데 사용됩니다. 데이터 볼륨은 컨테이너의 /data
경로에 탑재됩니다.
name
매개 변수 집합을 제공하지 않으면 이름이 임의로 생성됩니다. 데이터 볼륨에 관한 추가 정보 및
데이터 바인드 마운트를 사용하여 Event Hubs 에뮬레이터 추가
다음 예제와 같이 Event Hubs 에뮬레이터 컨테이너에 바인딩 탑재를 추가하고 WithDataBindMount API에 대한 호출을 연결합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator(emulator =>
{
emulator.WithDataBindMount("/path/to/data");
});
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
중요하다
데이터 바인드 마운트는 볼륨에 비해 기능이 제한적이며, 성능, 이식성 및 보안이 더 뛰어나 프로덕션 환경에 더 적합합니다. 그러나 바인딩 탑재를 사용하면 호스트 시스템의 파일에 직접 액세스하고 수정할 수 있으므로 실시간 변경이 필요한 개발 및 테스트에 적합합니다.
데이터 바인딩 탑재는 호스트 컴퓨터의 파일 시스템을 사용하여 컨테이너를 다시 시작할 때 Azure Event Hubs 에뮬레이터 리소스 데이터를 유지합니다. 데이터 바인딩 탑재는 컨테이너의 호스트 컴퓨터에서 /path/to/data
경로에 탑재됩니다. 데이터 바인드 마운트에 대한 자세한 내용은 Docker 문서: 바인드 마운트를 참조하세요.
Event Hubs 에뮬레이터 컨테이너 JSON 구성하기
Event Hubs 에뮬레이터 컨테이너는 기본 config.json 파일로 실행됩니다. 이 파일을 완전히 재정의하거나 JSON 형식으로 구성된 JsonNode 구성을 업데이트할 수 있습니다.
사용자 지정 JSON 구성 파일을 제공하려면 WithConfigurationFile(IResourceBuilder<AzureEventHubsEmulatorResource>, String) 메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator(emulator =>
{
emulator.WithConfigurationFile("./messaging/custom-config.json");
});
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
위의 코드는 ./messaging/custom-config.json
있는 사용자 지정 JSON 구성 파일을 사용하도록 Event Hubs 에뮬레이터 컨테이너를 구성합니다. 이 파일은 컨테이너의 /Eventhubs_Emulator/ConfigFiles/Config.json
경로에 읽기 전용 파일로 탑재됩니다. 대신 기본 구성에서 특정 속성을 재정의하려면 WithConfiguration(IResourceBuilder<AzureEventHubsEmulatorResource>, Action<JsonNode>) 메서드를 호출합니다.
var builder = DistributedApplication.CreateBuilder(args);
var eventHubs = builder.AddAzureEventHubs("event-hubs")
.RunAsEmulator(emulator =>
{
emulator.WithConfiguration(
(JsonNode configuration) =>
{
var userConfig = configuration["UserConfig"];
var ns = userConfig["NamespaceConfig"][0];
var firstEntity = ns["Entities"][0];
firstEntity["PartitionCount"] = 5;
});
});
eventHubs.AddHub("messages");
builder.AddProject<Projects.ExampleService>()
.WithReference(eventHubs);
// After adding all resources, run the app...
위의 코드는 기본 구성에서 UserConfig
노드를 검색합니다. 그런 다음 첫 번째 엔터티의 PartitionCount
를 5
로 업데이트합니다.
호스팅 통합 상태 검사
Azure Event Hubs 호스팅 통합은 Event Hubs 리소스에 대한 상태 검사를 자동으로 추가합니다. 상태 검사는 Event Hubs가 실행 중이고 연결이 설정될 수 있는지 확인합니다.
호스팅 통합은 📦 AspNetCore.HealthChecks에 의존합니다.Azure. Messaging.EventHubs NuGet 패키지입니다.
Client 통합
.NET Aspire Azure Event Hubs 클라이언트 통합을 시작하려면 클라이언트 소비 프로젝트, 즉 Event Hubs 클라이언트를 사용하는 애플리케이션에 대한 프로젝트에서 📦AspireAzure.Messaging.EventHubs NuGet 패키지를 설치합니다.
dotnet add package Aspire.Azure.Messaging.EventHubs
지원되는 Event Hubs 클라이언트 유형
다음 Event Hub 클라이언트는 해당 옵션 및 설정 클래스와 함께 라이브러리에서 지원됩니다.
클라이언트 형식은 해당 옵션 클래스와 마찬가지로 .NETAzure SDK에서 가져옵니다. 설정 클래스는 .NET.NET Aspire에 의해 제공됩니다. 설정 클래스는 클라이언트 인스턴스를 구성하는 데 사용됩니다.
Event Hubs 생산자 클라이언트 추가
클라이언트 사용 프로젝트의 Program.cs 파일에서, 모든 AddAzureEventHubProducerClient에 대해 IHostApplicationBuilder 확장 메서드를 호출하여 EventHubProducerClient을(를) 종속성 주입 컨테이너를 통해 사용할 수 있도록 등록합니다. 메서드는 연결 이름 매개 변수를 사용합니다.
builder.AddAzureEventHubProducerClient(connectionName: "event-hubs");
팁 (조언)
connectionName
매개 변수는 앱 호스트 프로젝트에 Event Hubs 리소스를 추가할 때 사용되는 이름과 일치해야 합니다. 자세한 내용은 Azure Event Hubs 리소스추가를 참조하세요.
EventHubProducerClient
추가한 후 종속성 주입을 사용하여 클라이언트 인스턴스를 검색할 수 있습니다. 예를 들어 예제 서비스에서 데이터 원본 개체를 검색하려면 생성자 매개 변수로 정의하고 ExampleService
클래스가 종속성 주입 컨테이너에 등록되어 있는지 확인합니다.
public class ExampleService(EventHubProducerClient client)
{
// Use client...
}
자세한 내용은 다음을 참조하세요.
-
Azure. Messaging.EventHubs 설명서에서는
EventHubProducerClient
사용하는 예제를. - 종속성 주입은 입니다. 종속성 주입에 대한 자세한 내용은 .NET를 참조하십시오.
고려할 추가 API
클라이언트 통합은 클라이언트 인스턴스를 구성하는 추가 API를 제공합니다. Event Hubs 클라이언트를 등록해야 하는 경우 다음 API를 고려합니다.
앞서 언급한 모든 API에는 클라이언트 인스턴스를 구성하는 선택적 매개 변수가 포함됩니다.
키 지정된 Event Hubs 생산자 클라이언트 추가
여러 EventHubProducerClient
인스턴스를 서로 다른 연결 이름으로 등록하려는 경우가 있을 수 있습니다. 키 지정된 Event Hubs 클라이언트를 등록하려면 AddKeyedAzureServiceBusClient 메서드를 호출합니다.
builder.AddKeyedAzureEventHubProducerClient(name: "messages");
builder.AddKeyedAzureEventHubProducerClient(name: "commands");
중요하다
키 지정된 서비스를 사용하는 경우 Event Hubs 리소스가 두 개의 명명된 허브(messages
및 commands
대해 하나씩)를 구성해야 합니다.
그런 다음 종속성 주입을 사용하여 클라이언트 인스턴스를 검색할 수 있습니다. 예를 들어 서비스에서 클라이언트를 검색하려면 다음을 수행합니다.
public class ExampleService(
[KeyedService("messages")] EventHubProducerClient messagesClient,
[KeyedService("commands")] EventHubProducerClient commandsClient)
{
// Use clients...
}
자세한 내용은 Keyed 서비스에 대한 정보를 .NET에서 참조하세요.
고려할 추가 키 API
클라이언트 통합은 키 지정된 클라이언트 인스턴스를 구성하는 추가 API를 제공합니다. 키 지정된 Event Hubs 클라이언트를 등록해야 하는 경우 다음 API를 고려합니다.
앞서 언급한 모든 API에는 클라이언트 인스턴스를 구성하는 선택적 매개 변수가 포함됩니다.
구성
.NET Aspire
Azure Event Hubs 라이브러리는 프로젝트의 요구 사항 및 규칙에 따라 Azure Event Hubs 연결을 구성하는 여러 옵션을 제공합니다.
FullyQualifiedNamespace
또는 ConnectionString
중 하나가 반드시 제공되어야 합니다.
연결 문자열 사용
ConnectionStrings
구성 섹션에서 연결 문자열을 사용하는 경우 builder.AddAzureEventHubProducerClient()
및 기타 지원되는 Event Hubs 클라이언트를 호출할 때 연결 문자열의 이름을 제공합니다. 이 예제에서 연결 문자열은 EntityPath
속성을 포함하지 않으므로 설정 콜백에서 EventHubName
속성을 설정해야 합니다.
builder.AddAzureEventHubProducerClient(
"event-hubs",
static settings =>
{
settings.EventHubName = "MyHub";
});
그런 다음 ConnectionStrings
구성 섹션에서 연결 정보를 검색합니다. 두 가지 연결 형식이 지원됩니다.
FQN(정규화된 네임스페이스)
권장되는 방법은 AzureMessagingEventHubsSettings.Credential 속성과 함께 작동하는 정규화된 네임스페이스를 사용하여 연결을 설정하는 것입니다. 자격 증명이 구성되지 않은 경우 DefaultAzureCredential 사용됩니다.
{
"ConnectionStrings": {
"event-hubs": "{your_namespace}.servicebus.windows.net"
}
}
연결 문자열
대안적으로, 연결 문자열을 사용할 수 있습니다.
{
"ConnectionStrings": {
"event-hubs": "Endpoint=sb://mynamespace.servicebus.windows.net/;SharedAccessKeyName=accesskeyname;SharedAccessKey=accesskey;EntityPath=MyHub"
}
}
구성 공급자 사용
.NET Aspire
Azure Event Hubs 라이브러리는 Microsoft.Extensions.Configuration지원합니다.
AzureMessagingEventHubsSettings
키 접두사를 사용하여 구성에서 EventProcessorClientOptions
및 연결된 옵션(예: Aspire:Azure:Messaging:EventHubs:
)을 로드한 다음 사용 중인 특정 클라이언트의 이름을 로드합니다. 예를 들어, appsettings.json의 몇 가지 옵션을 구성하는 EventProcessorClient
를 고려해 보세요.
{
"Aspire": {
"Azure": {
"Messaging": {
"EventHubs": {
"EventProcessorClient": {
"EventHubName": "MyHub",
"ClientOptions": {
"Identifier": "PROCESSOR_ID"
}
}
}
}
}
}
}
Action<IAzureClientBuilder<EventProcessorClient, EventProcessorClientOptions>> configureClientBuilder
메서드의 선택적 AddAzureEventProcessorClient
매개 변수를 사용하여 옵션 유형을 설정할 수도 있습니다. 예를 들어 이 클라이언트에 대한 프로세서의 클라이언트 ID를 설정하려면 다음을 수행합니다.
builder.AddAzureEventProcessorClient(
"event-hubs",
configureClientBuilder: clientBuilder => clientBuilder.ConfigureOptions(
options => options.Identifier = "PROCESSOR_ID"));
관찰 가능성 및 원격 분석
기록하기
.NET Aspire Azure Event Hubs 통합은 다음 로그 범주를 사용합니다.
Azure.Core
Azure.Identity
추적
.NET Aspire Azure Event Hubs 통합은 OpenTelemetry를 사용하여 다음의 추적 활동을 발생시킵니다.
Azure.Messaging.EventHubs.*
측정 지표
.NET Aspire Azure Event Hubs 통합은 현재 Azure.NET SDK의 제한 사항으로 인해 기본적으로 메트릭을 지원하지 않습니다. 나중에 변경되는 경우 이 섹션은 해당 변경 내용을 반영하도록 업데이트됩니다.
참고 항목
.NET Aspire