Запуск основных инструментов службы "Функции Azure"Work with Azure Functions Core Tools

Основные инструменты службы "Функции Azure" позволяют разрабатывать и тестировать функции на локальном компьютере из командной строки или терминала.Azure Functions Core Tools lets you develop and test your functions on your local computer from the command prompt or terminal. Локальные функции можно подключать к действующим службам Azure, а отладку функций можно выполнять на локальном компьютере с помощью полной среды выполнения службы "Функции Azure".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".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. Дополнительные сведения см. в разделе Supported languages in Azure Functions (Поддерживаемые языки службы "Функции Azure")For more information, see Supported languages in Azure Functions

  • Версия 2.x: поддерживает версию 2.x среды выполнения.Version 2.x: supports version 2.x of the runtime. Эта версия поддерживает Windows, macOS и Linux.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.

Установка основных инструментов Функций AzureInstall the Azure Functions Core Tools

Основные инструменты службы "Функции Azure" являются локальной версией среды выполнения "Функции Azure", которую можно запускать на локальном компьютере для разработки.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 инструментов используется среда выполнения Функций Azure версии 2.x, которая основана на .NET Core.Version 2.x of the tools uses the Azure Functions runtime 2.x that is built on .NET Core. Эта версия поддерживается на всех платформах, которые поддерживает .NET Core 2.x, включая Windows, macOS и Linux.This version is supported on all platforms .NET Core 2.x supports, including Windows, macOS, and Linux.

Важно!

Вы можете обойти требование для установки пакета SDK для .NET Core 2. x с помощью пакетов расширений.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
    

    Загрузка и установка пакета основных средств может занять несколько минут.It may take a few minutes for npm to download and install the Core Tools package.

  3. Если вы не планируете использовать пакетов расширений, установите пакет SDK для .NET Core 2. x для Windows.If you do not plan to use extension bundles, install the .NET Core 2.x SDK for Windows.

MacOS с HomebrewMacOS 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. Если вы не планируете использовать пакетов расширений, установите пакет SDK для .NET Core 2. x для macOS.If you do not plan to use extension bundles, install .NET Core 2.x SDK for macOS.

Linux (Ubuntu/Debian) с APTLinux (Ubuntu/Debian) with APT

На следующих шагах APT используется для установки основных инструментов на дистрибутив Linux Ubuntu/Debian.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. Установите ключ 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.

    Чтобы настроить список источников APT для Ubuntu, выполните следующую команду: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'
    

    Чтобы настроить список источников APT для Debian, выполните следующую команду: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. Проверьте файл /etc/apt/sources.list.d/dotnetdev.list для одной из следующих строк версии Linux:Check the /etc/apt/sources.list.d/dotnetdev.list file for one of the appropriate Linux version strings listed below:

    Дистрибутив LinuxLinux distribution ВерсияVersion
    Debian 10Debian 10 buster
    Debian 9Debian 9 stretch
    Debian 8;Debian 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. Если вы не планируете использовать пакетов расширений, установите пакет SDK для .NET Core 2. x для Linux.If you do not plan to use extension bundles, install .NET Core 2.x SDK for Linux.

Создание локального проекта службы "Функции"Create a local Functions project

Каталог проекта функций содержит файлы host.json и local.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. Дополнительные сведения о структуре папок службы "Функции Azure" см. в Руководстве для разработчиков по Функциям Azure.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 
powershell

