Azure Functions 핵심 도구 작업Work with Azure Functions Core Tools

Azure Functions 핵심 도구를 사용하여 명령 프롬프트 또는 터미널의 로컬 머신에서 함수를 개발하고 테스트할 수 있습니다.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. 로컬 함수는 라이브 Azure 서비스에 연결할 수 있고 사용자는 전체 Functions 런타임을 사용하여 로컬 머신에서 함수를 디버깅할 수 있습니다.Your local functions can connect to live Azure services, and you can debug your functions on your local computer using the full Functions runtime. Azure 구독에 함수 앱을 배포할 수도 있습니다.You can even deploy a function app to your Azure subscription.

중요

로컬 개발과 포털 개발을 동일한 함수 앱에 혼합하지 않도록 합니다.Do not mix local development with portal development in the same function app. 로컬 프로젝트에서 함수를 만들고 게시할 경우 포털에서 프로젝트 코드를 유지하거나 수정하려고 하지 않아야 합니다.When you create and publish functions from a local project, you should not try to maintain or modify project code in the portal.

핵심 도구를 사용 하 여 로컬 컴퓨터에서 함수를 개발 하 고 Azure에 게시 하는 작업은 다음과 같은 기본 단계를 따릅니다.Developing functions on your local computer and publishing them to Azure using Core Tools follows these basic steps:

핵심 도구 버전Core Tools versions

Azure Functions 핵심 도구에는 두 가지 버전이 있습니다.There are two versions of Azure Functions Core Tools. 사용 중인 버전은 로컬 개발 환경, 선택한 언어 및 필요한 지원 수준에 따라 달라집니다.The version you use depends on your local development environment, choice of language, and level of support required:

  • 버전 1.x: 런타임 버전 1.x를 지원합니다.Version 1.x: supports version 1.x of the runtime. 이 버전의 도구는 Windows 컴퓨터에서만 지원되며 npm 패키지에서 설치됩니다.This version of the tools is only supported on Windows computers and is installed from an npm package. 이 버전을 사용하면 공식적으로 지원되지 않는 실험적 언어로 함수를 만들 수 있습니다.With this version, you can create functions in experimental languages that are not officially supported. 자세한 내용은 Azure Functions에서 지원되는 언어를 참조하세요.For more information, see Supported languages in Azure Functions

  • 버전 2.x: 런타임 버전 2.x를 지원합니다.Version 2.x: supports version 2.x of the runtime. 이 버전은 Windows, macOSLinux를 지원합니다.This version supports Windows, macOS, and Linux. 설치에 플랫폼별 패키지 관리자 또는 npm을 사용합니다.Uses platform-specific package managers or npm for installation.

언급이 없는 경우 이 아티클의 예제는 2.x 버전용입니다.Unless otherwise noted, the examples in this article are for version 2.x.

Azure Functions 핵심 도구 설치Install the Azure Functions Core Tools

Azure Functions 핵심 도구에는 로컬 개발 컴퓨터에서 실행할 수 있는 Azure Functions 런타임을 제공하는 동일한 런타임 버전이 포함됩니다.Azure Functions Core Tools includes a version of the same runtime that powers Azure Functions runtime that you can run on your local development computer. 또한 함수를 만들고, Azure에 연결하고, 함수 프로젝트를 배포하는 명령을 제공합니다.It also provides commands to create functions, connect to Azure, and deploy function projects.

버전 2.xVersion 2.x

버전 2.x 도구는 .NET Core를 기반으로 하는 Azure Functions 런타임 2.x를 사용합니다.Version 2.x of the tools uses the Azure Functions runtime 2.x that is built on .NET Core. 이 버전은 Windows, macOSLinux를 포함하여 .NET Core 2.x에서 지원하는 모든 플랫폼에서 지원됩니다.This version is supported on all platforms .NET Core 2.x supports, including Windows, macOS, and Linux.

중요

확장 번들을 사용 하 여 .net CORE 2.x SDK를 설치 하기 위한 요구 사항을 무시할 수 있습니다.You can bypass the requirement for installing the .NET Core 2.x SDK by using extension bundles.

WindowsWindows

다음 단계에서는 npm을 사용하여 Windows에 핵심 도구를 설치합니다.The following steps use npm to install Core Tools on Windows. Chocolatey를 사용할 수도 있습니다.You can also use Chocolatey. 자세한 내용은 핵심 도구 추가 정보를 참조하세요.For more information, see the Core Tools readme.

  1. Node.js(npm 포함)를 설치합니다.Install Node.js, which includes npm. 버전 2.x 도구의 경우 Node.js 8.5 이상 버전만 지원됩니다.For version 2.x of the tools, only Node.js 8.5 and later versions are supported.

  2. 다음과 같이 핵심 도구 패키지를 설치합니다.Install the Core Tools package:

    npm install -g azure-functions-core-tools
    

    Npm에서 핵심 도구 패키지를 다운로드 하 고 설치 하는 데 몇 분 정도 걸릴 수 있습니다.It may take a few minutes for npm to download and install the Core Tools package.

  3. 확장 번들을 사용 하지 않으려는 경우 Windows 용 .NET Core 2.x SDK를 설치 합니다.If you do not plan to use extension bundles, install the .NET Core 2.x SDK for Windows.

Homebrew가 있는 MacOSMacOS with Homebrew

다음 단계에서는 Homebrew를 사용하여 macOS에 핵심 도구를 설치합니다.The following steps use Homebrew to install the Core Tools on macOS.

  1. 아직 설치되지 않은 경우 Homebrew를 설치합니다.Install Homebrew, if it's not already installed.

  2. 다음과 같이 핵심 도구 패키지를 설치합니다.Install the Core Tools package:

    brew tap azure/functions
    brew install azure-functions-core-tools
    
  3. 확장 번들을 사용 하지 않으려는 경우 macos 용 .NET Core 2.x SDK를 설치 합니다.If you do not plan to use extension bundles, install .NET Core 2.x SDK for macOS.

APT가 있는 Linux(Debian/Ubuntu)Linux (Ubuntu/Debian) with APT

