Azure Functions의 Azure Event Grid 바인딩

이 참조는 Azure Functions 트리거 및 바인딩을 사용하여 Azure Event Grid에 연결하는 방법을 보여 줍니다.

Event Grid는 게시자에서 발생하는 이벤트를 알리기 위해 HTTP 요청을 전송하는 Azure 서비스입니다. 게시자는 이벤트를 시작하는 서비스 또는 리소스입니다. 예를 들어, Azure Blob Storage 계정은 게시자이고 Blob 업로드 또는 삭제는 이벤트입니다. 일부 Azure 서비스에는 Event Grid에 이벤트를 게시하는 방식을 기본적으로 지원합니다.

이벤트 처리기는 이벤트를 수신하고 처리합니다. Azure Functions는 Event Grid 이벤트를 처리를 기본적으로 지원하는 Azure 서비스 중 하나입니다. Functions는 Event Grid에서 이벤트가 수신될 때 함수를 호출하는 Event Grid 트리거를 제공합니다. 유사한 출력 바인딩을 사용하여 함수에서 Event Grid 사용자 지정 항목으로 이벤트를 보낼 수 있습니다.

HTTP 트리거를 사용하여 Event Grid 이벤트를 처리할 수도 있습니다. 자세한 내용은 HTTP 엔드포인트로 이벤트 수신을 참조하세요. HTTP 트리거보다 Event Grid 트리거를 사용하는 것이 좋습니다.

작업 Type
Event Grid 이벤트가 디스패치되면 함수 실행 트리거
Event Grid 이벤트를 보냅니다. 출력 바인딩
반환된 HTTP 상태 코드 제어 HTTP 엔드포인트

확장 설치

설치하는 확장 NuGet 패키지는 함수 앱에서 사용 중인 C# 모드에 따라 다릅니다.

Functions는 격리된 C# 작업자 프로세스에서 실행됩니다. 자세한 내용은 격리된 작업자 프로세스에서 C# Azure Functions 실행 가이드를 참조하세요.

확장 기능의 기능은 확장 버전에 따라 다릅니다.

NuGet 패키지, 버전 3.x를 설치하여 프로젝트에 확장을 추가합니다.

번들 설치

Event Grid 확장은 host.json 프로젝트 파일에 지정된 확장 번들의 일부입니다. Event Grid 바인딩의 버전을 변경하거나 번들이 아직 설치되지 않은 경우 이 번들을 수정해야 할 수 있습니다. 자세한 내용은 확장 번들을 참조하세요.

host.json 파일에서 다음 구성을 추가하거나 교체하여 확장 번들 v3에서 이 버전의 확장을 추가할 수 있습니다.

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[3.3.0, 4.0.0)"
    }
}

자세한 내용은 확장 업데이트를 참조하세요.

바인딩 형식

.NET에 지원되는 바인딩 형식은 확장 버전과 C# 실행 모드 모두에 따라 달라지며 다음 중 하나일 수 있습니다.

격리된 작업자 프로세스 클래스 라이브러리 컴파일된 C# 함수는 런타임에서 격리된 프로세스에서 실행됩니다.

모드 및 버전에 대한 바인딩 형식 세부 정보를 보려면 버전을 선택합니다.

격리된 작업자 프로세스는 아래 표에 따라 매개 변수 형식을 지원합니다. StreamAzure.Messaging의 형식에 대한 바인딩 지원은 미리 보기 상태입니다.

Event Grid 트리거

함수가 단일 이벤트를 처리하도록 하려는 경우 Event Grid 트리거는 다음 형식에 바인딩될 수 있습니다.

Type 설명
JSON 직렬화 가능 형식 함수는 이벤트의 JSON 데이터를 POCO(Plain Old CLR Object) 형식으로 역직렬화하려고 합니다.
string 이벤트를 문자열로 지정합니다.
BinaryData1 이벤트 메시지의 바이트입니다.
CloudEvent1 이벤트 개체입니다. CloudEvents 스키마를 사용하여 Event Grid를 제공하도록 구성된 경우에 사용합니다.
EventGridEvent1 이벤트 개체입니다. Event Grid 스키마를 사용하여 Event Grid를 제공하도록 구성된 경우에 사용합니다.

함수가 이벤트 일괄 처리를 수행하려는 경우 Event Grid 트리거는 다음 형식에 바인딩될 수 있습니다.

Type 설명
CloudEvent[]1,
EventGridEvent[]1,
string[],
BinaryData[]1
일괄 처리의 이벤트 배열입니다. 각 항목은 하나의 이벤트를 나타냅니다.

1 이러한 형식을 사용하려면 Microsoft.Azure.Functions.Worker.Extensions.EventGrid 3.3.0 이상SDK 형식 바인딩에 대한 공통 종속성을 참조해야 합니다.

Event Grid 출력 바인딩

함수가 단일 이벤트를 작성하도록 하려는 경우 Event Grid 출력 바인딩은 다음 형식에 바인딩될 수 있습니다.

Type 설명
string 이벤트를 문자열로 지정합니다.
byte[] 이벤트 메시지의 바이트입니다.
JSON 직렬화 가능 형식 JSON 이벤트를 나타내는 개체입니다. 함수는 POCO(Plain Old CLR Object) 형식을 JSON 데이터로 직렬화하려고 시도합니다.

함수가 여러 이벤트를 작성하도록 하려는 경우 Event Grid 출력 바인딩을 다음 형식에 바인딩할 수 있습니다.

Type 설명
T이(가) 단일 이벤트 유형 중 하나인 T[] 여러 이벤트를 포함하는 배열입니다. 각 항목은 하나의 이벤트를 나타냅니다.

다른 출력 시나리오의 경우 Azure.Messaging.EventGrid에서 직접 형식을 만들고 사용합니다.

host.json 설정

Event Grid 트리거는 HTTP 트리거와 동일한 host.json 설정을 사용하여 구성할 수 있는 웹후크 HTTP 요청을 사용합니다.

다음 단계