Core Tools를 사용하여 로컬에서 Azure Functions 만들기 및 실행

완료됨

Azure Functions Core Tools를 사용하여 로컬 컴퓨터의 명령줄에서 함수를 개발하고 실행할 수 있습니다.

Azure Portal의 함수 편집기가 아닌 사용자 컴퓨터에 로컬로 첫 번째 함수인 간단한 관심 계산기를 빌드하려고 합니다. Visual Studio 또는 Visual Studio Code 같은 개발 환경을 사용할지 확실치 않으며, 이 두 환경 모두 Azure Functions를 직접 지원하도록 확장될 수 있습니다. 결국에는 명령줄 및 기본 텍스트 편집기에서 Core Tools를 사용하기로 합니다.

이 단원에서는 Core Tools를 사용하여 함수를 로컬로 만들고 실행하는 방법을 알아봅니다. Azure Cloud Shell로 이러한 개념을 안내해 줄 다음 단원의 연습에서 Core Tools를 사용해 보기 전에 먼저 Core Tool에 대해 자세히 알아보겠습니다.

Azure Functions 핵심 도구란?

Azure Functions Core Tools는 로컬 컴퓨터에서 함수 코드를 개발, 실행 및 배포하는 데 사용할 수 있는 명령줄 도구 집합과 함께 독립 실행형 런타임입니다.

Core Tools는 다음을 비롯한 여러 함수 관련 기능을 지원합니다.

  • 함수를 로컬로 개발하는 데 필요한 파일 및 폴더를 생성합니다.
  • 컴퓨터에서 함수를 테스트하고 디버그할 수 있도록 로컬 런타임을 제공합니다.
  • Azure에 함수 게시

핵심 도구를 사용하여 명령줄에서 이러한 작업을 수행할 수 있습니다. 코드를 작성하고 구성을 수정하려는 텍스트 편집기를 사용합니다. 또한 Azure에 로그인하고, Azure 리소스를 만들고, 프로젝트 파일을 배포하려면 Azure CLI 또는 Azure PowerShell이 필요합니다.

Core Tools는 라는 func단일 명령줄 유틸리티로 패키지됩니다. 다른 명령 없이 명령줄에서 실행 func 하면 버전 정보와 사용 가이드가 표시됩니다. 지금은 읽을 필요가 없지만, 다음과 같이 표시됩니다.

A portion of the help text output by func.

Visual Studio와 Visual Studio Code는 모두 Core Tools를 사용하여 통합된 로컬 디버깅 환경을 제공합니다.

다음은 함수에 대한 몇 가지 기본 개념입니다.

함수 앱 및 함수 프로젝트

함수를 로컬로 개발하는 경우 함수 프로젝트 내에서 작업합니다. 함수 프로젝트는 함수를 정의하는 코드 및 구성 파일을 포함하는 폴더입니다. 이 코드 프로젝트는 Azure의 함수 앱 리소스에 배포됩니다. 함수 앱 인스턴스에서 모든 함수는 공통 구성 값 및 리소스 집합을 공유합니다.

각 함수 앱은 특정 언어 스택을 대상으로 하며 각 스택에는 고유한 언어별 프로젝트 요구 사항이 있습니다. 다행히 함수 프로젝트를 직접 직접 만들 필요가 없습니다. Core Tools를 사용하여 원하는 언어로 함수 프로젝트 및 함수를 처음부터 생성할 수 있습니다.

Core Tools 버전

핵심 도구에는 Azure Functions 런타임이 포함되므로 사용하는 핵심 도구의 주 버전은 항상 Azure의 주 버전의 Functions 런타임과 일치해야 합니다. 현재 버전 4.x는 Functions 런타임의 권장 버전이며 모든 언어를 지원하는 유일한 버전입니다. 이 자습서에서는 Core Tools 버전 4.x에 대해 설명하고 사용하지만 컴퓨터에 아무것도 설치할 필요가 없습니다. 이 자습서에서는 브라우저의 Azure Cloud Shell 환경에서 Core Tools를 대신 사용합니다. Cloud Shell에는 이미 설치된 코드 편집기와 함께 올바른 버전의 Core Tools, Azure CLI 및 Node.js 있습니다.

로컬 개발 및 Azure Portal 개발

Azure Portal은 함수 코드에 대한 기본 제공 편집기를 제공하지만 특정 언어 스택에만 사용할 수 있습니다. 포털을 사용하여 로컬로 개발하고 Azure에 배포하는 함수를 편집할 수도 없습니다. 로컬 개발 워크플로를 사용하기 시작하면 Azure Portal을 사용하여 함수 코드를 변경할 수 없습니다.