다음 단계에서는 APT를 사용하여 Ubuntu/Debian Linux 배포판에 핵심 도구를 설치합니다.The following steps use APT to install Core Tools on your Ubuntu/Debian Linux distribution. 다른 Linux 배포판의 경우 핵심 도구 추가 정보를 참조하세요.For other Linux distributions, see the Core Tools readme.

  1. Microsoft package repository GPG 키를 설치 하 여 패키지 무결성의 유효성을 검사 합니다.Install the Microsoft package repository GPG key, to validate package integrity:

    curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
    sudo mv microsoft.gpg /etc/apt/trusted.gpg.d/microsoft.gpg
    
  2. APT 업데이트를 수행 하기 전에 .NET 개발 원본 목록을 설정 합니다.Set up the .NET development source list before doing an APT update.

    Ubuntu에 대 한 APT 원본 목록을 설정 하려면 다음 명령을 실행 합니다.To set up the APT source list for Ubuntu, run this command:

    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/repos/microsoft-ubuntu-$(lsb_release -cs)-prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
    

    Debian에 대 한 APT 원본 목록을 설정 하려면 다음 명령을 실행 합니다.To set up the APT source list for Debian, run this command:

    sudo sh -c 'echo "deb [arch=amd64] https://packages.microsoft.com/debian/$(lsb_release -rs)/prod $(lsb_release -cs) main" > /etc/apt/sources.list.d/dotnetdev.list'
    
  3. @No__t_0 파일에서 아래에 나열 된 적절 한 Linux 버전 문자열 중 하나를 확인 합니다.Check the /etc/apt/sources.list.d/dotnetdev.list file for one of the appropriate Linux version strings listed below:

    Linux 배포Linux distribution 버전Version
    Debian 10Debian 10 buster
    Debian 9Debian 9 stretch
    Debian 8Debian 8 jessie
    Ubuntu 18.10Ubuntu 18.10 cosmic
    Ubuntu 18.04Ubuntu 18.04 bionic
    Ubuntu 17.04Ubuntu 17.04 zesty
    Ubuntu 16.04/Linux Mint 18Ubuntu 16.04/Linux Mint 18 xenial
  4. APT 원본 업데이트를 시작 합니다.Start the APT source update:

    sudo apt-get update
    
  5. 다음과 같이 핵심 도구 패키지를 설치합니다.Install the Core Tools package:

    sudo apt-get install azure-functions-core-tools
    
  6. 확장 번들을 사용 하지 않으려는 경우 Linux 용 .NET Core 2.x SDK를 설치 합니다.If you do not plan to use extension bundles, install .NET Core 2.x SDK for Linux.

로컬 Functions 프로젝트 만들기Create a local Functions project

함수 프로젝트 디렉터리에는 개별 함수에 대한 코드가 포함된 하위 폴더와 함께 host.jsonlocal.settings.json 파일이 포함됩니다.A functions project directory contains the files host.json and local.settings.json, along with subfolders that contain the code for individual functions. 이 디렉터리는 Azure의 함수 앱에 해당합니다.This directory is the equivalent of a function app in Azure. Functions 폴더 구조에 대한 자세한 내용은 Azure Functions 개발자 가이드를 참조하세요.To learn more about the Functions folder structure, see the Azure Functions developers guide.

버전 2.x는 초기화될 때 프로젝트에 대한 기본 언어를 선택해야 하고 추가된 모든 기능은 기본 언어 템플릿을 사용합니다.Version 2.x requires you to select a default language for your project when it is initialized, and all functions added use default language templates. 버전 1.x에서는 함수를 만들 때마다 언어를 지정합니다.In version 1.x, you specify the language each time you create a function.

터미널 창이나 명령 프롬프트에서 다음 명령을 실행하여 프로젝트 및 로컬 Git 리포지토리를 만듭니다.In the terminal window or from a command prompt, run the following command to create the project and local Git repository:

func init MyFunctionProj

프로젝트 이름을 제공하면 해당 이름을 사용한 새 폴더가 생성되고 초기화됩니다.When you provide a project name, a new folder with that name is created and initialized. 그렇지 않으면 현재 폴더는 초기화됩니다.Otherwise, the current folder is initialized.
버전 2.x에서는 명령을 실행할 때 프로젝트에 대한 런타임을 선택해야 합니다.In version 2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python (preview)
powershell (preview)

위쪽/아래쪽 화살표 키를 사용하여 언어를 선택한 다음, Enter 키를 누릅니다.Use the up/down arrow keys to choose a language, then press Enter. JavaScript 또는 TypeScript 함수를 개발 하려는 경우에는 노드를 선택 하 고 언어를 선택 합니다.If you plan to develop JavaScript or TypeScript functions, choose node, and then select the language. TypeScript에는 몇 가지 추가 요구 사항이있습니다.TypeScript has some additional requirements.

출력은 JavaScript 프로젝트에 대한 다음 예제와 유사합니다.The output looks like the following example for a JavaScript project:

Select a worker runtime: node
Writing .gitignore
Writing host.json
Writing local.settings.json
Writing C:\myfunctions\myMyFunctionProj\.vscode\extensions.json
Initialized empty Git repository in C:/myfunctions/myMyFunctionProj/.git/

별도의 설명이 없으면 func init는 다음 옵션(버전 2.x 전용)을 지원합니다.func init supports the following options, which are version 2.x-only, unless otherwise noted:

옵션Option 설명Description
--csx C# 스크립트(.csx) 프로젝트를 초기화합니다.Initializes a C# script (.csx) project. 후속 명령에서 --csx를 지정해야 합니다.You must specify --csx in subsequent commands.
--docker 선택한 --worker-runtime을 기반으로 하는 기본 이미지를 사용하여 컨테이너용 Docker 파일을 만듭니다.Create a Dockerfile for a container using a base image that is based on the chosen --worker-runtime. 사용자 지정 Linux 컨테이너에 게시하려는 경우 이 옵션을 사용합니다.Use this option when you plan to publish to a custom Linux container.
--force 프로젝트에 기존 파일이 있어도 프로젝트를 초기화합니다.Initialize the project even when there are existing files in the project. 이 설정은 이름이 같은 기존 파일을 덮어씁니다.This setting overwrites existing files with the same name. 프로젝트 폴더의 다른 파일에는 영향이 없습니다.Other files in the project folder aren't affected.
--no-source-control -n 버전 1.x에서 Git 리포지토리 기본 작성을 차단합니다.Prevents the default creation of a Git repository in version 1.x. 버전 2.x에서는 Git 리포지토리가 기본적으로 작성되지 않습니다.In version 2.x, the git repository isn't created by default.
--source-control Git 리포지토리 작성 여부를 제어합니다.Controls whether a git repository is created. 리포지토리는 기본적으로 작성되지 않습니다.By default, a repository isn't created. true이면 리포지토리가 작성됩니다.When true, a repository is created.
--worker-runtime 프로젝트의 언어 런타임을 설정합니다.Sets the language runtime for the project. 지원되는 값은 dotnet, node(JavaScript), javapython입니다.Supported values are dotnet, node (JavaScript), java, and python. 설정하지 않으면 초기화 중에 런타임을 선택하라는 메시지가 표시됩니다.When not set, you are prompted to choose your runtime during initialization.

중요

