Azure Functions 모든 함수는 선호하는 언어 또는 개발 환경에 관계없이 몇 가지 핵심 기술 개념 및 구성 요소를 공유합니다. 이 문서는 언어별로 다릅니다. 문서 맨 위에서 원하는 언어를 선택합니다.
이 글은 이미 Azure Functions 개요를 읽으셨다는 전제로 작성합니다.
바로 시작하려면 Visual Studio, Visual Studio Code 또는 명령 프롬프트 사용하여 빠른 시작 자습서를 완료할 수 있습니다.
바로 시작하려면 Maven(명령줄), Eclipse을 사용하여 빠른 시작 자습서를 완료할 수 있습니다. IntelliJ IDEA, Gradle, Quarkus, Spring Cloud 또는 Visual Studio Code.
바로 시작하려면 Visual Studio Code 또는 명령 프롬프트 사용하여 빠른 시작 자습서를 완료할 수 있습니다.
바로 시작하려면 Visual Studio Code 또는 명령 프롬프트 사용하여 빠른 시작 자습서를 완료할 수 있습니다.
바로 시작하려면 Visual Studio Code 또는 명령 프롬프트 사용하여 빠른 시작 자습서를 완료할 수 있습니다.
바로 시작하려면 Visual Studio Code 또는 명령 프롬프트 사용하여 빠른 시작 자습서를 완료할 수 있습니다.
코드 프로젝트
Azure Functions 핵심은 functions 코드 실행 단위를 구현하는 언어별 코드 프로젝트입니다. 함수는 이벤트, HTTP 요청에 대한 응답 또는 일정에 따라 Azure 클라우드에서 실행되는 메서드일 뿐입니다. Azure Functions 코드 프로젝트를 Azure 실행할 때 프로젝트에서 개별 함수를 구성, 배포 및 공동으로 관리하기 위한 메커니즘으로 생각합니다. 자세한 내용은 함수 구성을 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 자세한 언어별 지침은 C# 개발자 가이드를 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 언어별 지침은 Java 개발자 가이드 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 자세한 언어별 지침은 Node.js 개발자 가이드를 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 자세한 언어별 지침은 PowerShell 개발자 가이드를 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 언어별 지침은 Python 개발자 가이드 참조하세요.
코드 프로젝트를 배치하는 방법과 프로젝트에서 함수인 메서드를 나타내는 방법은 프로젝트의 개발 언어에 따라 달라집니다. 언어별 지침은 Go 개발자 가이드를 참고하세요.
모든 함수에는 함수가 시작되는 방법을 정의하고 함수에 입력을 제공할 수 있는 트리거가 있어야 합니다. 함수는 필요에 따라 입력 및 출력 바인딩을 정의할 수 있습니다. 이러한 바인딩은 클라이언트 SDK를 사용하지 않고도 다른 서비스에 대한 연결을 간소화합니다. 자세한 내용은 Azure Functions 트리거 및 바인딩 개념 참조하세요.
Azure Functions 새 코드 프로젝트를 쉽게 만들고 프로젝트에 함수를 추가할 수 있는 언어별 프로젝트 및 함수 템플릿 집합을 제공합니다. Azure Functions 개발을 지원하는 도구를 사용하여 이러한 템플릿을 사용하여 새 앱과 함수를 생성할 수 있습니다.
개발 도구
다음 도구들은 선호하는 언어로 Azure Functions를 위한 로컬 통합 개발 및 게시 경험을 제공합니다:
Azure Functions 핵심 도구(명령 프롬프트)
이러한 도구는 Azure Functions Core Tools 통합되므로 Functions 런타임을 사용하여 로컬 컴퓨터에서 실행하고 디버그할 수 있습니다. 자세한 내용은 코딩 및 테스트 Azure Functions 로컬로 참조하세요.
Azure 포털에는 코드와 function.json 정의 파일을 직접 업데이트할 수 있는 에디터도 있습니다. 이 편집기는 작은 변경이나 개념 증명 함수 생성에만 사용하세요. 가능하다면 항상 지역에서 기능을 개발하세요. 자세한 내용은 Azure 포털에서 첫 번째 함수 만들기 참조하세요.
포털 편집은 function.json 파일을 사용하는 Node.js 버전 3에서만 지원됩니다.
배포
코드 프로젝트를 Azure 게시할 때는 기본적으로 기존 함수 앱 리소스에 프로젝트를 배포합니다. 함수 앱은 함수가 실행되는 Azure 실행 컨텍스트를 제공합니다. 함수에 대한 배포 및 관리 단위입니다. Azure 리소스 관점에서 함수 앱은 웹앱과 동일한 Azure App Service 사이트 리소스(Microsoft.Web/sites)와 동일합니다.
함수 앱은 하나 이상의 개별 기능으로 구성되어 있으며, 이를 함께 관리, 배포, 확장합니다. 함수 앱의 모든 함수는 동일한 가격 책정 계획, 배포 방법 및 런타임 버전을 공유합니다. 자세한 내용은 함수 앱을 관리하는 방법을 참조하세요.
함수 앱과 기타 필요한 리소스가 Azure에 이미 존재하지 않는다면, 프로젝트 파일을 배포하기 전에 이 리소스들을 먼저 만들어야 합니다. 다음 방법 중 하나로 이러한 리소스를 만들 수 있습니다.
- Visual Studio 게시 중
Visual Studio Code 프로그래밍 방식으로 Azure CLI, Azure PowerShell, ARM 템플릿 또는 Bicep 파일
도구 기반 게시 외에도 Functions는 기존 함수 앱에 소스 코드를 배포하기 위한 다른 기술을 지원합니다. 자세한 내용은
서비스에 연결
클라우드 기반 컴퓨팅 서비스의 주요 요구 사항은 데이터를 읽고 다른 클라우드 서비스에 쓰는 것입니다. Functions는 클라이언트 SDK를 사용하지 않고도 서비스에 쉽게 연결할 수 있는 광범위한 바인딩 집합을 제공합니다.
Functions에서 제공하는 바인딩 확장 기능을 사용하든, 클라이언트 SDK를 직접 사용하든, 연결 데이터를 안전하게 저장하고 코드를 포함하지 않습니다.
기본 호스트 저장 공간
함수 앱 인스턴스를 만들 때 Azure Functions에는 Azure Storage 계정이 필요합니다. 이 기본 스토리지 계정 은 Functions 호스트와 일부 바인딩 확장 프로그램에서 내부적으로 사용됩니다.
기본 스토리지 계정에 안전하게 연결을 정의하는 방법에 대해 배우려면 '연결 정의'를 참조하세요.
바인딩
Functions는 확장으로 구현되는 여러 Azure 서비스 및 몇 가지 타사 서비스에 대한 바인딩을 제공합니다. 자세한 내용은 지원되는 바인딩의 전체 목록을 참조하세요.
바인딩 확장은 입력과 출력을 모두 지원할 수 있으며, 많은 트리거도 입력 바인딩 역할을 합니다. 바인딩을 사용하면 Functions 호스트가 데이터 액세스를 처리할 수 있도록 서비스에 대한 연결을 구성할 수 있습니다. 자세한 내용은 Azure Functions 트리거 및 바인딩 개념 참조하세요.
바인딩에서 발생하는 오류에 문제가 있는 경우 Azure Functions 바인딩 오류 코드 설명서를 참조하세요. 원격 서비스에 대한 바인딩에서 연결을 안전하게 정의하는 방법에 대해 배우려면 '연결 정의(Definition connections)'를 참조하세요.
ID 기반 연결의 공통 속성
Azure Functions의 Identity-based connection은 인증을 위해 관리 신원을 사용합니다. 기본적으로 시스템 할당 신원이 사용되지만, 사용자 지정 식별은 and clientId 속성으로 credential 지정할 수 있습니다. 필수 앱 설정 및 RBAC 권한 등 신원 기반 연결 설정에 대한 자세한 내용은 '관리 신원 연결 정의(Definition managed identity connections)'를 참조하세요.
ID 기반 연결을 사용하여 로컬 개발
로컬에서 실행될 때, 신원 기반 연결은 관리 신원 대신 개발자 신원(예: Azure CLI 로그인)을 사용합니다. 지역 개발 중에 부동산을 설정할 credentialclientId 필요는 없습니다. 자세한 내용은 ID 기반 연결을 사용한 로컬 개발을 참조하세요.
클라이언트 SDK
Functions는 함수 코드에서 데이터 접근을 단순화하는 바인딩을 제공하지만, 프로젝트 내 클라이언트 SDK를 사용해 특정 서비스에 직접 접근할 수도 있습니다. 함수가 바인딩 확장 기능에서 지원하지 않는 기본 SDK의 기능을 필요로 한다면, 클라이언트 SDK를 직접 사용해야 할 수도 있습니다. 함수 코드는 바인딩 확장에서 사용하는 기본 클라이언트에 접근할 수 없습니다. 함수에 필요한 클라이언트 인스턴스는 독립적으로 생성하고 관리해야 합니다.
함수 코드에서 클라이언트 SDK를 만들고 사용할 때 다음과 같은 문제를 고려하세요:
연결 문자열을 저장하고 접근할 때는 바인딩 확장이 사용하는 것과 같은 과정을 사용하세요. 더 자세한 내용은 '연결 정의'를 참조하세요.
Consumption 플랜에서 앱을 호스팅하면 모든 인스턴스에서 총 아웃바운드 연결 수에 제한이 있습니다. 이 한계는 포트 고갈을 피하기 위해 주의해야 함을 의미합니다. 자세한 내용은 'SDK 클라이언트 연결 관리'를 참조하세요.
- 함수에서 클라이언트 SDK 인스턴스를 만들 때, 클라이언트가 필요로 하는 연결 정보를 Environment 변수에서 얻으세요.
- 함수에서 클라이언트 SDK 인스턴스를 만들 때, 클라이언트가 필요로 하는 연결 정보를 Environment 변수에서 얻으세요.
- 함수에서 클라이언트 SDK 인스턴스를 만들 때, 클라이언트가 필요로 하는 연결 정보를 Environment 변수에서 얻으세요.
- 함수에서 클라이언트 SDK 인스턴스를 만들 때, 클라이언트가 필요로 하는 연결 정보를 Environment 변수에서 얻으세요.
- 함수에서 클라이언트 SDK 인스턴스를 만들 때, 클라이언트가 필요로 하는 연결 정보를 Environment 변수에서 얻으세요.
문제 보고
| 항목 | 설명 | 링크 |
|---|---|---|
| 런타임 | 스크립트 호스트, 트리거 및 바인딩, 언어 지원 | 파일 문제 |
| 템플릿 | 생성 템플에 대한 코드 문제 | 파일 문제 |
오픈 소스 리포지토리
Azure Functions의 코드는 오픈 소스입니다. 주요 구성 요소는 다음 GitHub 저장소에서 찾을 수 있습니다:
관련된 문서
자세한 내용은 다음 리소스를 참조하세요.