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

Azure Functions Core Tools를 사용하면 명령 프롬프트나 터미널에서 함수를 개발하고 테스트할 수 있습니다.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 버전Core Tools versions

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

별도로 언급 하지 않는 한이 문서의 예는 버전 2.x에 대 한 것입니다.Unless otherwise noted, the examples in this article are for version 3.x.

필수 구성 요소Prerequisites

Azure Functions Core Tools 현재 Azure 계정으로 인증 하는 Azure CLI에 따라 달라 집니다.Azure Functions Core Tools currently depends on the Azure CLI for authenticating with your Azure account. 즉, Azure Functions Core Tools에서 Azure에 게시할 수 있도록 Azure CLI를 로컬로 설치 해야 합니다.This means that you must install the Azure CLI locally to be able to publish to Azure from Azure Functions Core Tools.

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.

버전 3(sp3) 및 2.xVersion 3.x and 2.x

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

중요

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

다음 단계에서는 Windows installer (MSI)를 사용 하 여 핵심 도구 v3. x를 설치 합니다.The following steps use a Windows installer (MSI) to install Core Tools v3.x. 핵심 도구 v2. x를 설치 하는 데 필요한 다른 패키지 기반 설치 관리자에 대 한 자세한 내용은 핵심 도구 추가정보를 참조 하세요.For more information about other package-based installers, which are required to install Core Tools v2.x, see the Core Tools readme.

  1. Windows 버전에 따라 핵심 도구 설치 관리자를 다운로드 하 여 실행 합니다.Download and run the Core Tools installer, based on your version of Windows:

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

로컬 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.

버전 3.x/2.x의 경우 프로젝트를 초기화할 때 프로젝트에 대 한 기본 언어를 선택 해야 합니다.Version 3.x/2.x requires you to select a default language for your project when it is initialized. 버전 3.x/2.x에서 추가 된 모든 함수는 기본 언어 템플릿을 사용 합니다.In version 3.x/2.x, 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.
버전 3(sp3)/2.x에서 명령을 실행할 때 프로젝트에 대 한 런타임을 선택 해야 합니다.In version 3.x/2.x, when you run the command you must choose a runtime for your project.

Select a worker runtime:
dotnet
node
python 
powershell

위쪽/아래쪽 화살표 키를 사용하여 언어를 선택한 다음, 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는 다음과 같은 옵션을 지원 합니다 .이 옵션은 다른 설명이 없는 경우 버전 3(sp3)/x-only입니다.func init supports the following options, which are version 3.x/2.x-only, unless otherwise noted:

옵션Option 설명Description
--csx 버전 1.x 동작인 .NET 함수를 c # 스크립트로 만듭니다.Creates .NET functions as C# script, which is the version 1.x behavior. 에만 유효 --worker-runtime dotnet 합니다.Valid only with --worker-runtime dotnet.
--docker 선택한을 기반으로 하는 기본 이미지를 사용 하 여 컨테이너에 대 한 Dockerfile을 만듭니다 --worker-runtime .Creates 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.
--docker-only Dockerfile을 기존 프로젝트에 추가 합니다.Adds a Dockerfile to an existing project. 지정 되지 않았거나 local.settings.js에 설정 되어 있지 않은 경우 작업자-런타임에 대 한 메시지를 표시 합니다.Prompts for the worker-runtime if not specified or set in local.settings.json. 사용자 지정 Linux 컨테이너에 기존 프로젝트를 게시할 계획인 경우이 옵션을 사용 합니다.Use this option when you plan to publish an existing project 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.
--language 언어별 프로젝트를 초기화 합니다.Initializes a language specific project. 로 설정 되 면 현재 지원 --worker-runtime node 됩니다.Currently supported when --worker-runtime set to node. 옵션은 typescriptjavascript입니다.Options are typescript and javascript. 또는를 사용할 수도 --worker-runtime javascript 있습니다 --worker-runtime typescript .You can also use --worker-runtime javascript or --worker-runtime typescript.
--managed-dependencies 관리 되는 종속성을 설치 합니다.Installs managed dependencies. 현재 PowerShell worker runtime 에서만이 기능을 지원 합니다.Currently, only the PowerShell worker runtime supports this functionality.
--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. 지원 되는 값은 csharp , dotnet , javascript , node (JavaScript),, powershell pythontypescript 입니다.Supported values are: csharp, dotnet, javascript,node (JavaScript), powershell, python, and typescript. Java의 경우 Maven를 사용 합니다. 설정 하지 않은 경우 초기화 하는 동안 런타임을 선택 하 라는 메시지가 표시 됩니다.For Java, use Maven.When not set, you're prompted to choose your runtime during initialization.