기본적으로 핵심 도구 버전 2.x에서는 .NET 런타임에 대한 함수 앱 프로젝트를 C# 클래스 프로젝트(.csproj)로 만듭니다.By default, version 2.x of the Core Tools creates function app projects for the .NET runtime as C# class projects (.csproj). 이러한 C# 프로젝트는 Visual Studio 또는 Visual Studio Code에서 사용할 수 있으며, 테스트 중에/Azure에 게시할 때 컴파일됩니다.These C# projects, which can be used with Visual Studio or Visual Studio Code, are compiled during testing and when publishing to Azure. 버전 1.x 및 포털에서 생성되는 것과 동일한 C# 스크립트(.csx) 파일을 만들고 작업하려는 경우, 함수를 만들고 배포할 때 --csx 매개 변수를 포함해야 합니다.If you instead want to create and work with the same C# script (.csx) files created in version 1.x and in the portal, you must include the --csx parameter when you create and deploy functions.

확장 등록Register extensions

HTTP 및 타이머 트리거를 제외 하 고 바인딩을 함수 런타임 버전 2.x 확장 패키지로 구현 됩니다.With the exception of HTTP and timer triggers, Functions bindings in runtime version 2.x are implemented as extension packages. 버전에서의 Azure Functions 런타임 2.x를 명시적으로 함수에 사용 되는 바인딩 형식에 대 한 확장을 등록 해야 합니다.In version 2.x of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. 이 예외는 HTTP 바인딩 및 타이머 트리거를 확장 하지 않아도 됩니다.The exceptions to this are HTTP bindings and timer triggers, which do not require extensions.

바인딩 확장을 개별적으로 설치 하도록 선택할 수 있습니다 또는 host.json 프로젝트 파일에 대 한 확장 번들 참조를 추가할 수 있습니다.You can choose to install binding extensions individually, or you can add an extension bundle reference to the host.json project file. 확장 번들에는 여러 바인딩 형식을 사용 하는 경우 패키지 호환성 문제가 있을 가능성이 제거 합니다.Extension bundles removes the chance of having package compatibility issues when using multiple binding types. 권장 되는 바인딩 확장 등록 방법 이며It is the recommended approach for registering binding extensions. 확장 번들에는 또한.NET Core를 설치 하는 요구 사항이 제거 2.x SDK.Extension bundles also removes the requirement of installing the .NET Core 2.x SDK.

확장 번들Extension bundles

바인딩 확장을 설치하는 가장 쉬운 방법은 확장 번들을 사용하도록 설정하는 것입니다.The easiest way to install binding extensions is to enable extension bundles. 번들을 활성화하면 미리 정의된 확장 패키지 세트가 자동으로 설치됩니다.When you enable bundles, a predefined set of extension packages is automatically installed.

확장 번들을 사용하도록 설정하려면 host.json 파일을 열고 다음 코드와 일치하도록 콘텐츠를 업데이트합니다.To enable extension bundles, open the host.json file and update its contents to match the following code:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[1.*, 2.0.0)"
    }
}

자세한 내용은 참조 하세요 등록 하는 Azure Functions 바인딩 확장합니다.To learn more, see Register Azure Functions binding extensions. 바인딩 functions.json 파일에 추가 하기 전에 확장 번들을 host.json에 추가 해야 합니다.You should add extension bundles to the host.json before you add bindings to the functions.json file.

개별 확장 등록Register individual extensions

번들에 없는 확장을 설치 해야 할 경우 특정 바인딩에 대 한 개별 확장 패키지를 수동으로 등록할 수 있습니다.If you need to install extensions that aren't in a bundle, you can manually register individual extension packages for specific bindings.

참고

사용 하 여 확장을 수동으로 등록 func extensions install,.NET Core 있어야 합니다. 2.x SDK가 설치 되어 있습니다.To manually register extensions by using func extensions install, you must have the .NET Core 2.x SDK installed.

함수에 필요한 모든 바인딩을 포함하도록 function.json 파일을 업데이트한 후에 프로젝트 폴더에서 다음 명령을 실행합니다.After you have updated your function.json file to include all the bindings that your function needs, run the following command in the project folder.

func extensions install

이 명령은 function.json 파일을 읽어 필요한 패키지를 확인하고 설치한 후 확장 프로젝트를 다시 빌드합니다.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project. 현재 버전에서 새 바인딩을 추가하되, 기존 바인딩을 업데이트하지는 않습니다.It adds any new bindings at the current version but does not update existing bindings. 새 바인딩을 설치할 때 기존 바인딩을 최신 버전으로 업데이트하려면 --force 옵션을 사용합니다.Use the --force option to update existing bindings to the latest version when installing new ones.

로컬 설정 파일Local settings file

로컬 개발 도구에서 사용 하는 앱 설정, 연결 문자열 및 설정을 저장 하는 로컬 설정입니다.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. 로컬에서 프로젝트를 실행 하는 경우에만 로컬 설정 json 파일의 설정이 사용 됩니다.Settings in the local.settings.json file are used only when you're running projects locally. 로컬 설정 파일의 구조는 다음과 같습니다.The local settings file has this structure:

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "<language worker>",
    "AzureWebJobsStorage": "<connection-string>",
    "AzureWebJobsDashboard": "<connection-string>",
    "MyBindingConnection": "<binding-connection-string>"
  },
  "Host": {
    "LocalHttpPort": 7071,
    "CORS": "*",
    "CORSCredentials": false
  },
  "ConnectionStrings": {
    "SQLConnectionString": "<sqlclient-connection-string>"
  }
}

이러한 설정은 프로젝트를 로컬로 실행할 때 지원 됩니다.These settings are supported when you run projects locally:

