자습서: 사용자 지정 항목을 사용하여 Azure Event Grid의 MQTT 메시지를 Azure Functions로 라우팅 - Azure Portal
이 자습서에서는 다음 단계에 따라 Azure Event Grid 네임스페이스에서 수신한 MQTT 메시지를 Event Grid 사용자 지정 항목을 통해 Azure 함수로 라우팅하는 방법을 알아봅니다.
Azure 구독이 없으면 평가판에 등록할 수 있습니다.
Event Grid 트리거를 사용하여 Azure 함수 만들기
Visual Studio Code를 사용하여 Azure 함수 만들기의 지침을 따르되, HTTP 트리거를 사용하는 대신 Azure Event Grid 트리거를 사용합니다. 다음 예와 유사한 코드가 표시됩니다.
using System;
using Azure.Messaging;
using Microsoft.Azure.Functions.Worker;
using Microsoft.Extensions.Logging;
namespace Company.Function
{
public class MyEventGridTriggerFunc
{
private readonly ILogger<MyEventGridTriggerFunc> _logger;
public MyEventGridTriggerFunc(ILogger<MyEventGridTriggerFunc> logger)
{
_logger = logger;
}
[Function(nameof(MyEventGridTriggerFunc))]
public void Run([EventGridTrigger] CloudEvent cloudEvent)
{
_logger.LogInformation("Event type: {type}, Event subject: {subject}", cloudEvent.Type, cloudEvent.Subject);
}
}
}
이 자습서의 뒷부분에서는 이 Azure 함수를 항목 구독에 대한 이벤트 처리기로 사용합니다.
참고 항목
- 동일한 지역에 모든 리소스를 만듭니다.
- 이 자습서는 .NET 8.0(격리된) 런타임 스택을 사용하는 Azure 함수로 테스트되었습니다.
Event Grid 항목 만들기(사용자 지정 항목)
Event Grid 토픽을 만듭니다. 포털을 사용하여 사용자 지정 토픽 만들기를 참조하세요. Event Grid 토픽을 만들 때 고급 탭에서 이벤트 스키마에 대해 클라우드 이벤트 스키마 v1.0을 선택합니다.
참고 항목
이 자습서의 모든 부분에서 클라우드 이벤트 스키마를 사용합니다.
함수를 사용하여 항목에 구독을 추가합니다.
이 단계에서는 이전에 만든 Azure 함수를 사용하여 Event Grid 항목에 대한 구독을 만듭니다.
Event Grid 항목 페이지의 왼쪽 탐색 모음에서 구독을 선택합니다.
이벤트 구독 만들기 페이지에서 다음 단계를 수행합니다.
Azure 함수 선택 페이지에서 다음 단계를 수행합니다.
이벤트 구독 만들기 페이지에서 만들기를 선택합니다.
이벤트 구독 페이지에 사용자가 만든 구독이 표시됩니다.
네임스페이스, 클라이언트, 항목 공간 및 권한 바인딩 만들기
빠른 시작: Azure Portal에서 Event Grid 네임스페이스를 사용하여 MQTT 메시지 게시 및 구독의 지침에 따라 다음을 수행합니다.
- Event Grid 네임스페이스를 만듭니다.
- 다음 두 클라이언트를 만듭니다.
- 토픽 공간을 만듭니다.
- 게시자 및 구독자 권한 바인딩을 만듭니다.
- MQTTX 앱을 사용하여 테스트하여 클라이언트가 메시지를 보내고 받을 수 있는지 확인합니다.
네임스페이스에 대한 관리 ID 사용
이 섹션에서는 Event Grid 네임스페이스에 대해 시스템 할당 관리 ID를 사용하도록 설정합니다. 그런 다음 메시지를 사용자 지정 엔터티로 라우팅할 수 있도록 이전에 만든 Event Grid 사용자 지정 엔터티에 대한 보내기 권한을 ID에 부여합니다. 사용자 지정 엔터티에 대한 Event Grid 데이터 보낸 사람 역할에 관리 ID를 추가하면 됩니다.
Event Grid 네임스페이스 페이지의 왼쪽 탐색 메뉴에서 ID를 선택합니다.
Event Grid 사용자 지정 항목에 대한 Event Grid 항목으로 이동합니다.
왼쪽 탐색 모음에서 액세스 제어를 선택합니다.
액세스 제어 페이지에서 추가를 선택한 다음 역할 할당 추가를 선택합니다.
역할 할당 추가 마법사의 역할 페이지에서 Event Grid 데이터 보낸 사람 역할을 선택하고 페이지 하단에서 다음을 선택합니다.
역할 할당 추가 마법사의 멤버 페이지에서 관리 ID를 선택한 다음 멤버 선택을 선택합니다.
관리 ID 선택 페이지에서 다음 단계를 수행합니다.
역할 할당 추가 페이지에서 페이지 하단에 있는 다음을 선택합니다.
검토 + 할당 페이지에서 설정을 검토한 다음 페이지 하단에서 검토 + 할당을 선택합니다.
사용자 지정 항목을 통해 Azure 함수에 메시지 라우팅 구성
이 단계에서는 수신하는 메시지가 사용자가 만든 사용자 지정 항목으로 라우팅되도록 Event Grid 네임스페이스에 대한 라우팅을 구성합니다.
Event Grid 네임스페이스 페이지의 왼쪽 탐색 모음에서 라우팅을 선택합니다.
라우팅 페이지에서 라우팅 사용을 선택합니다.
항목 유형의 경우 사용자 지정 토픽을 선택합니다.
항목에서는 이 자습서를 위해 만든 사용자 지정 항목을 선택합니다.
전송용 관리 ID에서 시스템 할당을 선택합니다.
페이지 하단에서 적용을 선택합니다.
MQTTX를 사용하여 테스트 MQTT 메시지 보내기
테스트 MQTT 메시지를 네임스페이스로 보내고 함수가 이를 수신하는지 확인합니다.
MQTTX 앱을 사용하여 메시지 게시, 구독 문서의 지침에 따라 Event Grid 네임스페이스에 몇 가지 테스트 메시지를 보냅니다.
이벤트 또는 메시지의 흐름은 다음과 같습니다.
MQTTX는 Event Grid 네임스페이스의 항목 공간에 메시지를 보냅니다.
메시지는 구성한 사용자 지정 항목으로 라우팅됩니다.
메시지는 Azure 함수인 이벤트 구독으로 전달됩니다.
로깅 함수를 사용하여 함수가 이벤트를 수신했는지 확인합니다.
다음 단계
이 GitHub 리포지토리에서 코드 샘플을 확인합니다.