Azure Functions 개요
Azure Functions는 더 적은 코드를 쓰고, 인프라를 적게 유지하고, 비용을 절감할 수 있도록 하는 서버리스 솔루션입니다. 애플리케이션을 계속 실행하는 데 필요한 모든 최신 리소스를 클라우드 인프라에서 제공하므로 서버 배포 및 유지 관리에 대해 걱정할 필요가 없습니다.
가장 생산적인 언어로 작성한 가장 중요한 코드에 집중하고 Azure Functions는 나머지를 처리합니다.
Functions 설명서에 대한 최상의 환경을 위해 문서 맨 위에 있는 네이티브 Functions 언어 목록에서 원하는 개발 언어를 선택합니다.
시나리오
Functions는 추가 코드를 작성하지 않고도 함수를 다른 서비스에 연결하는 이벤트 기반 트리거 및 바인딩의 포괄적인 세트를 제공합니다.
다음은 Functions를 특징으로 하는 일반적인 통합 시나리오 세트입니다(그러나 완전한 것은 아님).
다음을 원하는 경우... | 구현 방법... |
---|---|
파일 업로드 처리 | Blob 스토리지에서 파일이 업로드되거나 변경될 때 코드를 실행합니다. |
실시간 데이터 처리 | 스토리지로 이동하는 중에 이벤트 및 IoT 원본 스트림에서 데이터를 캡처하고 변환합니다. |
데이터 모델 유추 | 큐에서 텍스트를 끌어와 분석 및 분류를 위해 다양한 AI 서비스에 제공합니다. |
예약된 작업 실행 | 미리 정의된 시간 간격에 따라 데이터 정리 코드를 실행합니다. |
확장성 있는 웹 API 빌드 | HTTP 트리거를 사용하여 웹 애플리케이션에 대한 REST 엔드포인트 세트를 구현합니다. |
서버리스 워크플로 빌드 | Durable Functions를 사용하여 일련의 함수에서 이벤트 기반 워크플로를 만듭니다. |
데이터베이스 변경에 응답 | Azure Cosmos DB에서 문서를 만들거나 업데이트할 때 사용자 지정 논리를 실행합니다. |
안정적인 메시지 시스템 만들기 | Queue Storage, Service Bus 또는 Event Hubs를 사용하여 메시지 큐를 처리합니다. |
이러한 시나리오를 사용하면 최신 아키텍처 패턴을 사용하여 이벤트 기반 시스템을 빌드할 수 있습니다. 자세한 내용은 Azure Functions 시나리오를 참조하세요.
개발 수명 주기
Functions를 사용하면 선호하는 개발 도구를 사용하여 기본 설정 언어로 함수 코드를 작성한 다음, Azure 클라우드에 코드를 배포할 수 있습니다. Functions는 C#, Java, JavaScript, PowerShell, Python의 개발을 위한 기본 지원과 Rust 및 Go와 같은 더 많은 언어를 사용하는 기능을 제공합니다.
Functions는 Visual Studio, Visual Studio Code, Maven 및 기타 인기 있는 개발 도구와 직접 통합되어 원활한 디버깅 및 배포를 가능하게 합니다.
또한 Functions는 Azure Monitor 및 Azure Application Insights와 통합되어 클라우드의 함수에 대한 포괄적인 런타임 원격 분석 및 분석을 제공합니다.
호스팅 옵션
Functions는 비즈니스 요구 사항 및 애플리케이션 워크로드에 대한 다양한 호스팅 옵션을 제공합니다. 이벤트 기반 크기 조정 호스팅 옵션은 실행 시간에 대해서만 비용을 지불하는 완전한 서버리스(사용 계획)부터 가장 빠른 응답 시간을 위해 항상 준비된 인스턴스를 준비하는 것(프리미엄 계획)까지 다양합니다.
과도한 App Service 호스팅 리소스가 있는 경우 기존 App Service 요금제에서 함수를 호스트할 수 있습니다. 이러한 종류의 전용 호스팅 계획은 함수의 예측 가능한 크기 조정 동작 및 비용이 필요한 경우에도 적합합니다.
함수 런타임 환경 및 종속성을 완벽하게 제어하려는 경우 완전히 사용자 지정할 수 있는 함수를 컨테이너에 배포할 수도 있습니다. 사용자 지정 컨테이너는 Functions에서 호스트되거나, Azure Container Apps에서 마이크로 서비스 아키텍처의 일부로 배포되거나, Kubernetes에서 자체 호스팅될 수도 있습니다.