설정Setting DescriptionDescription
IsEncrypted 이 설정이로 true설정 되 면 모든 값은 로컬 컴퓨터 키로 암호화 됩니다.When this setting is set to true, all values are encrypted with a local machine key. func settings 명령과 함께 사용됩니다.Used with func settings commands. 기본값은 false여야 합니다.Default value is false.
Values 프로젝트를 로컬로 실행할 때 사용 되는 응용 프로그램 설정 및 연결 문자열의 배열입니다.Array of application settings and connection strings used when a project is running locally. 이러한 키-값 (문자열 문자열) 쌍은 Azure AzureWebJobsStorage에서 함수 앱의 응용 프로그램 설정에 해당 합니다 (예:).These key-value (string-string) pairs correspond to application settings in your function app in Azure, like AzureWebJobsStorage. 많은 트리거와 바인딩에는 Connection Blob storage 트리거와같이 연결 문자열 앱 설정을 참조 하는 속성이 있습니다.Many triggers and bindings have a property that refers to a connection string app setting, like Connection for the Blob storage trigger. 이러한 속성에 대해 Values 배열에 정의 된 응용 프로그램 설정이 필요 합니다.For these properties, you need an application setting defined in the Values array.
AzureWebJobsStorage는 HTTP 이외의 트리거에 필요한 앱 설정입니다.AzureWebJobsStorage is a required app setting for triggers other than HTTP.
함수 런타임의 버전 2.x에는 핵심 도구에서 프로젝트에FUNCTIONS_WORKER_RUNTIME대해 생성 되는 [] 설정이 필요 합니다.Version 2.x of the Functions runtime requires the [FUNCTIONS_WORKER_RUNTIME] setting, which is generated for your project by Core Tools.
Azure storage 에뮬레이터 를 로컬로 설치 하 고를로 AzureWebJobsStorage UseDevelopmentStorage=true설정 하면 핵심 도구는 에뮬레이터를 사용 합니다.When you have the Azure storage emulator installed locally and you set AzureWebJobsStorage to UseDevelopmentStorage=true, Core Tools uses the emulator. 에뮬레이터는 개발 중에 유용 하지만 배포 하기 전에 실제 저장소 연결로 테스트 해야 합니다.The emulator is useful during development, but you should test with an actual storage connection before deployment.
값은 문자열 이어야 하며 JSON 개체 또는 배열이 아닙니다.Values must be strings and not JSON objects or arrays. 설정 이름은 콜론 (:) 또는 이중 밑줄 (__)을 포함할 수 없습니다.Setting names can't include a colon (:) or a double underline (__). 이러한 문자는 런타임에 예약 됩니다.These characters are reserved by the runtime.
Host 이 섹션의 설정은 프로젝트를 로컬로 실행할 때 호스트 프로세스 기능을 사용자 지정 합니다.Settings in this section customize the Functions host process when you run projects locally. 이러한 설정은 Azure에서 프로젝트를 실행 하는 경우에도 적용 되는 호스트 json 설정과는 별개입니다.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort 로컬 Functions 호스트(func host startfunc run)를 실행할 때 사용되는 기본 포트를 설정합니다.Sets the default port used when running the local Functions host (func host start and func run). 명령줄 --port 옵션이이 설정 보다 우선적으로 적용 됩니다.The --port command-line option takes precedence over this setting.
CORS CORS(원본 간 리소스 공유)에 허용된 원본을 정의합니다.Defines the origins allowed for cross-origin resource sharing (CORS). 원본은 공백 없이 쉼표로 구분된 목록으로 제공됩니다.Origins are supplied as a comma-separated list with no spaces. 와일드카드 값(*)이 지원되므로 모든 원본에서 요청할 수 있습니다.The wildcard value (*) is supported, which allows requests from any origin.
CORSCredentials true설정 하면 요청을 withCredentials 허용 합니다.When set to true, allows withCredentials requests.
ConnectionStrings 컬렉션입니다.A collection. 함수 바인딩에서 사용 하는 연결 문자열에는이 컬렉션을 사용 하지 마세요.Don't use this collection for the connection strings used by your function bindings. 이 컬렉션은 일반적으로 ConnectionStrings Entity Framework같이 구성 파일의 섹션에서 연결 문자열을 가져오는 프레임 워크 에서만 사용 됩니다.This collection is used only by frameworks that typically get connection strings from the ConnectionStrings section of a configuration file, like Entity Framework. 이 개체의 연결 문자열은 공급자 유형이 System.Data.SqlClient인 환경에 추가됩니다.Connection strings in this object are added to the environment with the provider type of System.Data.SqlClient. 이 컬렉션의 항목은 다른 앱 설정을 사용 하 여 Azure에 게시 되지 않습니다.Items in this collection aren't published to Azure with other app settings. 이러한 값은 함수 앱 설정의 Connection strings 컬렉션에 명시적으로 추가 해야 합니다.You must explicitly add these values to the Connection strings collection of your function app settings. 함수 코드에서을 SqlConnection 만드는 경우 포털의 응용 프로그램 설정 에서 연결 문자열 값을 다른 연결과 함께 저장 해야 합니다.If you're creating a SqlConnection in your function code, you should store the connection string value with your other connections in Application Settings in the portal.

기본적으로 이러한 설정은 프로젝트가 Azure에 게시될 때 자동으로 마이그레이션되지 않습니다.By default, these settings are not migrated automatically when the project is published to Azure. 게시할 때 --publish-local-settings 스위치를 사용하여 이러한 설정이 Azure의 함수 앱에 추가되었는지 확인합니다.Use the --publish-local-settings switch when you publish to make sure these settings are added to the function app in Azure. ConnectionStrings의 값은 게시되지 않습니다.Note that values in ConnectionStrings are never published.

이 함수 앱 설정 값은 코드에서 환경 변수로 읽을 수도 있습니다.The function app settings values can also be read in your code as environment variables. 자세한 내용은 다음 언어별 참조 항목의 Environment 변수 섹션을 참조하세요.For more information, see the Environment variables section of these language-specific reference topics:

[@No__t_1] 에 대해 유효한 저장소 연결 문자열이 설정 되어 있지 않고 에뮬레이터가 사용 되지 않으면 다음과 같은 오류 메시지가 표시 됩니다.When no valid storage connection string is set for AzureWebJobsStorage and the emulator isn't being used, the following error message is shown:

local.settings.json에 AzureWebJobsStorage 값이 없습니다.Missing value for AzureWebJobsStorage in local.settings.json. 이 값은 HTTP 이외의 모든 트리거에 필요합니다.This is required for all triggers other than HTTP. 'func azure functionapp fetch-app-settings <functionAppName>'을 실행하거나 local.settings.json에서 연결 문자열을 지정할 수 있습니다.You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json.

스토리지 연결 문자열 가져오기Get your storage connection strings

개발을 위해 스토리지 에뮬레이터를 사용하는 경우라도 실제 스토리지 연결을 테스트하고 싶을 수 있습니다.Even when using the storage emulator for development, you may want to test with an actual storage connection. 이미 스토리지 계정을 만든 것으로 가정하면 다음 방법 중 하나에서 유효한 스토리지 연결 문자열을 가져올 수 있습니다.Assuming you have already created a storage account, you can get a valid storage connection string in one of the following ways:

  • Azure 포털From the Azure portal. 스토리지 계정으로 이동하여 설정에서 액세스 키를 선택한 다음, 연결 문자열 값 중 하나를 복사합니다.Navigate to your storage account, select Access keys in Settings, then copy one of the Connection string values.

    Azure Portal에서 연결 문자열 복사

  • Azure Storage Explorer를 사용하여 Azure 계정에 연결합니다.Use Azure Storage Explorer to connect to your Azure account. 탐색기에서 구독을 확장하고, 스토리지 계정을 선택하고, 기본 또는 보조 연결 문자열을 복사합니다.In the Explorer, expand your subscription, select your storage account, and copy the primary or secondary connection string.

    Storage Explorer에서 연결 문자열 복사

  • 다음 중 한 명령을 사용하여 Azure에서 연결 문자열을 다운로드하려면 핵심 도구를 사용합니다.Use Core Tools to download the connection string from Azure with one of the following commands:

    • 기존 함수 앱에서 모든 설정을 다운로드합니다.Download all settings from an existing function app:

      func azure functionapp fetch-app-settings <FunctionAppName>
      
    • 특정 스토리지 계정에 대한 연결 문자열을 가져옵니다.Get the Connection string for a specific storage account:

      func azure storage fetch-connection-string <StorageAccountName>
      

      Azure에 로그인하지 않은 경우 수행하라는 메시지가 나타납니다.When you are not already signed in to Azure, you are prompted to do so.

