Mac용 Visual Studio의 Azure Functions 소개

Important

Mac용 Visual Studio Microsoft 에 따라 2024년 8월 31일에 사용 중지될 예정입니다. 최신 수명 주기 정책입니다. Mac용 Visual Studio 계속 사용할 수 있지만 Mac의 개발자를 위한 몇 가지 다른 옵션(예: VS Code용 새 C# Dev Kit 확장의 미리 보기 버전)이 있습니다.

지원 타임라인 및 대안에 대해 자세히 알아봅니다.

Azure Functions는 클라우드에서 인프라를 명시적으로 프로비전 또는 관리하지 않고도 코드 함수의 이벤트 기반 코드 조각을 만들고 실행하는 방법입니다. Azure Functions에 대한 자세한 내용은 Azure Functions 설명서를 참조하세요.

요구 사항

Azure 함수 도구는 Mac용 Visual Studio 7.5 이상에 포함되어 있습니다.

함수를 만들어 배포하려면 Azure 구독도 필요합니다. Azure 계정이 없는 경우 오늘 무료로 가입하여 12개월 인기 서비스 무료 혜택, $200 크레딧, 25개 이상의 무료 서비스를 경험할 수 있습니다. ->https://azure.com/free.

Azure Functions 프로젝트 처음 만들기

  1. Mac용 Visual Studio에서 파일 > 새 솔루션을 선택합니다.

  2. 새 프로젝트 대화 상자에서 클라우드 > 일반의 Azure Functions 템플릿을 선택하고 다음을 클릭합니다.

    New Project dialog showing Azure Functions option

  3. 사용할 초기 Azure Functions 템플릿을 선택하여 함수 이름을 입력하고 다음을 클릭합니다.

    New Project dialog showing Azure Functions templates

    번들로 제공되는 Azure Functions 런타임 및 템플릿(CLI)은 가능한 한 최신 상태로 유지되지만 필연적으로 구형이 됩니다. 새 Functions 프로젝트를 만들 때 Mac용 Visual Studio CLI에 대한 업데이트를 검사 다음 이미지와 같이 알려 줍니다. 업데이트된 템플릿을 다운로드하려면 단추를 클릭하면 됩니다. New project dialog showing Azure Functions updates are available

    선택한 함수의 형식에 따라 다음 페이지에서는 다음 이미지에 설명된 액세스 권한과 같은 세부 정보를 입력하라는 메시지가 표시됩니다.

    New Project dialog showing additional option

    다양한 유형의 Azure Functions 템플릿 및 각 템플릿을 구성하는 데 필요한 바인딩 속성에 대한 자세한 내용은 사용 가능한 함수 템플릿 섹션을 참조하세요. 이 예제에서는 익명으로 설정된 액세스 권한이 있는 HTTP 트리거를 사용합니다.

  4. 매개 변수를 설정한 후 프로젝트의 위치를 선택하고 만들기를 선택합니다.

Mac용 Visual Studio는 기본 함수가 포함된 .NET Standard 프로젝트를 만듭니다. 여기에는 Newtonsoft.Json 패키지뿐 아니라 여러 AzureWebJobs 패키지에 대한 NuGet 참조가 포함됩니다.

Visual Studio for Mac editor displaying a brand new Azure function from template

새 프로젝트는 다음 파일을 포함합니다.

  • your-function-name.cs – 이 클래스에는 선택한 함수에 대한 상용구 코드를 포함합니다. 함수 이름이 있는 FunctionName 특성과 함수를 트리거하는 항목(예: HTTP 요청)을 지정하는 트리거 특성이 포함됩니다. 함수 메서드에 대한 자세한 내용은 Azure Functions C# 개발자 참조 문서를 참조하세요.
  • host.json – 이 파일은 함수 호스트에 대한 전역 구성 옵션을 설명합니다. 이 파일의 예제 파일과 사용 가능한 설정 정보는 Azure Functions에 대한 host.json 참조를 참조하세요.
  • local.settings.json – 이 파일은 함수를 로컬로 실행하기 위한 모든 설정을 포함합니다. 이러한 설정은 Azure Functions Core Tools에서 사용됩니다. 자세한 내용은 Azure Functions Core Tools 문서의 로컬 설정 파일을 참조하세요.

Mac용 Visual Studio에서 새 Azure Functions 프로젝트를 만들었으므로 이제 로컬 컴퓨터에서 기본 HTTP 트리거 함수를 테스트할 수 있습니다.

로컬로 함수 테스트

Mac용 Visual Studio에서 Azure Functions 지원을 통해 로컬 개발 컴퓨터에서 함수틀 테스트 및 디버그할 수 있습니다.

  1. 함수를 로컬로 테스트하려면 Mac용 Visual Studio에서 실행 단추를 누릅니다.

    Start debugging button in Visual Studio for mac

  2. 프로젝트를 실행하면 Azure 함수에서 로컬 디버깅이 시작되고 다음 이미지와 같이 새 터미널 창이 열립니다.

    terminal window showing function output

    출력에서 URL을 복사합니다.

  3. 브라우저의 주소 표시줄에 HTTP 요청에 대한 URL을 붙여 넣습니다. ?name=<yourname> 쿼리 문자열을 URL의 마지막에 추가하고 요청을 실행합니다. 다음 이미지에서는 함수가 반환한 로컬 GET 요청에 대한 응답을 브라우저에 보여 줍니다.

    HTTP request in browser

프로젝트에 다른 함수 추가

함수 템플릿을 사용하면 가장 일반적인 트리거 및 템플릿을 통해 새 함수를 신속하게 만들 수 있습니다. 다른 유형의 함수를 만들려면 다음을 수행합니다.

  1. 새 함수를 추가하려면 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 추가 > 함수 추가...를 선택합니다.

    context action for adding new function

  2. 새 Azure 함수 대화 상자에서 필요한 함수를 선택합니다.

    new Azure function dialog

    Azure 함수 템플릿 목록은 사용 가능한 함수 템플릿 섹션에 제공됩니다.

위의 절차를 사용하여 함수 앱 프로젝트에 많은 함수를 추가할 수 있습니다. 프로젝트의 각 함수는 다른 트리거를 가질 수 있지만 함수에는 정확히 하나의 트리거가 있어야 합니다. 자세한 내용은 Azure Functions 트리거 및 바인딩 개념을 참조하세요.

Azure에 게시

  1. 프로젝트 이름을 마우스 오른쪽 단추로 클릭하고 게시 > Azure에 게시를 선택합니다: Context menu with Publish > Publish to Azure... option highlighted

  2. Azure 계정을 Mac용 Visual Studio에 이미 연결한 경우 사용 가능한 앱 서비스 목록이 표시됩니다. 로그인하지 않은 경우 로그인하라는 메시지가 표시됩니다.

  3. Azure App Service 게시 대화 상자에서 기존 앱 서비스를 선택하거나 새로 만들기를 클릭하여 새 앱을 만들 수 있습니다.

  4. 새 App Service 만들기 대화 상자에서 다음과 같은 설정을 입력합니다: New App Service dialog, with fields for service name, subscription, resource group, and service plan settings.

    설정 설명
    App Service 이름 새 함수 앱을 식별하는 전역적으로 고유한 이름입니다.
    구독 사용할 Azure 구독입니다.
    리소스 그룹 함수 앱을 만들 리소스 그룹의 이름입니다. +를 선택하여 새 리소스 그룹을 만듭니다.
    서비스 계획 기존 계획을 선택하거나 사용자 지정 계획을 만듭니다. 사용자 또는 함수가 액세스하는 기타 서비스에 가까운 지역의 위치를 선택합니다.
  5. 다음을 클릭하여 스토리지 계정을 만듭니다. Functions 런타임에는 Azure Storage 계정이 필요합니다. 사용자 지정을 클릭하여 범용 스토리지 계정을 만들거나 기존 스토리지 계정을 사용합니다.

    New App Service dialog with prompt for storage account name.

  6. 만들기를 클릭하여 이러한 설정으로 Azure에서 함수 앱 및 관련 리소스를 만들고 함수 프로젝트 코드를 배포합니다.

  7. 게시하는 동안 "Azure에서 함수 버전 업데이트"를 알리는 대화 상자가 표시될 수 있습니다. 를 클릭합니다.

    Prompt asking to

함수 앱 설정

local.settings.json에서 추가한 모든 설정은 Azure의 함수 앱에도 추가해야 합니다. 이러한 설정은 프로젝트를 게시할 때 자동으로 업로드되지 않습니다.

앱 설정에 액세스하려면 https://ms.portal.azure.com/의 Azure Portal로 이동합니다. Function App 아래에서 Function App을 선택하고 함수 이름을 강조 표시합니다.

Azure Functions menu

개요 탭에서 구성된 기능 아래의 애플리케이션 설정을 선택합니다.

Over tab of Azure function

여기에서 새 애플리케이션 설정을 추가하거나 기존 애플리케이션을 수정할 수 있는 함수 앱에 대한 애플리케이션 설정을 설정할 수 있습니다.

application settings area of Azure portal

설정해야 할 수 있는 중요한 설정 중 하나는 .입니다 FUNCTIONS_EXTENSION_VERSION. Mac용 Visual Studio에서 게시할 때 이 값을 베타로 설정해야 합니다.

사용 가능한 함수 템플릿

  • GitHub 트리거 - GitHub 리포지토리에서 발생하는 이벤트에 응대합니다. 자세한 내용은 Azure functions 문서의 GitHub 부분을 참조하세요.

    • GitHub commenter – 문제 또는 끌어오기 요청에 대한 GitHub 웹후크를 받고 주석을 추가할 때 실행되는 함수입니다.
    • GitHub WebHook – 이 함수는 GitHub 웹후크 요청을 받을 때 실행됩니다.
  • HTTP – HTTP 요청을 사용하여 코드 실행을 트리거합니다. 다음 HTTP 트리거에 대한 명시적 템플릿이 있습니다.

    • HTTP 트리거
    • HTTP GET 만들기, 업데이트, 읽기 및 삭제(CRUD)
    • HTTP POST CRUD
    • 매개 변수를 사용하여 HTTP 트리거
  • Timer - 미리 정의된 일정에 따라 정리 또는 기타 일괄 처리 작업을 실행합니다. 이 템플릿에는 이름과 일정 등 두 필드가 있고 6개 필드 CRON 식입니다. 자세한 내용은 Azure Functions 문서의 시간 부분을 참조하세요.

  • 큐 트리거 – Azure Queue Storage 큐에 도착할 때 메시지에 응답하는 함수입니다. 함수 이름 외에도 이 템플릿은 경로(메시지를 읽을 큐의 이름)와 스토리지 계정 연결(스토리지 계정 연결 문자열을 포함하는 앱 설정의 이름)을 사용합니다. 자세한 내용은 Azure Functions 문서의 큐 스토리지 부분을 참조하세요.

  • Blob Trigger – 컨테이너에 추가되는 Azure Storage Blob를 처리합니다. 함수 이름 외에도 이 템플릿은 경로 및 연결 속성을 사용합니다. 경로 속성은 트리거가 모니터링할 스토리지 계정 내의 경로입니다. 연결 계정은 스토리지 계정 연결 문자열을 포함하는 앱 설정의 이름입니다. 자세한 내용은 Azure Functions Blob Storage 문서를 참조하세요.

  • 일반 웹후크 – 웹후크를 지원하는 서비스에서 요청을 수신할 때마다 실행되는 간단한 함수입니다. 자세한 내용은 Azure Functions 문서의 일반 웹후크 부분을 참조하세요.

  • 지속성 함수 오케스트레이션 – 지속성 함수를 사용하면 서버리스 환경에서 상태 저장 함수를 작성할 수 있습니다. 확장은 상태, 검사점 및 다시 시작을 관리합니다. 자세한 내용은 Durable 함수에 대한 가이드를 참조하세요.

  • Image Resizer - Blob가 컨테이너에 추가될 때마다 크기 조정된 이미지를 만드는 함수입니다. 이 템플릿은 트리거, 소형 이미지 출력, 중간 이미지 출력을 위해 경로 및 연결을 사용합니다.

  • SAS token – 지정된 Azure Storage 컨테이너 및 Blob 이름에 대한 SAS 토큰을 생성하는 함수입니다. 함수 이름 외에도 이 템플릿은 경로 및 연결 속성을 사용합니다. 경로 속성은 트리거가 모니터링할 스토리지 계정 내의 경로입니다. 연결 계정은 스토리지 계정 연결 문자열을 포함하는 앱 설정의 이름입니다. 액세스 권한도 설정해야 합니다. 권한 부여 수준은 함수에 API 키가 필요한지 여부와 사용할 키(함수는 함수 키 사용, 관리자는 계정 액세스 키 사용)를 제어합니다. 자세한 내용은 SAS 토큰 샘플을 생성하기 위한 C# Azure 함수를 참조 하세요 .