Event Grid 이벤트에 대한 이벤트 처리기로서의 함수 사용

이벤트 핸들러는 Azure Event Grid가 처리를 위해 이벤트를 보내는 목적지입니다. Azure는 이벤트를 처리하기 위해 여러 서비스를 자동으로 구성하며, Azure Functions가 그 중 하나입니다.

함수를 이벤트 핸들러로 사용할 때는 서버의 프로비저닝이나 관리 없이 각 이벤트에 대응해 맞춤형 코드를 실행합니다. 예를 들어, 이벤트 그리드는 이벤트를 변환하거나 검증한 후 하위 시스템으로 전달하는 기능을 부패 방지 계층 으로 사용할 수 있습니다.

이 글에서는 함수를 이벤트 핸들러로 사용하는 두 가지 방법을 설명하고, 어떤 접근법을 사용해야 하는지 설명합니다.

Azure에서 함수를 이벤트에 대한 처리기로 사용하려면 다음 방법 중 하나를 수행합니다.

  • 이벤트 그리드 트리거를 사용하세요. Azure Function엔드포인트 유형으로 지정합니다. 그 다음 함수 앱과 이벤트를 처리하는 함수를 지정합니다.
  • HTTP 트리거를 사용하세요. 웹후크엔드포인트 유형으로 지정합니다. 그 다음 이벤트를 처리하는 함수의 URL을 지정하세요.

첫 번째 방법(이벤트 그리드 트리거)을 사용하세요. 두 번째 접근법에 비해 다음과 같은 장점이 있습니다:

  • Event Grid는 Event Grid 트리거의 유효성을 자동으로 검사합니다. 일반 HTTP 트리거를 사용하면 유효성 검사 응답을 직접 구현해야 합니다.
  • 이벤트 그리드는 이벤트가 트리거하는 함수에 이벤트를 전달하는 속도를 자동으로 조정하는데, 이는 해당 함수가 이벤트를 처리할 수 있는 인지된 속도에 따라 조정됩니다. 이 속도 매칭 기능은 함수가 이벤트를 처리하지 못해 발생하는 전달 오류를 방지합니다. 함수의 이벤트 처리 속도가 시간에 따라 변할 수 있기 때문입니다. 높은 처리량으로 효율성을 향상시키려면 이벤트 구독에서 일괄 처리를 사용합니다. 자세한 내용은 일괄 처리 사용을 참조하세요.

참고

  • 이벤트 그리드 트리거를 사용해 Azure 함수를 사용해 이벤트 구독을 추가할 때, Event Grid는 Event Grid 서비스 프린시펄의 자격 증명을 사용해 대상 함수의 접근 키를 가져옵니다. Event Grid는 Azure 구독에서 Event Grid 리소스 제공자를 등록하면 권한을 받습니다.
  • Microsoft Entra ID 애플리케이션으로 Azure 함수를 보호한다면, HTTP 트리거를 사용하는 일반적인 웹훅 방식을 사용해야 합니다. 구독을 추가할 때 Azure 함수 엔드포인트를 웹후크 URL로 사용합니다.

자습서

제목 설명
빠른 시작: 함수를 사용하여 이벤트 처리 처리를 위한 함수로 사용자 지정 이벤트를 보냅니다.
자습서: 데이터 웨어하우스로 빅 데이터 스트림 이벤트 허브가 캡처 파일을 만들 때 Event Grid는 함수 앱에 이벤트를 보냅니다. 앱은 캡처 파일을 검색하고 데이터를 데이터 웨어하우스에 마이그레이션합니다.
자습서: Azure Service Bus-Azure Event Grid 통합 예제 이벤트 그리드는 Service Bus 주제에서 함수 앱과 로직 앱으로 메시지를 전송합니다.

REST API 예제

다음 예시는 이벤트 핸들러로 Azure 함수를 사용하는 이벤트 구독을 생성하는 PUT 연산의 요청 본체를 보여줍니다. 대상 함수의 리소스 ID를 설정하고 배치를 가능하게 합니다.

{
    "properties":
    {
        "destination":
        {
            "endpointType": "AzureFunction",
            "properties":
            {
                "resourceId": "/subscriptions/<AZURE SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP NAME>/providers/Microsoft.Web/sites/<FUNCTION APP NAME>/functions/<FUNCTION NAME>",
                "maxEventsPerBatch": 10,
                "preferredBatchSizeInKilobytes": 64
            }
        },
        "eventDeliverySchema": "EventGridSchema"
    }
}

일괄 처리 사용

더 높은 처리량을 원한다면, 구독에서 배치 기능을 활성화하세요. Azure 포털을 사용하면 구독 생성 시 또는 그 이후에 배치당 최대 이벤트와 선호하는 배치 크기를 킬로바이트 단위로 설정할 수 있습니다.

배치 설정은 Azure 포털, PowerShell, CLI, 또는 Resource Manager 템플릿을 사용해 구성하세요.

Azure Portal

포털에서 구독을 생성할 때, 이벤트 구독 생성 페이지에서 고급 기능 탭으로 전환하고, 배치당 최대 이벤트 수와 선호 배치 크기를 킬로바이트 단위로 설정하세요.

이벤트 구독 생성 페이지의 고급 기능 탭 스크린샷으로, 배치 설정이 보입니다.

이벤트 그리드 주제 페이지의 기능 탭에서 기존 구독에 대해 이 값을 업데이트하세요.

이벤트 그리드 토픽 페이지의 기능 탭 스크린샷으로, 기존 구독의 배치 설정을 보여줍니다.

Azure Resource Manager 템플릿

Azure Resource Manager 템플릿에서 maxEventsPerBatchpreferredBatchSizeInKilobytes을 설정합니다. 자세한 내용은 Microsoft.EventGrid eventSubscriptions 템플릿 참조를 참조하세요.

Azure CLI

다음 매개변수를 사용하여 배치 관련 설정을 구성할 명령어 az eventgrid event-subscription create 를 사용하세요: --max-events-per-batch 또는 --preferred-batch-size-in-kilobytes.

Azure PowerShell

배치 관련 설정을 설정하려면 New-AzEventGridSubscription 또는 Update-AzEventGridSubscription cmdlet을 사용하세요. -PreferredBatchSizeInKiloBytes 또는 -MaxEventsPerBatch 매개변수를 사용하여 기본 설정을 지정하세요.

지원되는 이벤트 핸들러 목록은 이벤트 핸들러스 문서를 참조하세요.