함수 만들기Create a function

함수를 만들려면 다음 명령을 실행합니다.To create a function, run the following command:

func new

버전 2.x에서 func new를 실행하는 경우 함수 앱의 기본 언어에서 템플릿을 선택하라는 메시지가 나타난 다음, 함수에 대한 이름을 선택하라는 메시지도 표시됩니다.In version 2.x, when you run func new you are prompted to choose a template in the default language of your function app, then you are also prompted to choose a name for your function. 버전 1.x에서는 언어를 선택하라는 메시지도 표시됩니다.In version 1.x, you are also prompted to choose the language.

Select a language: Select a template:
Blob trigger
Cosmos DB trigger
Event Grid trigger
HTTP trigger
Queue trigger
SendGrid
Service Bus Queue trigger
Service Bus Topic trigger
Timer trigger

함수 코드는 다음 큐 트리거 출력에서 알 수 있듯이 제공된 함수 이름으로 하위 폴더에 생성됩니다.Function code is generated in a subfolder with the provided function name, as you can see in the following queue trigger output:

Select a language: Select a template: Queue trigger
Function name: [QueueTriggerJS] MyQueueTrigger
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\index.js
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\readme.md
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\sample.dat
Writing C:\myfunctions\myMyFunctionProj\MyQueueTrigger\function.json

다음 인수를 사용하는 명령에서 이러한 옵션을 지정할 수도 있습니다.You can also specify these options in the command using the following arguments:

인수Argument 설명Description
--csx (버전 2.x) 버전 1.x 및 포털에서 사용되는 것과 동일한 C# 스크립트(.csx) 템플릿을 생성합니다.(Version 2.x) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language -l C#, F# 또는 JavaScript와 같은 템플릿 프로그래밍 언어The template programming language, such as C#, F#, or JavaScript. 이 옵션은 버전 1.x에서 필요합니다.This option is required in version 1.x. 버전 2.x에서는 이 옵션을 사용하지 않거나 작업자 런타임과 일치하는 언어를 선택하세요.In version 2.x, do not use this option or choose a language that matches the worker runtime.
--name -n 함수 이름The function name.
--template -t func templates list 명령을 사용하여 지원되는 각 언어에 대해 사용 가능한 템플릿의 전체 목록을 확인합니다.Use the func templates list command to see the complete list of available templates for each supported language.

예를 들어 단일 명령에서 JavaScript HTTP 트리거를 만들려면 다음을 실행합니다.For example, to create a JavaScript HTTP trigger in a single command, run:

func new --template "Http Trigger" --name MyHttpTrigger

단일 명령에서 큐 트리거 함수를 만들려면 다음을 실행합니다.To create a queue-triggered function in a single command, run:

func new --template "Queue Trigger" --name QueueTriggerJS

로컬로 함수 실행Run functions locally

Functions 프로젝트를 실행하려면 Functions 호스트를 실행합니다.To run a Functions project, run the Functions host. 호스트는 프로젝트의 모든 함수에 대해 트리거를 사용 하도록 설정 합니다.The host enables triggers for all functions in the project.

버전 2.xVersion 2.x

런타임의 버전 2.x에서 시작 명령은 프로젝트 언어에 따라 달라 집니다.In version 2.x of the runtime, the start command varies, depending on your project language.

C#C#

func start --build

JavaScriptJavaScript

func start

TypeScriptTypeScript

npm install
npm start     

버전 1.xVersion 1.x

함수 런타임의 버전 1.x에는 다음 예제와 같이 host 명령이 필요 합니다.Version 1.x of the Functions runtime requires the host command, as in the following example:

func host start

func start은 다음 옵션을 지원합니다.func start supports the following options:

옵션Option 설명Description
--no-build 실행 전에 현재 프로젝트를 빌드하지 않도록 합니다.Do no build current project before running. dotnet 프로젝트에만 해당합니다.For dotnet projects only. 기본값은 false로 설정하는 것입니다.Default is set to false. 버전 2.x 전용입니다.Version 2.x only.
--cert 프라이빗 키가 포함된 .pfx 파일에 대한 경로입니다.The path to a .pfx file that contains a private key. --useHttps을 통해서만 사용됩니다.Only used with --useHttps. 버전 2.x 전용입니다.Version 2.x only.
--cors-credentials 원본 간 인증된 요청(즉, 쿠키 및 인증 헤더)을 허용하며, 버전 2.x 전용입니다.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Version 2.x only.
--cors CORS 원본의 공백 없이 쉼표로 구분된 목록입니다.A comma-separated list of CORS origins, with no spaces.
--language-worker 언어 작업자를 구성하는 인수입니다.Arguments to configure the language worker. 버전 2.x 전용입니다.Version 2.x only.
--nodeDebugPort -n 사용할 노드 디버거의 포트입니다.The port for the node debugger to use. 기본값: launch.json 값 또는 5858Default: A value from launch.json or 5858. 버전 1.x 전용입니다.Version 1.x only.
--password .pfx 파일에 대한 암호가 포함된 암호 또는 파일입니다.Either the password or a file that contains the password for a .pfx file. --cert을 통해서만 사용됩니다.Only used with --cert. 버전 2.x 전용입니다.Version 2.x only.
--port -p 수신 대기할 로컬 포트입니다.The local port to listen on. 기본값: 7071Default value: 7071.
--pause-on-error 프로세스를 종료하기 전에 추가 입력에 대해 일시 중지합니다.Pause for additional input before exiting the process. IDE(통합 개발 환경)에서 Core Tools를 시작할 때만 사용됩니다.Used only when launching Core Tools from an integrated development environment (IDE).
--script-root --prefix 실행하거나 배포할 함수 앱의 루트 경로를 지정하는 데 사용됩니다.Used to specify the path to the root of the function app that is to be run or deployed. 하위 폴더에 프로젝트 파일을 생성하는 컴파일된 프로젝트용으로 사용됩니다.This is used for compiled projects that generate project files into a subfolder. 예를 들어 C# 클래스 라이브러리 프로젝트를 작성할 때는 MyProject/bin/Debug/netstandard2.0과 같은 경로를 사용하여 root 하위 폴더에 host.json, local.settings.json 및 function.json 파일이 생성됩니다.For example, when you build a C# class library project, the host.json, local.settings.json, and function.json files are generated in a root subfolder with a path like MyProject/bin/Debug/netstandard2.0. 이 경우 접두사를 --script-root MyProject/bin/Debug/netstandard2.0으로 설정합니다.In this case, set the prefix as --script-root MyProject/bin/Debug/netstandard2.0. 이 접두사는 Azure에서 실행할 때의 함수 앱 루트입니다.This is the root of the function app when running in Azure.
--timeout -t Functions 호스트를 시작할 제한 시간(초)입니다.The timeout for the Functions host to start, in seconds. 기본값: 20초Default: 20 seconds.
--useHttps http://localhost:{port}가 아닌 https://localhost:{port}에 바인딩합니다.Bind to https://localhost:{port} rather than to http://localhost:{port}. 기본적으로 이 옵션은 사용자 컴퓨터에 신뢰할 수 있는 인증서를 만듭니다.By default, this option creates a trusted certificate on your computer.

