Azure Functions란?
Azure Functions는 Azure에 이벤트 기반 및 확장 가능한 서버리스 컴퓨팅을 제공하는 클라우드 기반 컴퓨팅 서비스입니다. 함수 코드가 실행된 시간에 대해서만 요금이 청구되는 경우도 있습니다.
Azure Functions를 사용하면 코드를 실행해야 하는 경우에만 실행할 수 있습니다. 예를 들어, 메시지가 큐에 도착하는 경우 또는 저장된 개체가 업데이트되는 경우와 같이 이벤트 또는 변경의 결과로 코드가 실행될 수 있습니다. cron
규칙을 사용하여 코드가 실행되도록 예약된 간격을 정의할 수도 있습니다.
트리거를 사용하여 코드를 실행할 시점 정하기
Azure Functions를 사용하면 코드의 실행을 시작하는 트리거를 정의할 수 있습니다. 트리거는 함수에 데이터를 전달하기 위한 입력을 처리할 수도 있습니다. 각 함수에는 하나의 트리거만 있을 수 있습니다. Azure Functions에서 지원하는 몇 가지 트리거 유형은 다음과 같습니다.
- 스토리지: Azure Cosmos DB와 같은 데이터베이스에서 이벤트를 수신 대기할 수 있습니다. 예를 들어 새 행이 삽입되는 경우입니다.
- 이벤트: Event Grid 및 Event Hubs는 코드를 트리거할 수 있는 이벤트를 생성합니다.
- HTTP 코드: 웹 요청 및 웹후크는 HTTP 코드를 트리거할 수 있습니다.
- 큐: 큐 메시지도 처리할 수 있습니다.
- 타이머: 지정된 시간 간격에 따라 코드를 호출합니다.
바인딩을 사용하여 데이터 원본에 연결
바인딩은 입력 및 출력 데이터를 위한 코딩을 간소화하는 방법입니다. 클라이언트 SDK를 사용하여 함수 코드에서 서비스에 연결할 수 있지만, Azure Functions는 이러한 연결을 간소화하기 위한 바인딩을 제공합니다. 기본적으로 바인딩은 직접 작성할 필요가 없는 연결 코드입니다. Azure의 여러 서비스와 통합하고, 통합 문제를 해결하고, 비즈니스 프로세스를 자동화할 수 있습니다.
바인딩은 입력과 출력이라는 두 가지 버전으로 제공됩니다. 출력 바인딩은 데이터 대상에 데이터를 쓸 방법을 제공합니다(예: 큐에 메시지를 배치하거나 데이터베이스에 새 행 배치). 입력 바인딩을 사용하여 함수를 트리거한 데이터 원본과 다른 데이터 원본에서 함수로 데이터를 전달할 수 있습니다.
기능
Azure Functions를 매력적인 옵션으로 만들어 주는 몇 가지 기능이 있습니다.
유연한 호스팅 플랜. 비즈니스 요구 사항에 맞는 세 가지 호스팅 플랜이 있습니다.
- 사용 플랜. 이는 Functions를 위한 완전한 서버리스 호스팅 옵션입니다. Azure Functions는 자동으로 스케일링되며, 함수가 실행 중인 경우에만 컴퓨팅 리소스에 대한 비용을 지불하게 됩니다. 이 플랜은 덜 예측 가능한 부하로 보다 간헐적으로 발생하는 짧은 프로세스 워크로드에 대해 비용 효율적인 컴퓨팅을 제공합니다.
- 프리미엄 플랜. 이 플랜에서는 함수가 초기화된 상태로 유지됩니다. 즉, 유휴 상태가 된 후에 지연이 없습니다. 프리미엄 플랜은 함수 앱이 더 오랜 기간 실행되어야 하는 경우에 선택하면 좋은 플랜이지만, 여전히 동적 크기 조정이 필요합니다. 이 플랜에서는 소비 플랜에 비해 더 많은 리소스로 더 빠르게 스케일링을 시작할 수 있습니다. 소비 플랜에는 실행 시간에 대한 제한도 있는데, 이 플랜은 실행 시간 제한을 대치할 수 있습니다. 동적 스케일링의 비용 이점은 얻을 수 있지만 더 많은 비용을 지불해야 합니다.
- 전용 플랜. 일반 App Service 플랜을 사용하여 함수를 실행합니다. 함수를 지속적으로 실행해야 하는 경우에 가장 적합합니다. 또 다른 이점은 앱이 스케일링하는 방식을 완전히 제어하고 비용을 보다 쉽게 예측할 수 있다는 것입니다. 전용 플랜은 사용량이 많지 않은 기존 App Service 요금제가 있는 경우에도 좋은 옵션이 됩니다.
동적 스케일링. 대부분의 플랜에서는 함수가 부하에 따라 동적으로 스케일링됩니다. 실행 수요가 늘어나면 서비스에 더 많은 리소스가 자동으로 할당되며, 요청이 줄어들면 리소스 및 애플리케이션 인스턴스가 자동으로 삭제됩니다. 소비 플랜에서는 유휴 함수에 대해 비용을 지불하지 않습니다.
이벤트 기반 아키텍처. 함수는 작고 집중되어야 합니다. 들어오는 데이터를 처리하고, 작업을 완료하거나 새로운 이벤트를 발생시킵니다. Azure Functions의 몇 가지 일반적인 사용 영역은 메일 보내기, 백업 시작, 주문 처리, 작업 예약(데이터베이스 정리, 알림 보내기, 메시지 및 IoT 데이터 처리 등)입니다.