Azure Functions는 인프라를 명시적으로 프로비전하거나 관리할 필요 없이 주문형 코드를 실행하는 데 사용할 수 있는 서버리스 컴퓨팅 서비스입니다. Azure 또는 파트너 서비스에서 발생하는 이벤트에 의해 트리거되는 코드를 구현할 수 있습니다. 트리거에 응답하는 Azure Functions의 이러한 기능은 Azure Stream Analytics에 대한 자연스러운 출력을 만듭니다. 이 출력 어댑터를 사용하면 Stream Analytics를 Azure Functions에 연결하고 다양한 이벤트에 대한 응답으로 스크립트 또는 코드 조각을 실행할 수 있습니다.
Stream Analytics의 Azure Functions 출력은 21Vianet 및 Azure 독일(T-Systems International)이 운영하는 Microsoft Azure에서 사용할 수 없습니다. 다중 테넌트 클러스터에서 실행되는 Stream Analytics 작업에서 VNet(가상 네트워크) 내의 Azure Functions에 대한 연결도 지원되지 않습니다.
Azure Stream Analytics는 HTTP 트리거를 통해 Azure Functions를 호출합니다. Azure Functions 출력 어댑터는 다음과 같은 구성 가능한 속성과 함께 사용할 수 있습니다.
| 속성 이름 | 설명 |
|---|---|
| 함수 앱 | 당신의 Azure Functions 앱 이름입니다. |
| 기능 | Azure Functions 앱에 있는 함수 이름입니다. |
| 암호키 | 다른 구독에서 Azure Function을 사용하고 싶다면, access 키를 제공하면 됩니다. |
| 최대 일괄 처리 크기 | Azure 함수로 보내는 각 출력 배치의 최대 크기를 설정할 수 있는 속성입니다. 입력 단위는 바이트 단위입니다. 기본적으로 이 값은 262,144바이트(256KB)입니다. |
| 최대 일괄 처리 수 | 각 배치에서 Azure Functions로 보내는 최대 이벤트 수를 지정할 수 있는 속성입니다. 기본값은 100입니다. |
Azure Stream Analytics는 성공적으로 처리된 일괄 처리에 대해 Functions 앱의 HTTP 상태 200을 예상합니다.
Azure Stream Analytics는 Azure 함수에서 413("http 요청 엔터티가 너무 큼") 예외를 수신하면 Azure Functions에 보내는 일괄 처리의 크기를 줄입니다. Azure 함수 코드에서 이 예외를 사용하여 Azure Stream Analytics가 큰 일괄 처리를 보내지 않도록 합니다. 또한 함수에 사용되는 최대 일괄 처리 수 및 크기 값이 Stream Analytics 포털에 입력된 값과 일치하는지 확인합니다.
메모
테스트 연결 중에 Stream Analytics는 빈 배치를 Azure Functions에 보내서 둘 사이의 연결이 작동하는지 테스트합니다. Functions 앱이 빈 일괄 처리 요청을 처리하여 테스트 연결이 통과하는지 확인합니다.
또한 시간 창에 이벤트 방문이 없는 경우 출력이 생성되지 않습니다. 따라서 computeResult 함수는 호출되지 않습니다. 이 동작은 기본 제공 창 집계 함수와 일치합니다.
분할
파티션 키는 쿼리의 PARTITION BY 절을 기반으로 합니다. 출력 기록기의 수는 완전히 병렬화된 쿼리에 대한 입력 분할을 따릅니다.
출력 일괄 처리 크기
기본 일괄 처리 크기는 262,144바이트(256KB)입니다. 일괄 처리당 기본 이벤트 수는 100개입니다. 일괄 처리 크기는 구성할 수 있으며 Stream Analytics 출력 옵션에서 늘리거나 줄일 수 있습니다.
Limitation
AZURE Functions는 HTTP 클라이언트가 100초 후에 시간 초과되면 100초 안에 요청을 완료해야 합니다. Azure Functions가 데이터 일괄 처리를 처리하는 데 100초 이상 걸리는 경우 다시 시도를 트리거하는 시간 제한이 있습니다. 이 재시도는 Azure Functions가 데이터를 다시 처리하고 이전 요청에서 부분적으로 출력되었을 수 있으므로 잠재적으로 동일한 출력을 생성하기 때문에 중복 데이터가 발생할 수 있습니다.
코드 샘플
Azure Functions 출력을 사용하여 메시지를 Redis와 같은 지원되지 않는 데이터베이스 또는 Azure SQL의 업데이트 테이블로 릴레이할 수 있습니다.
다음 단계
- 빠른 시작: Azure Portal을 사용하여 Stream Analytics 작업 만들기
- 빠른 시작: Azure CLI를 사용하여 Azure Stream Analytics 작업 만들기
- 빠른 시작: ARM 템플릿을 사용하여 Azure Stream Analytics 작업 만들기
- 빠른 시작: Azure PowerShell을 사용하여 Stream Analytics 작업 만들기
- 빠른 시작: Visual Studio를 사용하여 Azure Stream Analytics 작업 만들기
- 빠른 시작: Visual Studio Code에서 Azure Stream Analytics 작업 만들기