Functions 호스트가 시작되면 HTTP 트리거 함수의 URL이 출력됩니다.When the Functions host starts, it outputs the URL of HTTP-triggered functions:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

중요

로컬로 실행할 때 인증은 HTTP 엔드포인트에 적용되지 않습니다.When running locally, authentication isn't enforced for HTTP endpoints. 즉, 모든 로컬 HTTP 요청은 authLevel = "anonymous"로 처리됩니다.This means that all local HTTP requests are handled as authLevel = "anonymous". 자세한 내용은 HTTP 바인딩 문서를 참조하세요.For more information, see the HTTP binding article.

테스트 데이터를 함수에 전달Passing test data to a function

로컬로 함수를 테스트하려면 Functions 호스트를 시작하고 HTTP 요청을 사용하여 로컬 서버에서 엔드포인트를 호출합니다.To test your functions locally, you start the Functions host and call endpoints on the local server using HTTP requests. 호출하는 엔드포인트는 함수의 형식에 따라 달라집니다.The endpoint you call depends on the type of function.

참고

이 항목의 예제에서는 cURL 도구를 사용하여 터미널 또는 명령 프롬프트의 HTTP 요청을 보냅니다.Examples in this topic use the cURL tool to send HTTP requests from the terminal or a command prompt. 로컬 서버에 HTTP 요청을 보내도록 선택한 도구를 사용할 수 있습니다.You can use a tool of your choice to send HTTP requests to the local server. 말아 넘기기 도구는 Linux 기반 시스템 및 Windows 10 빌드 17063 이상에서 기본적으로 사용할 수 있습니다.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. 이전 창에서는 먼저 말아 넘기기 도구를 다운로드 하 여 설치 해야 합니다.On older Windows, you must first download and install the cURL tool.

함수를 테스트하는 방법에 대한 일반적인 내용은 Azure Functions에서 코드를 테스트하기 위한 전략을 참조하세요.For more general information on testing functions, see Strategies for testing your code in Azure Functions.

HTTP 및 웹후크 트리거된 함수HTTP and webhook triggered functions

다음 엔드포인트를 호출하여 HTTP 및 웹후크 트리거된 함수를 로컬로 실행합니다.You call the following endpoint to locally run HTTP and webhook triggered functions:

http://localhost:{port}/api/{function_name}

Functions 호스트가 수신 대기 중인 동일한 서버 이름 및 포트를 사용하도록 합니다.Make sure to use the same server name and port that the Functions host is listening on. Function 호스트를 시작할 때 생성된 출력에서 이 항목을 확인합니다.You see this in the output generated when starting the Function host. 트리거에서 지원하는 HTTP 메서드를 사용하여 이 URL을 호출할 수 있습니다.You can call this URL using any HTTP method supported by the trigger.

다음 cURL 명령은 이름 매개 변수를 쿼리 문자열에 전달한 GET 요청에서 MyHttpTrigger 빠른 시작 함수를 트리거합니다.The following cURL command triggers the MyHttpTrigger quickstart function from a GET request with the name parameter passed in the query string.

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

다음 예제는 요청 본문에서 _이름_을 전달하는 POST 요청에서 호출되는 동일한 함수입니다.The following example is the same function called from a POST request passing name in the request body:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'

쿼리 문자열에서 데이터를 전달하는 브라우저에서 GET 요청을 수행할 수 있습니다.You can make GET requests from a browser passing data in the query string. 다른 모든 HTTP 메서드에서 cURL, Fiddler, Postman 또는 비슷한 HTTP 테스트 도구를 사용해야 합니다.For all other HTTP methods, you must use cURL, Fiddler, Postman, or a similar HTTP testing tool.

HTTP가 아닌 트리거된 함수Non-HTTP triggered functions

HTTP 트리거와 웹후크가 아닌 다른 모든 종류의 함수에서 관리 엔드포인트를 호출하여 로컬로 함수를 테스트할 수 있습니다.For all kinds of functions other than HTTP triggers and webhooks, you can test your functions locally by calling an administration endpoint. 로컬 서버에서 HTTP POST 요청으로 이 엔드포인트를 호출하면 함수를 트리거합니다.Calling this endpoint with an HTTP POST request on the local server triggers the function. 필요에 따라 POST 요청의 본문에서 실행에 테스트 데이터를 전달할 수 있습니다.You can optionally pass test data to the execution in the body of the POST request. 이 기능은 Azure Portal에서 테스트 탭과 비슷합니다.This functionality is similar to the Test tab in the Azure portal.

다음 관리자 엔드포인트를 호출하여 HTTP가 아닌 함수를 트리거합니다.You call the following administrator endpoint to trigger non-HTTP functions:

http://localhost:{port}/admin/functions/{function_name}

함수의 관리자 엔드포인트에 테스트 데이터를 전달하려면 POST 요청 메시지의 본문에서 데이터를 제공해야 합니다.To pass test data to the administrator endpoint of a function, you must supply the data in the body of a POST request message. 메시지 본문에는 다음 JSON 형식이 필요합니다.The message body is required to have the following JSON format:

{
    "input": "<trigger_input>"
}

<trigger_input> 값에는 함수에 필요한 형식의 데이터가 포함됩니다.The <trigger_input> value contains data in a format expected by the function. 다음 cURL 예제는 QueueTriggerJS 함수에 대한 POST 요청입니다.The following cURL example is a POST to a QueueTriggerJS function. 이 경우에 입력은 큐에 위치해야 하는 메시지에 해당하는 문자열입니다.In this case, the input is a string that is equivalent to the message expected to be found in the queue.

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTriggerJS

1.x 버전에서 func run 명령 사용Using the func run command in version 1.x

중요

func run 명령은 도구의 2.x 버전에서 지원되지 않습니다.The func run command is not supported in version 2.x of the tools. 자세한 내용은 Azure Functions 런타임 버전을 대상으로 지정하는 방법 항목을 참조하세요.For more information, see the topic How to target Azure Functions runtime versions.