Core Tools는 Azure Functions에서 지원하는 모든 언어 스택에 대한 로컬 개발을 지원합니다.

로컬로 함수 만들기

핵심 도구를 사용하여 함수를 만들고 로컬로 실행하는 방법을 자세히 살펴보겠습니다. 이 자습서의 뒷부분에서 Azure에 게시하는 방법을 알아봅니다.

func init를 사용하여 새 함수 프로젝트 만들기

새 함수 프로젝트를 만들려면 명령줄에서 func init를 실행합니다.

Output from func init creating a JavaScript function project.

func init 는 앱에 사용할 언어 런타임을 묻습니다. 프로젝트 폴더의 내용을 적절하게 조정합니다.

새 함수 프로젝트를 만들 때 프로젝트 폴더에 포함된 파일은 선택한 언어 런타임에 따라 달라집니다. 어떤 런타임을 선택하든 가장 중요한 두 프로젝트 파일은 항상 존재합니다.

  • host.json은 함수 앱에 대해 로깅 옵션과 같은 런타임 구성 값을 저장합니다. 이 파일에 저장된 설정은 로컬 및 Azure에서 함수를 실행할 때 모두 사용됩니다.
  • local.settings.json 핵심 도구를 사용하여 로컬로 실행되는 경우에만 함수 앱에 적용되는 구성 값을 저장합니다. 이 파일에는 두 가지 설정이 포함되어 있습니다.
    • 로컬 런타임 설정: 로컬 함수 런타임 자체를 구성하는 데 사용합니다.
    • 사용자 지정 애플리케이션 설정: 앱의 요구 사항에 따라 추가하고 구성합니다. 앱의 모든 함수가 액세스하여 사용할 수 있습니다.

func init에서 생성하는 함수 프로젝트에는 함수가 없습니다. 다음 섹션에서는 추가하는 방법을 알아보세요.

func new를 사용하여 새 함수 만들기

프로젝트의 개별 함수에는 해당 동작을 정의하는 코드와 구성이 필요합니다. 함수 프로젝트 폴더에서 실행 func new 하면 새 함수와 개발을 시작하는 데 필요한 모든 파일이 만들어집니다.

Output from func new creating a JavaScript function.

사용할 함수 트리거 종류와 함수 이름을 지정하려는 항목을 묻고 나면 함수 func new 프로젝트에서 선택한 언어로 완전한 게시 준비 시작 구현을 생성합니다. 시작 코드는 선택한 트리거 유형을 사용하는 방법을 보여 줍니다. 그러면 빠르게 시작할 수 있습니다. 함수 본문을 사용자 고유의 구현으로 바꾸면 빌드, 실행, 테스트 및 게시할 준비가 된 것입니다.

이 자습서의 다음 부분에서는 HTTP 트리거 함수를 만들고 시작 구현을 수정하여 간단한 관심 계산을 수행하는 데 사용합니다 func new .

로컬로 함수 실행

함수는 자체 실행될 수 있는 프로그램이 아닙니다. 호스트되어야 합니다. Azure Functions 호스트는 구성을 로드하고, 트리거 및 HTTP 요청을 수신 대기하고, 함수가 작성된 언어에 대한 작업자 프로세스를 시작하고, 로그 출력을 기록하는 등 함수 코드 외부의 모든 기능을 지원합니다. Azure에서 함수 앱은 시작할 때 호스트를 자동으로 실행합니다.

Core Tools를 사용하여 Azure Functions 호스트의 고유한 인스턴스를 실행하고 함수를 게시하기 전에 로컬로 사용해 볼 수 있습니다. 함수를 게시하기 전에 실행하여 구성 및 코드가 올바르게 로드되는지 확인하고 Azure 리소스 없이도 실제 HTTP 호출을 수행하여 함수를 테스트할 수 있습니다.

함수 호스트를 로컬로 시작하려면 함수 프로젝트 폴더에서 func start를 실행합니다. 출력이 끝날 때 핵심 도구는 각 함수를 호출하는 데 사용할 수 있는 로컬 URL을 표시합니다. 호스트를 실행하는 동안 curl과 같이 HTTP 호출을 수행하는 도구나 라이브러리를 사용하여 함수와 상호 작용할 수 있습니다. Core Tools는 호스트에서 생성된 모든 로그 출력을 터미널에 실시간으로 씁니다.

func start output showing a function invocation URL.