빠른 시작: Visual Studio Code를 사용하여 Azure에서 C# 함수 만들기

이 문서에서는 In-process 또는 격리된 작업자 프로세스 중에서 .NET 6에서 실행되는 HTTP 트리거 함수를 만듭니다. .NET Functions 격리 작업자 프로세스를 사용하면 .NET 7(미리 보기)에서 실행할 수도 있습니다. 격리된 작업자 프로세스에서 지원하는 모든 .NET 버전에 대한 자세한 내용은 지원되는 버전을 참조하세요.

이 문서의 CLI 기반 버전도 있습니다.

기본적으로 이 문서에서는 Functions 호스트와 동일한 프로세스의 .NET 6에서 실행되는 C# 함수를 만드는 방법을 보여 줍니다. 이러한 In process C# 함수는 .NET 6과 같은 LTS(장기 지원) .NET 버전에서만 지원됩니다. 프로젝트를 만들 때 격리된 작업자 프로세스에서 .NET 6에서 실행되는 함수를 대신 만들도록 선택할 수 있습니다. 격리된 작업자 프로세스 는 .NET의 LTS 및 STS(표준 용어 지원) 버전을 모두 지원합니다. 자세한 내용은 .NET Functions 격리 작업자 프로세스 가이드에서 지원되는 버전을 참조하세요.

이 빠른 시작을 완료하면 Azure 계정에서 USD 센트 이하의 작은 비용이 발생합니다.

환경 구성

시작하기 전에 다음 요구 사항을 갖추었는지 확인합니다.

로컬 프로젝트 만들기

이 섹션에서는 Visual Studio Code를 사용하여 C#에서 로컬 Azure Functions 프로젝트를 만듭니다. 이 문서의 뒷부분에서 함수 코드를 Azure에 게시합니다.

  1. 작업 표시줄에서 Azure 아이콘을 선택한 다음, 작업 영역(로컬) 영역에서 + 단추를 선택하고 드롭다운에서 함수 만들기를 선택합니다. 메시지가 표시되면 새 프로젝트 만들기를 선택합니다.

    새 프로젝트 만들기 창의 스크린샷

  2. 프로젝트 작업 영역에 대한 디렉터리 위치를 선택하고 선택을 선택합니다. 새 폴더를 만들거나 프로젝트 작업 영역에 대한 빈 폴더를 선택해야 합니다. 이미 작업 영역의 일부인 프로젝트 폴더를 선택하지 마세요.

  3. 프롬프트에서 다음 정보를 제공합니다.

    prompt 선택 영역
    언어 선택 C#을 선택합니다.
    .NET 런타임 선택 .NET 6를 선택합니다.
    프로젝트의 첫 번째 함수에 사용할 템플릿 선택 HTTP trigger을 선택합니다.
    함수 이름 제공 HttpExample.
    네임스페이스 제공 My.Functions.
    권한 부여 수준 누구나 함수 엔드포인트를 호출할 수 있도록 하는 Anonymous를 선택합니다. 권한 부여 수준에 대해 알아보려면 권한 부여 키를 참조하세요.
    프로젝트를 여는 방법 선택 Add to workspace를 선택합니다.

    참고

    .NET 6이 런타임 옵션으로 표시되지 않으면 다음을 확인하세요.

    • .NET 웹 사이트에서 .NET 6.0 SDK 또는 사용 가능한 기타 .NET SDK 버전을 설치했는지 확인 합니다.
    • F1 키를 누르고, Preferences: Open user settings를 입력한 다음, Azure Functions: Project Runtime를 검색하고, 기본 런타임 버전을 ~4로 변경합니다.
  4. Visual Studio Code는 제공된 정보를 사용하고 HTTP 트리거를 통해 Azure Functions 프로젝트를 생성합니다. 탐색기에서 로컬 프로젝트 파일을 볼 수 있습니다. 생성된 파일에 대한 자세한 내용은 생성된 프로젝트 파일을 참조하세요.

로컬에서 함수 실행