func run <FunctionName>을 사용하여 함수를 직접 호출하고 함수에 대한 입력 데이터를 제공할 수도 있습니다.You can also invoke a function directly by using func run <FunctionName> and provide input data for the function. 이 명령은 Azure Portal에서 테스트 탭을 사용하여 함수를 실행하는 것과 비슷합니다.This command is similar to running a function using the Test tab in the Azure portal.

func run은 다음 옵션을 지원합니다.func run supports the following options:

옵션Option 설명Description
--content -c 인라인 콘텐츠입니다.Inline content.
--debug -d 함수를 실행하기 전에 호스트 프로세스에 디버거를 연결합니다.Attach a debugger to the host process before running the function.
--timeout -t 로컬 Functions 호스트가 준비될 때까지의 대기 시간(초)입니다.Time to wait (in seconds) until the local Functions host is ready.
--file -f 콘텐츠로 사용할 파일 이름입니다.The file name to use as content.
--no-interactive 입력에 대한 메시지를 표시하지 않습니다.Does not prompt for input. 자동화 시나리오에 유용합니다.Useful for automation scenarios.

예를 들어 HTTP 트리거 함수를 호출하고 콘텐츠 본문을 전달하려면 다음 명령을 실행합니다.For example, to call an HTTP-triggered function and pass content body, run the following command:

func run MyHttpTrigger -c '{\"name\": \"Azure\"}'

Azure에 게시Publish to Azure

Azure Functions Core Tools는 Zip 배포 및 사용자 지정 Docker 컨테이너배포를 통해 함수 앱에 함수 프로젝트 파일을 직접 배포 하는 두 가지 유형의 배포를 지원 합니다.The Azure Functions Core Tools supports two types of deployment: deploying function project files directly to your function app via Zip Deploy and deploying a custom Docker container. Azure 구독에서코드를 배포할 함수 앱을 이미 만들어야 합니다.You must have already created a function app in your Azure subscription, to which you'll deploy your code. 컴파일해야 하는 프로젝트는 이진 파일을 배포할 수 있는 방식으로 빌드해야 합니다.Projects that require compilation should be built so that the binaries can be deployed.

프로젝트 폴더는 게시 하지 않아야 하는 언어별 파일 및 디렉터리를 포함할 수 있습니다.A project folder may contain language-specific files and directories that shouldn't be published. 제외 된 항목은 루트 프로젝트 폴더의 funcignore 파일에 나열 됩니다.Excluded items are listed in a .funcignore file in the root project folder.

배포 (프로젝트 파일)Deployment (project files)

Azure의 함수 앱에 로컬 코드를 게시 하려면 publish 명령을 사용 합니다.To publish your local code to a function app in Azure, use the publish command:

func azure functionapp publish <FunctionAppName>

이 명령은 Azure에서 기존 함수 앱에 게시합니다.This command publishes to an existing function app in Azure. 구독에 존재 하지 않는 <FunctionAppName>에 게시 하려고 하면 오류가 발생 합니다.You'll get an error if you try to publish to a <FunctionAppName> that doesn't exist in your subscription. Azure CLI를 사용하여 명령 프롬프트 또는 터미널 창에서 함수 앱을 만드는 방법을 알아보려면 서버를 사용하지 않고 실행하기 위한 Function App 만들기를 참조하세요.To learn how to create a function app from the command prompt or terminal window using the Azure CLI, see Create a Function App for serverless execution. 기본적으로이 명령은 원격 빌드 를 사용 하 고 배포 패키지에서 실행되도록 앱을 배포 합니다.By default, this command uses remote build and deploys your app to run from the deployment package. 권장 배포 모드를 사용 하지 않도록 설정 하려면 --nozip 옵션을 사용 합니다.To disable this recommended deployment mode, use the --nozip option.

중요

Azure Portal에서 함수 앱을 만들 때는 기본적으로 Function 런타임 버전 2.x가 사용됩니다.When you create a function app in the Azure portal, it uses version 2.x of the Function runtime by default. 함수 앱이 런타임 버전 1.x를 사용하도록 하려면 버전 1.x에서 실행의 지침을 따르세요.To make the function app use version 1.x of the runtime, follow the instructions in Run on version 1.x. 기존 함수가 있는 함수 앱의 런타임 버전은 변경할 수 없습니다.You can't change the runtime version for a function app that has existing functions.

다음 게시 옵션은 1. x 및 2.x 버전 모두에 적용 됩니다.The following publish options apply for both versions, 1.x and 2.x:

옵션Option 설명Description
--publish-local-settings -i local.settings.json의 설정을 Azure에 게시하고, 설정이 이미 있는 경우 덮어쓸지 묻습니다.Publish settings in local.settings.json to Azure, prompting to overwrite if the setting already exists. 저장소 에뮬레이터를 사용 하는 경우 먼저 앱 설정을 실제 저장소 연결로 변경 합니다.If you are using the storage emulator, first change the app setting to an actual storage connection.
--overwrite-settings -y --publish-local-settings -i 사용 시 앱 설정을 덮어쓴다는 메시지를 표시하지 않습니다.Suppress the prompt to overwrite app settings when --publish-local-settings -i is used.

다음 게시 옵션은 버전 2.x에서만 지원됩니다.The following publish options are only supported in version 2.x:

옵션Option 설명Description
--publish-settings-only -o 설정만 게시하고 콘텐츠는 건너뜁니다.Only publish settings and skip the content. 기본값은 프롬프트입니다.Default is prompt.
--list-ignored-files .funcignore 파일을 기준으로 하여 게시 중에 무시되는 파일 목록을 표시합니다.Displays a list of files that are ignored during publishing, which is based on the .funcignore file.
--list-included-files .funcignore 파일을 기준으로 하여 게시되는 파일 목록을 표시합니다.Displays a list of files that are published, which is based on the .funcignore file.
--nozip 기본 Run-From-Package 모드를 끕니다.Turns the default Run-From-Package mode off.
--build-native-deps Python 함수 앱을 게시할 때 .wheels 폴더 생성을 건너뜁니다.Skips generating .wheels folder when publishing python function apps.
--build [-b] Linux 함수 앱에 배포할 때 빌드 작업을 수행 합니다.Performs build action when deploying to a Linux function app. (수락: 원격, 로컬)(accepts: remote, local)
--additional-packages 네이티브 종속성을 빌드할 때 설치할 패키지 목록입니다.List of packages to install when building native dependencies. 예: python3-dev libevent-dev.For example: python3-dev libevent-dev.
--force 특정 시나리오에서 게시 전 확인을 무시합니다.Ignore pre-publishing verification in certain scenarios.
--csx C# 스크립트(.csx) 프로젝트를 게시합니다.Publish a C# script (.csx) project.
--no-build dotnet 함수 작성을 건너뜁니다.Skip building dotnet functions.
--dotnet-cli-params 컴파일된 C#(.csproj) 함수를 게시할 때 Core Tools는 'dotnet build --output bin/publish'를 호출합니다.When publishing compiled C# (.csproj) functions, the core tools calls 'dotnet build --output bin/publish'. 이 명령으로 전달하는 모든 매개 변수는 명령줄에 추가됩니다.Any parameters passed to this will be appended to the command line.

