Azure Functions에 대한 Azure IoT Hub 바인딩

이 문서 세트에서는 IoT Hub에 대한 Azure Functions 바인딩을 사용하는 방법을 설명합니다. IoT Hub 지원은 Azure Event Hubs 바인딩을 기반으로 합니다.

중요

다음 코드 샘플에서는 이벤트 허브 API를 사용하지만 주어진 구문은 IoT Hub 함수에 적용할 수 있습니다.

작업 유형
IoT 허브 이벤트 스트림으로 전송된 이벤트에 응답합니다. 트리거
IoT 이벤트 스트림에 이벤트를 씁니다. 출력 바인딩

Functions 앱에 추가

Functions 2.x 이상

트리거 및 바인딩을 사용하려면 적절한 패키지를 참조해야 합니다. NuGet 패키지는 .NET 클래스 라이브러리에 사용되는 반면, 확장 번들은 다른 모든 애플리케이션 형식에 사용됩니다.

언어 추가 방법... 설명
C# NuGet 패키지 버전 3.x 설치
C# Script, Java, JavaScript, Python, PowerShell 확장 번들 등록 Azure Tools 확장은 Visual Studio Code와 함께 사용하는 것이 좋습니다.
C# 스크립트(Azure Portal에서 온라인으로만) 바인딩 추가 함수 앱을 다시 게시하지 않고 기존 바인딩 확장을 업데이트하려면 확장 업데이트를 참조하세요.

Event Hubs 확장 5.x 이상

이제 새 버전의 Event Hubs 바인딩 확장을 사용할 수 있습니다. 비밀 대신 ID를 사용하여 연결하는기능을 소개합니다. 관리 ID를 사용한 함수 앱 구성에 대한 자습서는 ID 기반 연결을 사용한 함수 앱 만들기 자습서를 참조하세요. .NET 애플리케이션의 경우 Microsoft.Azure.EventHubs의 형식이 Azure.Messaging.EventHubs의 최신 형식으로 바뀌어 사용자가 바인딩할 수 있는 형식도 변경됩니다.

이 확장 버전은 NuGet 패키지, 버전 5.x를 설치하여 사용할 수 있으며, 파일에 다음을 추가하여 확장 번들 v3에서 추가할 수 있습니다. host.json

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

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

Functions 1.x

Functions 1.x 앱은 Microsoft.Azure.WebJobs NuGet 패키지 버전 2.x에 대한 참조를 자동으로 포함합니다.

host.json 설정

host.json 파일에는 Event Hubs 트리거에 대한 동작을 제어하는 설정이 포함되어 있습니다. 구성은 Azure Functions 버전에 따라 달라집니다.

Functions 2.x 이상

{
    "version": "2.0",
    "extensions": {
        "eventHubs": {
            "batchCheckpointFrequency": 5,
            "eventProcessorOptions": {
                "maxBatchSize": 256,
                "prefetchCount": 512
            },
            "initialOffsetOptions": {
                "type": "fromStart",
                "enqueuedTimeUtc": ""
            }
        }
    }
}  
속성 기본값 설명
batchCheckpointFrequency 1 EventHub 커서 검사점을 만들기 전에 처리할 이벤트 일괄 처리 수입니다.
eventProcessorOptions/maxBatchSize 10 수신 루프 당 받은 최대 이벤트 수입니다.
eventProcessorOptions/prefetchCount 300 기본 EventProcessorHost에서 사용하는 기본 프리페치 횟수입니다. 허용되는 최솟값은 10초입니다.
initialOffsetOptions/type1 fromStart 스토리지에 체크포인트가 없을 때 처리를 시작할 이벤트 스트림의 위치입니다. 옵션은 fromStart, fromEnd 또는 fromEnqueuedTime입니다. fromEnd는 함수 앱 실행이 시작된 후 큐에 추가된 새 이벤트를 처리합니다. 모든 파티션에 적용됩니다. 자세한 내용은 EventProcessorOptions 설명서를 참조하세요.
initialOffsetOptions/enqueuedTimeUtc1 해당 없음 처리를 시작할 스트림의 이벤트 큐에 넣은 시간을 지정합니다. initialOffsetOptions/typefromEnqueuedTime로 구성된 경우 이 설정은 필수입니다. DateTime.Parse()에서 지원하는 모든 형식(예: 2020-10-26T20:31Z)의 시간을 지원합니다. 명확하게 하기 위해 표준 시간대도 지정해야 합니다. 시간대가 지정되지 않은 경우 함수는 Azure에서 실행될 때 UTC인 함수 앱을 실행하는 머신의 로컬 시간대를 가정합니다. 자세한 내용은 EventProcessorOptions 설명서를 참조하세요.

1 initialOffsetOptions에 대한 지원은 EventHubs v4.2.0부터 시작됩니다.

참고

Azure Functions 2.x 이상에서 host.json의 참조는 Azure Functions에 대한 host.json 참조를 확인하세요.

Functions 1.x

{
    "eventHub": {
      "maxBatchSize": 64,
      "prefetchCount": 256,
      "batchCheckpointFrequency": 1
    }
}
속성 기본값 설명
maxBatchSize 64 수신 루프 당 받은 최대 이벤트 수입니다.
prefetchCount 해당 없음 기본 EventProcessorHost에서 사용할 기본 프리페치입니다.
batchCheckpointFrequency 1 EventHub 커서 검사점을 만들기 전에 처리할 이벤트 일괄 처리 수입니다.

참고

Azure Functions 1.x에서 host.json의 참조는 Azure Functions 1.x에 대한 host.json 참조를 확인하세요.

다음 단계