Для выбора языка используйте СТРЕЛКИ ВВЕРХ и ВНИЗ и клавишу ВВОД.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
--csharp
--dotnet
Инициализирует C# проект библиотеки классов (CS).Initializes a C# class library (.cs) project.
--csx Инициализирует C# проект скрипта (. CSX).Initializes a C# script (.csx) project. Необходимо указать --csx в последующих командах.You must specify --csx in subsequent commands.
--docker Создает файл Docker для контейнера с использованием базового образа, основанного на выбранном параметре --worker-runtime.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.
--docker-only Добавляет Dockerfile в существующий проект.Adds a Dockerfile to an existing project. Запрашивает рабочую среду выполнения, если она не указана или задана в local. Settings. JSON.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.
--java Инициализирует проект Java.Initializes a Java project.
--javascript
--node
Инициализирует проект JavaScript.Initializes a JavaScript project.
--no-source-control
-n
Предотвращает создание по умолчанию репозитория Git в версии 1.x.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.
--powershell Инициализирует проект PowerShell.Initializes a PowerShell project.
--python Инициализирует проект Python.Initializes a Python project.
--source-control Определяет, создается ли репозиторий Git.Controls whether a git repository is created. По умолчанию репозиторий не создается.By default, a repository isn't created. Если задано значение true, репозиторий создается.When true, a repository is created.
--typescript Инициализирует проект TypeScript.Initializes a TypeScript project.
--worker-runtime Задает языковую среду выполнения для проекта.Sets the language runtime for the project. Поддерживаются следующие значения: csharp, dotnet, java, javascript,node (JavaScript), powershell, pythonи typescript.Supported values are: csharp, dotnet, java, javascript,node (JavaScript), powershell, python, and typescript. Если этот параметр не задан, вам будет предложено выбрать среду выполнения во время инициализации.When not set, you are prompted to choose your runtime during initialization.

Важно!

По умолчанию версия 2.x средства Core создает проекты приложений функций для среды выполнения .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. Если вы хотите создавать и работать с тем же файлом сценария C# (.csx), созданным в версии 1.x и на портале, необходимо указать параметр --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. В версии 2.x среды выполнения функций Azure, вам необходимо явно зарегистрировать расширения для типов привязки, используемых в функции.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 зарегистрировать.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

В файле Local. Settings. JSON хранятся параметры приложения, строки подключения и параметры, используемые локальными инструментами разработки.The local.settings.json file stores app settings, connection strings, and settings used by local development tools. Параметры в файле Local. Settings. 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 Описание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-объектов.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 установлен локально и задано значение 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. Эти параметры отделены от параметров Host. JSON, которые также применяются при запуске проектов в Azure.These settings are separate from the host.json settings, which also apply when you run projects in Azure.
LocalHttpPort Задает порт по умолчанию, используемый при выполнении локального узла Функций (func host start и func 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. Дополнительные сведения см. в разделе о переменных среды в этих справочниках для определенного языка: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:

Отсутствует значение AzureWebJobsStorage в local.settings.json.Missing value for AzureWebJobsStorage in local.settings.json. This is required for all triggers other than HTTP.This is required for all triggers other than HTTP. You can run 'func azure functionapp fetch-app-settings <functionAppName>' or specify a connection string in local.settings.json (Оно требуется для всех триггеров, отличных от HTTP. Выполните команду func azure functionapp fetch-app-settings <имя_приложения_функции> или укажите строку подключения в файле 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, search for and select Storage accounts. выбрать учетные записи хранения из портал AzureSelect Storagea accounts from Azure portal

    Выберите учетную запись хранения, выберите ключи доступа в параметрах, а затем скопируйте одно из значений строки подключения .Select your storage account, select Access keys in Settings, then copy one of the Connection string values. скопировать строку подключения из портал AzureCopy connection string from Azure portal

  • Подключитесь к учетной записи Azure с помощью Обозревателя службы хранилища Azure.Use Azure Storage Explorer to connect to your Azure account. В Explorer разверните свою подписку, выберите учетную запись хранения и скопируйте основную или вторичную строку подключения.In the Explorer, expand your subscription, select your storage account, and copy the primary or secondary connection string.

    Скопируйте строку подключения из Обозревателя службы хранилища

  • Используйте Core Tools для загрузки строки подключения из 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). Создаются те же шаблоны сценариев C# (.csx), которые используются в версии 1.x и на портале.(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.

Например, чтобы создать триггер HTTP на JavaScript одной командой, выполните следующую команду.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

Чтобы запустить проект службы "Функции", запустите узел этой службы.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. Только для проектов .NET.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 Разрешение запросов, прошедших проверку подлинности из разных источников (например, файлы cookie и заголовок проверки подлинности). Только версия 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 или 5858.Default: 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. Значение по умолчанию: 7071.Default value: 7071.
--pause-on-error Приостановка для получения дополнительных входных данных перед выходом из процесса.Pause for additional input before exiting the process. Используется только при запуске набора инструментов 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# файлы host.json, local.settings.json и function.json создаются в корневой вложенной папке с путем, таким как MyProject/bin/Debug/netstandard2.0.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 Время ожидания для запуска узла службы "Функции" в секундах.The timeout for the Functions host to start, in seconds. Значение по умолчанию — 20 секунд.Default: 20 seconds.
--useHttps Привязка к https://localhost:{port}, а не к http://localhost:{port}.Bind to https://localhost:{port} rather than to http://localhost:{port}. По умолчанию этот параметр создает доверенный сертификат на компьютере.By default, this option creates a trusted certificate on your computer.

При запуске узла службы "Функции" выводится URL-адрес функций, активируемых по HTTP: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

Чтобы протестировать функции в локальной среде, запустите узел службы "Функции" и вызовите конечные точки на локальном сервере, используя 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 Build 17063 и более поздних версий.The cURL tool is available by default on Linux-based systems and Windows 10 build 17063 and later. В более старых версиях Windows необходимо сначала загрузить и установить инструмент для установки фигурного инструмента.On older Windows, you must first download and install the cURL tool.

Дополнительные сведения о тестировании функций см. в статье Методика тестирования кода с помощью Функций Azure.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}