배포 (사용자 지정 컨테이너)Deployment (custom container)

Azure Functions를 사용 하 여 사용자 지정 Docker 컨테이너에 함수 프로젝트를 배포할 수 있습니다.Azure Functions lets you deploy your function project in a custom Docker container. 자세한 내용은 사용자 지정 이미지를 사용하여 Linux에서 함수 만들기를 참조하세요.For more information, see Create a function on Linux using a custom image. 사용자 지정 컨테이너에는 Dockerfile이 있어야 합니다.Custom containers must have a Dockerfile. Dockerfile을 사용 하 여 앱을 만들려면 func init에서--dockerfile 옵션을 사용 합니다.To create an app with a Dockerfile, use the --dockerfile option on func init.

func deploy

다음과 같은 사용자 지정 컨테이너 배포 옵션을 사용할 수 있습니다.The following custom container deployment options are available:

옵션Option 설명Description
--registry 현재 사용자가 로그인되어 있는 Docker 레지스트리의 이름입니다.The name of a Docker Registry the current user signed-in to.
--platform 함수 앱의 호스팅 플랫폼입니다.Hosting platform for the function app. 유효한 옵션은 kubernetes입니다.Valid options are kubernetes
--name 함수 앱 이름입니다.Function app name.
--max 필요한 경우 배포할 함수 앱 인스턴스의 최대 수를 설정합니다.Optionally, sets the maximum number of function app instances to deploy to.
--min 필요한 경우 배포할 함수 앱 인스턴스의 최소 수를 설정합니다.Optionally, sets the minimum number of function app instances to deploy to.
--config 선택적 배포 구성 파일을 설정합니다.Sets an optional deployment configuration file.

함수 모니터링Monitoring functions

함수 실행을 모니터링 하는 권장 방법은 Azure 애플리케이션 Insights와 통합 하는 것입니다.The recommended way to monitor the execution of your functions is by integrating with Azure Application Insights. 실행 로그를 로컬 컴퓨터로 스트리밍할 수도 있습니다.You can also stream execution logs to your local computer. 자세히 알아보려면 Azure Functions 모니터링을 참조하세요.To learn more, see Monitor Azure Functions.

Application Insights 통합 사용Enable Application Insights integration

Azure Portal에서 함수 앱을 만들 때 기본적으로 Application Insights 통합이 수행 됩니다.When you create a function app in the Azure portal, the Application Insights integration is done for you by default. 그러나 Azure CLI를 사용하여 함수 앱을 만드는 경우 Azure에서 함수 앱 통합이 수행되지 않습니다.However, when you create your function app by using the Azure CLI, the integration in your function app in Azure isn't done.

Functions를 사용하면 Azure Portal에서 함수 앱에 Application Insights 통합을 쉽게 추가할 수 있습니다.Functions makes it easy to add Application Insights integration to a function app from the Azure portal.

  1. 포털에서 모든 서비스 > 함수 앱을 선택하고 해당 함수 앱을 선택한 다음, 창 맨 위에 있는 Application Insights를 선택합니다.In the portal, select All services > Function Apps, select your function app, and then select the Application Insights banner at the top of the window

    포털에서 Application Insights를 사용하도록 설정

  2. 이미지 아래 표에 지정된 설정을 사용하여 Application Insights 리소스를 만듭니다.Create an Application Insights resource by using the settings specified in the table below the image.

    Application Insights 리소스 만들기

    설정Setting 제안 값Suggested value 설명Description
    NameName 고유한 앱 이름Unique app name 함수 앱과 동일한 이름을 사용하는 것이 가장 간단하며, 구독 내에서 고유해야 합니다.It's easiest to use the same name as your function app, which must be unique in your subscription.
    위치:Location 서유럽West Europe 가능하다면 함수 앱과 동일한 지역을 사용하거나 해당 지역에 근접한 지역을 사용합니다.If possible, use the same region as your function app, or one that's close to that region.
  3. 확인을 선택합니다.Select OK. 함수 앱과 동일한 리소스 그룹 및 구독에 Application Insights 리소스가 만들어집니다.The Application Insights resource is created in the same resource group and subscription as your function app. 리소스를 만든 후 Application Insights 창을 닫습니다.After the resource is created, close the Application Insights window.

  4. 함수 앱으로 돌아가서 애플리케이션 설정을 선택한 다음, 애플리케이션 설정이 나올 때까지 아래로 스크롤합니다.Back in your function app, select Application settings, and then scroll down to Application settings. APPINSIGHTS_INSTRUMENTATIONKEY라는 설정이 표시되면 Azure에서 실행 중인 함수 앱에 대해 Application Insights 통합이 활성화됩니다.If you see a setting named APPINSIGHTS_INSTRUMENTATIONKEY, Application Insights integration is enabled for your function app running in Azure.

스트리밍 로그 사용Enable streaming logs

로컬 컴퓨터의 명령줄 세션에서 함수에 의해 생성 되는 로그 파일의 스트림을 볼 수 있습니다.You can view a stream of log files being generated by your functions in a command-line session on your local computer.

네이티브 스트리밍 로그Native streaming logs

기본 제공 로그 스트리밍Built-in log streaming

다음 예제 logstream 와 같이 Azure에서 실행 중인 특정 함수 앱의 스트리밍 로그 수신을 시작 하려면 옵션을 사용 합니다.Use the logstream option to start receiving streaming logs of a specific function app running in Azure, as in the following example:

func azure functionapp logstream <FunctionAppName>

라이브 메트릭 스트림Live Metrics Stream

다음 예제와 같이 --browser 옵션을 포함 하 여 새 브라우저 창에서 함수 앱에 대 한 라이브 메트릭 스트림 를 볼 수도 있습니다.You can also view the Live Metrics Stream for your function app in a new browser window by including the --browser option, as in the following example:

func azure functionapp logstream <FunctionAppName> --browser

이 유형의 스트리밍 로그에는 함수 앱에 대 한 Application Insights 통합을 사용 하도록 설정 해야 합니다.This type of streaming logs requires that you enable Application Insights integration for your function app.

다음 단계Next steps

Azure Functions 핵심 도구는 오픈 소스이며 GitHub에서 호스팅됩니다.Azure Functions Core Tools is open source and hosted on GitHub.
버그 또는 기능 요청을 제출하려면 GitHub 문제를 개설합니다.To file a bug or feature request, open a GitHub issue.