Visual Studio Code는 Azure Functions Core 도구와 통합되어 Azure에 게시하기 전에 로컬 개발 컴퓨터에서 이 프로젝트를 실행할 수 있습니다.

  1. 함수를 호출하려면 F5를 눌러 함수 앱 프로젝트를 시작합니다. 터미널 패널에 핵심 도구의 출력이 표시됩니다. 터미널 패널에서 앱이 시작됩니다. 로컬에서 실행 중인 HTTP 트리거 함수의 URL 엔드포인트를 볼 수 있습니다.

    로컬 함수 Visual Studio Code 출력의 스크린샷.

    Windows에서 실행하는 데 문제가 있는 경우 Visual Studio Code의 기본 터미널이 WSL Bash로 설정되어 있지 않은지 확인합니다.

  2. Core Tools가 실행 중인 상태에서 Azure: Functions 영역으로 이동합니다. Functions에서 로컬 프로젝트>Functions를 확장합니다. HttpExample 함수를 마우스 오른쪽 단추로 클릭(Windows)하거나 Ctrl -을 클릭(macOS)하고 지금 함수 실행... 을 선택합니다.

    Visual Studio Code에서 실행 함수 스크린샷.

  3. 요청 본문 입력에서 Enter를 눌러 요청 메시지를 함수로 보냅니다.

  4. 함수가 로컬로 실행되고 응답을 반환하는 경우 Visual Studio Code에서 알림이 발생합니다. 함수 실행에 대한 정보는 터미널 패널에 표시됩니다.

  5. Ctrl + C를 눌러 Core Tools를 중지하고 디버거 연결을 끊습니다.

함수가 로컬 컴퓨터에서 제대로 실행되는지 확인한 후 Visual Studio Code를 사용하여 프로젝트를 Azure에 직접 게시합니다.

Azure에 로그인

앱을 게시하기 전에 Azure에 로그인해야 합니다.

  1. 아직 로그인하지 않은 경우, 작업 막대에서 Azure 아이콘을 선택합니다. 그런 다음, 리소스 영역에서 Azure에 로그인...을 선택합니다.

    VS Code 내에서 Azure에 로그인 창의 스크린샷

    이미 로그인되어 있고 기존 구독을 볼 수 있는 경우 다음 섹션으로 이동합니다. 아직 Azure 계정이 없는 경우 만들기 및 Azure 계정...을 선택합니다. 학생은 만들기 및 Azure for Students 계정을 선택할 수 있습니다...

  2. 브라우저에 메시지가 표시되면 Azure 계정을 선택하고 Azure 계정 자격 증명을 사용하여 로그인합니다. 새 계정을 만드는 경우 계정을 만든 후 로그인할 수 있습니다.

  3. 성공적으로 로그인한 후에는 브라우저 창을 닫을 수 있습니다. Azure 계정에 속하는 구독은 사이드바에 표시됩니다.

Azure에서 함수 앱 만들기

이 섹션에서는 함수 앱 및 관련 리소스를 Azure 구독에서 만듭니다.

  1. 작업 표시줄에서 Azure 아이콘을 선택합니다. 그런 다음, 리소스 영역에서 + 아이콘을 선택하고 Azure에서 함수 앱 만들기 옵션을 선택합니다.

    Azure 구독에서 리소스 만들기

  2. 프롬프트에서 다음 정보를 제공합니다.

    prompt 선택 영역
    구독 선택 사용할 구독을 선택합니다. 리소스 아래에 하나의 구독만 표시되는 경우 이 메시지가 표시되지 않습니다.
    함수 앱에 대해 전역적으로 고유한 이름 입력 URL 경로에 유효한 이름을 입력합니다. 입력한 이름이 Azure Functions에서 고유한지 확인하기 위해 유효성을 검사합니다.
    런타임 스택 선택 로컬로 실행한 언어 버전을 선택합니다.
    새 리소스의 위치 선택 성능을 향상시키려면 근처에 있는 지역을 선택합니다.

    확장은 Azure에서 생성되는 개별 리소스의 상태를 Azure: Activity Log 패널에 표시합니다.

    Azure 리소스 만들기 로그

  3. 생성이 완료되면 구독에 다음과 같은 Azure 리소스가 생성됩니다. 리소스 이름은 함수 앱 이름에 따라 지정됩니다.

    • 리소스 그룹 - 관련 리소스에 대한 논리 컨테이너입니다.
    • 표준 Azure Storage 계정 - 프로젝트에 대한 상태 및 기타 정보를 유지 관리합니다.
    • 함수 앱 - 함수 코드를 실행할 수 있는 환경을 제공합니다. 함수 앱을 사용하면 함수를 논리 단위로 그룹화하여 동일한 호스팅 계획 내에서 더 쉽게 리소스를 관리, 배포 및 공유할 수 있습니다.
    • 함수 앱의 기본 호스트를 정의하는 App Service 플랜입니다.
    • 앱에서 함수의 사용을 추적하는 함수 앱에 연결된 Application Insights 인스턴스입니다.

    함수 앱을 만들고 배포 패키지가 적용되면 알림이 표시됩니다.

    기본적으로 함수 앱에 필요한 Azure 리소스는 사용자가 제공하는 함수 앱 이름을 기반으로 만들어집니다. 기본적으로 함수 앱과 동일한 새 리소스 그룹에도 만들어집니다. 이러한 리소스의 이름을 사용자 지정하거나 기존 리소스를 다시 사용하려면 대신 고급 만들기 옵션을 사용하여 프로젝트를 게시해야 합니다.