Используйте то же имя сервера и порт, прослушиваемый узлом службы "Функции".Make sure to use the same server name and port that the Functions host is listening on. Их можно найти в выходных данных, полученных при запуске узла службы "Функции".You see this in the output generated when starting the Function host. Этот URL-адрес можно вызвать с помощью любого метода HTTP с поддержкой триггера.You can call this URL using any HTTP method supported by the trigger.

Следующая команда cURL активирует функцию быстрого запуска MyHttpTrigger из запроса GET с параметром name, который передается в строке запроса.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 с передачей параметра name в тексте запроса: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.

Функции, не активируемые по протоколу HTTPNon-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.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. В следующем примере представлен запрос POST к функции QueueTriggerJS.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

Использование команды func run в версии 1.xUsing 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.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.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 Время ожидания (в секундах), пока не будет готов локальный узел службы "Функции".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\"}'

Публикация в AzurePublish 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. Исключенные элементы перечислены в файле фунЦигноре в корневой папке проекта.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, см. статью Создание приложения-функции для выполнения без сервера.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 по умолчанию используется версия 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 Позволяет пропустить создание папки формата WHEELS при публикации приложений-функций Python.Skips generating .wheels folder when publishing python function apps.
--build
-b
Выполняет действие сборки при развертывании в приложении-функции Linux.Performs build action when deploying to a Linux function app. Принимает: remote и local.Accepts: remote and 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 Не создавайте функции библиотеки классов .NET.Don't build .NET class library 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 позволяют развертывать проект функции в пользовательском контейнере 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. В пользовательских контейнерах должен быть файл Docker.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 Application 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.To learn more, see Monitor Azure Functions.

Включение интеграции с Application InsightsEnable Application Insights integration

При создании приложения-функции в портал Azure интеграция 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.

Функции упрощают добавление возможностей интеграции Application Insights в приложение-функцию на портал Azure.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
    Имя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.
  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 StreamLive 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 you enable Application Insights integration for your function app.

Дальнейшие действияNext steps

Узнайте, как разрабатывать, тестировать и публиковать функции Azure с помощью Azure Functions Core Tools модуль обучения майкрософт Azure functions Core Tools является открытым исходным кодом и размещается на 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.