중요

기본적으로 버전 2.x 이상 버전의 핵심 도구는 .NET 런타임에 대 한 함수 앱 프로젝트를 c # 클래스 프로젝트 (.csproj)로 만듭니다.By default, version 2.x and later versions of the Core Tools create 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 and higher are implemented as extension packages. HTTP 바인딩 및 타이머 트리거에는 확장이 필요 하지 않습니다.HTTP bindings and timer triggers don't require extensions.

다양 한 확장 패키지 간의 비 호환성을 줄이기 위해 함수를 사용 하 여 프로젝트 파일의 host.js확장 번들을 참조할 수 있습니다.To reduce incompatibilities between the various extension packages, Functions lets you reference an extension bundle in your host.json project file. 확장 번들을 사용 하지 않도록 선택 하는 경우 .NET Core 2.x SDK를 로컬에 설치 하 고 함수 프로젝트를 사용 하 여 확장명 .csproj를 유지 해야 합니다.If you choose not to use extension bundles, you also need to install .NET Core 2.x SDK locally and maintain an extensions.csproj with your functions project.

버전 2.x 및 Azure Functions 런타임 이외에 함수에 사용 되는 바인딩 형식에 대 한 확장을 명시적으로 등록 해야 합니다.In version 2.x and beyond of the Azure Functions runtime, you have to explicitly register the extensions for the binding types used in your functions. 바인딩 확장을 개별적으로 설치 하도록 선택 하거나 프로젝트 파일의 host.js에 확장 번들 참조를 추가할 수 있습니다.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.

확장 번들 사용Use 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. 파일의 function.js에 바인딩을 추가 하기 전에 host.js에 확장 번들을 추가 해야 합니다.You should add extension bundles to the host.json before you add bindings to the function.json file.

명시적으로 확장 설치Explicitly install extensions

확장 번들을 사용할 수 없는 경우 Azure Functions Core Tools를 로컬로 사용 하 여 프로젝트에 필요한 특정 확장 패키지를 설치할 수 있습니다.If you aren't able to use extension bundles, you can use Azure Functions Core Tools locally to install the specific extension packages required by your project.

참고

핵심 도구를 사용 하 여 확장을 수동으로 설치 하려면 .NET Core 2.x SDK가 설치 되어 있어야 합니다.To manually install extensions by using Core Tools, you must have the .NET Core 2.x SDK installed.

확장을 명시적으로 설치 하면 확장명이 .csproj 인 .NET 프로젝트 파일이 프로젝트의 루트에 추가 됩니다.When you explicitly install extensions, a .NET project file named extensions.csproj is added to the root of your project. 이 파일은 함수에 필요한 NuGet 패키지 집합을 정의 합니다.This file defines the set of NuGet packages required by your functions. 이 파일에서 NuGet 패키지 참조 를 사용할 수 있지만, 핵심 도구를 사용 하면 파일을 수동으로 편집 하지 않고도 확장을 설치할 수 있습니다.While you can work with the NuGet package references in this file, Core Tools lets you install extensions without having to manually edit the file.

핵심 도구를 사용 하 여 로컬 프로젝트에 필요한 확장을 설치 하는 방법에는 여러 가지가 있습니다.There are several ways to use Core Tools to install the required extensions in your local project.

모든 확장 설치Install all extensions

다음 명령을 사용 하 여 로컬 프로젝트의 바인딩에서 사용 하는 모든 확장 패키지를 자동으로 추가 합니다.Use the following command to automatically add all extension packages used by the bindings in your local project:

func extensions install

이 명령은 파일 의function.js 를 읽어 필요한 패키지를 확인 하 고, 설치 하 고, 확장 프로젝트 (.csproj)를 다시 빌드합니다.The command reads the function.json file to see which packages you need, installs them, and rebuilds the extensions project (extensions.csproj). 현재 버전에서 새 바인딩을 추가하되, 기존 바인딩을 업데이트하지는 않습니다.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.

특정 확장 설치Install a specific extension

다음 명령을 사용 하 여 특정 버전 (이 경우 저장소 확장)에 특정 확장 패키지를 설치 합니다.Use the following command to install a specific extension package at a specific version, in this case the Storage extension:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 4.0.2

로컬 설정 파일Local settings file

파일의 local.settings.js에는 로컬 개발 도구에서 사용 하는 앱 설정, 연결 문자열 및 설정이 저장 됩니다.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. local.settings.js파일의 설정은 프로젝트를 로컬로 실행 하는 경우에만 사용 됩니다.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 설명Description
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 and higher 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에서 프로젝트를 실행 하는 경우에도 적용 되는 설정에 대 한 host.js와는 별개입니다.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:

에 대해 유효한 저장소 연결 문자열을 설정 하지 않고 AzureWebJobsStorage 에뮬레이터를 사용 하지 않는 경우 다음 오류 메시지가 표시 됩니다.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

개발에 Microsoft Azure Storage 에뮬레이터를 사용 하는 경우에도 실제 저장소 연결로 테스트 하는 것이 좋습니다.Even when using the Microsoft Azure 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 Portal에서 저장소 계정을 검색 하 고 선택 합니다.From the Azure portal, search for and select Storage accounts. Azure Portal에서 저장소 계정 선택Select Storage accounts from Azure portal

    저장소 계정을 선택 하 고, 설정에서 액세스 키 를 선택한 다음, 연결 문자열 값 중 하나를 복사 합니다.Select your storage account, select Access keys in Settings, then copy one of the Connection string values. Azure Portal에서 연결 문자열 복사Copy connection string from Azure portal

  • Azure Storage Explorer를 사용하여 Azure 계정에 연결합니다.Use Azure Storage Explorer to connect to your Azure account. 탐색기에서 구독을 확장 하 고 저장소 계정을 확장 한 다음 저장소 계정을 선택 하 고 기본 또는 보조 연결 문자열을 복사 합니다.In the Explorer, expand your subscription, expand Storage Accounts, 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 aren't already signed in to Azure, you're prompted to do so.

함수 만들기Create a function

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

func new

버전 3.x/2.x에서를 실행 하면 func new 함수 앱의 기본 언어로 템플릿을 선택 하 라는 메시지가 표시 됩니다. 그러면 함수 이름을 선택 하 라는 메시지도 표시 됩니다.In version 3.x/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 and later versions.) Generates the same C# script (.csx) templates used in version 1.x and in the portal.
--language, -l--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 and later versions, do not use this option or choose a language that matches the worker runtime.
--name, -n--name, -n 함수 이름입니다.The function name.
--template, -t--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. 시작 명령은 프로젝트 언어에 따라 달라집니다.The start command varies, depending on your project language.

func start --build

참고

함수 런타임의 버전 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. 버전 1.x에는 지원 되지 않습니다.Not supported for version 1.x.
--cors-credentials 버전 1.x에 대해 지원 되지 않는 크로스-원본 인증 된 요청 (즉, 쿠키 및 인증 헤더)을 허용 합니다.Allow cross-origin authenticated requests (i.e. cookies and the Authentication header) Not supported for version 1.x.
--cors CORS 원본의 공백 없이 쉼표로 구분된 목록입니다.A comma-separated list of CORS origins, with no spaces.
--language-worker 언어 작업자를 구성하는 인수입니다.Arguments to configure the language worker. 예를 들어 디버그 포트 및 기타 필수 인수를 제공 하 여 언어 작업자에 대해 디버깅을 사용 하도록 설정할 수 있습니다.For example, you may enable debugging for language worker by providing debug port and other required arguments. 버전 1.x에는 지원 되지 않습니다.Not supported for version 1.x.
--cert 프라이빗 키가 포함된 .pfx 파일에 대한 경로입니다.The path to a .pfx file that contains a private key. --useHttps을 통해서만 사용됩니다.Only used with --useHttps. 버전 1.x에는 지원 되지 않습니다.Not supported for version 1.x.
--password .pfx 파일에 대한 암호가 포함된 암호 또는 파일입니다.Either the password or a file that contains the password for a .pfx file. --cert을 통해서만 사용됩니다.Only used with --cert. 버전 1.x에는 지원 되지 않습니다.Not supported for version 1.x.
--port, -p--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--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--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, authorization 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 트리거와 웹 후크 및 Event Grid 트리거와는 다른 모든 종류의 함수에는 관리 끝점을 호출 하 여 로컬에서 함수를 테스트할 수 있습니다.For all kinds of functions other than HTTP triggers and webhooks and Event Grid triggers, 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.

트리거된 함수를 로컬로 Event Grid 테스트 하려면 뷰어 웹 앱을 사용 하 여 로컬 테스트를 참조 하세요.To test Event Grid triggered functions locally, see Local testing with viewer web app.

필요에 따라 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/QueueTrigger

명령 사용 func run (버전 2.x에만 해당)Using the func run command (version 1.x only)

중요

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

버전 1.x에서는를 사용 하 여 함수를 직접 호출 하 func run <FunctionName> 고 함수에 대 한 입력 데이터를 제공할 수도 있습니다.In version 1.x, 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--content, -c 인라인 콘텐츠입니다.Inline content.
--debug, -d--debug, -d 함수를 실행하기 전에 호스트 프로세스에 디버거를 연결합니다.Attach a debugger to the host process before running the function.
--timeout, -t--timeout, -t 로컬 Functions 호스트가 준비될 때까지의 대기 시간(초)입니다.Time to wait (in seconds) until the local Functions host is ready.
--file, -f--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.