Azure에 프로젝트 배포

중요

기존 함수 앱에 배포하면 항상 Azure에서 해당 앱의 콘텐츠를 덮어씁니다.

  1. 작업 표시줄에서 Azure 아이콘을 선택한 다음, 작업 영역 영역에서 프로젝트 폴더를 선택하고 배포... 단추를 선택합니다.

    Visual Studio Code 작업 영역에서 프로젝트 배포

  2. 함수 앱에 배포...를 선택하고 방금 만든 함수 앱을 선택한 후 배포를 선택합니다.

  3. 배포가 완료되면 출력 보기를 선택하여 사용자가 만든 Azure 리소스를 포함한 만들기 및 배포 결과를 봅니다. 알림이 누락된 경우 오른쪽 아래 모서리에 있는 종 모양 아이콘을 선택하여 다시 확인합니다.

    출력 보기 창의 스크린샷

Azure에서 함수 실행

  1. 사이드바의 리소스 영역으로 돌아가서 구독, 새 함수 앱 및 Functions를 확장합니다. HttpExample 함수를 마우스 오른쪽 단추로 클릭(Windows)하거나 Ctrl -을 클릭(macOS)하고 지금 함수 실행... 을 선택합니다.

    Visual Studio Code에서 Azure의 함수 실행 스크린샷

  2. 요청 본문 입력에서 { "name": "Azure" }의 요청 메시지 본문 값이 표시됩니다. Enter를 눌러 이 요청 메시지를 함수로 보냅니다.

  3. 함수가 Azure에서 실행되고 응답을 반환하는 경우 Visual Studio Code에서 알림이 발생합니다.

리소스 정리

다음 단계를 계속하고 함수에 Azure Storage 큐 바인딩을 추가하는 경우 이미 수행한 작업을 기반으로 모든 리소스를 제자리에 유지해야 합니다.

그렇지 않으면 다음 단계를 수행하여 추가 비용이 발생하지 않도록 함수 앱 및 관련 리소스를 삭제할 수 있습니다.

  1. Visual Studio Code에서 F1을 눌러 명령 팔레트를 엽니다. 명령 팔레트에서 Azure: Open in portal을 검색하여 선택합니다.

  2. 함수 앱을 선택하고 Enter를 누릅니다. 함수 앱 페이지가 Azure Portal에서 열립니다.

  3. 개요 탭에서 리소스 그룹 옆에 있는 명명된 링크를 선택합니다.

    함수 앱 페이지에서 삭제할 리소스 그룹 선택 스크린샷

  4. 리소스 그룹 페이지에서 포함된 리소스 목록을 검토하고 삭제하려는 항목인지 확인합니다.

  5. 리소스 그룹 삭제를 선택하고 지시를 따릅니다.

    삭제는 몇 분 정도 소요됩니다. 완료되면 알림이 잠시 표시됩니다. 페이지 위쪽의 종 모양 아이콘을 선택해도 알림을 확인할 수 있습니다.

Functions 비용에 대한 자세한 내용은 소비 계획 비용 예측을 참조하세요.

다음 단계

Visual Studio Code를 사용하여 간단한 HTTP 트리거 함수가 있는 함수 앱을 만들었습니다. 다음 문서에서는 Azure Cosmos DB 또는 Azure Queue Storage에 연결하여 해당 함수를 확장합니다. 다른 Azure 서비스에 연결하는 방법에 대한 자세한 내용은 Azure Functions의 기존 함수에 바인딩 추가를 참조하세요.