중요

핵심 도구에서 Azure에 게시 하려면 Azure CLI 를 로컬로 설치 해야 합니다.You must have the Azure CLI installed locally to be able to publish to Azure from Core Tools.

프로젝트 폴더는 게시 하지 않아야 하는 언어별 파일 및 디렉터리를 포함할 수 있습니다.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.

프로젝트 파일 배포Deploy 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에서 함수 앱을 만들 때 기본적으로 함수 런타임의 버전 3.x를 사용 합니다.When you create a function app in the Azure portal, it uses version 3.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.

다음 게시 옵션은 모든 버전에 적용 됩니다.The following publish options apply for all versions:

옵션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. Microsoft Azure Storage 에뮬레이터 사용 하는 경우 먼저 앱 설정을 실제 저장소 연결로 변경 합니다.If you are using the Microsoft Azure 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 supported only for version 2.x and later versions:

옵션Option 설명Description
--publish-settings-only, -o--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 함수 앱을 게시할 때 생성 되는 원반 폴더를 건너뜁니다.Skips generating .wheels folder when publishing Python function apps.
--build, -b--build, -b Linux 함수 앱에 배포할 때 빌드 작업을 수행 합니다.Performs build action when deploying to a Linux function app. 수락: remotelocal .Accepts: remote and local.
--additional-packages 네이티브 종속성을 빌드할 때 설치할 패키지 목록입니다.List of packages to install when building native dependencies. 예: python3-dev libevent-devFor example: python3-dev libevent-dev.
--force 특정 시나리오에서 게시 전 확인을 무시합니다.Ignore pre-publishing verification in certain scenarios.
--csx C# 스크립트(.csx) 프로젝트를 게시합니다.Publish a C# script (.csx) project.
--no-build 게시 하는 동안 프로젝트가 빌드되지 않습니다.Project isn't built during publishing. Python의 경우가 pip install 수행 되지 않습니다.For Python, pip install isn't performed.
--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.

사용자 지정 컨테이너 배포Deploy 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을 사용 하 여 앱을 만들려면에서--dockerfile 옵션을 사용 func init 합니다.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 통합Application Insights integration

Azure에서 함수 앱을 만들 때 Application Insights 통합을 사용 하도록 설정 해야 합니다.Application Insights integration should be enabled when you create your function app in Azure. 일부 이유로 함수 앱이 Application Insights 인스턴스에 연결 되지 않은 경우 Azure Portal에서이 통합을 쉽게 수행할 수 있습니다.If for some reason your function app isn't connected to an Application Insights instance, it's easy to do this integration in the Azure portal.

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

  1. Azure Portal에서 함수 앱을 검색 하 고 선택한 다음 함수 앱을 선택 합니다.In the Azure portal, search for and select function app, and then choose your function app.

  2. 창 위쪽에서 구성 되지 않음 Application Insights 배너를 선택 합니다.Select the Application Insights is not configured banner at the top of the window. 이 배너가 표시 되지 않으면 앱이 이미 Application Insights 사용 하도록 설정 되어 있을 수 있습니다.If you don't see this banner, then your app might already have Application Insights enabled.

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

  3. 다음 표에 지정 된 설정을 사용 하 여 리소스 변경 을 확장 하 고 Application Insights 리소스를 만듭니다.Expand Change your resource and create an Application Insights resource by using the settings specified in the following table.

    설정Setting 제안 값Suggested value 설명Description
    새 리소스 이름New resource name 고유한 앱 이름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.

    Application Insights 리소스 만들기

  4. 적용을 선택합니다.Select Apply.

    함수 앱과 동일한 리소스 그룹 및 구독에 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.

  5. 함수 앱의 설정아래에서 구성 을 선택 하 고 응용 프로그램 설정을 선택 합니다.In your function app, select Configuration under Settings, and then select 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

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 Application Insights integration be enabled for your function app.

다음 단계Next steps

Microsoft 학습 모듈 Azure Functions Core Tools Azure Functions Core Tools를 사용 하 여 Azure Functions를 개발, 테스트 및 게시 하는 방법을 알아보고 GitHub에서 호스트합니다.Learn how to develop, test, and publish Azure Functions by using Azure Functions Core Tools Microsoft learn module Azure Functions Core Tools is open source and hosted on GitHub.
버그 또는 기능 요청을 제출하려면 GitHub 문제를 개설합니다.To file a bug or feature request, open a GitHub issue.