Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функции Azure Core Tools позволяет разрабатывать и тестировать функции на локальном компьютере. Когда вы будете готовы, вы также можете использовать основные средства для развертывания проекта кода для Azure и работы с параметрами приложения.
Вы просматриваете версию C# этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Вы просматриваете Java версию этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Вы просматриваете версию JavaScript этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Вы просматриваете версию PowerShell этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Вы просматриваете Python версию этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Вы просматриваете версию TypeScript этой статьи. Выберите предпочитаемый язык программирования функций в верхней части статьи.
Если хотите сразу приступить к работе, выполните быстрое руководство по инструментам Core.
Установка основных средств Функции Azure
Рекомендуемый способ установки основных средств зависит от операционной системы локального компьютера разработки.
Следующие шаги используют установщик Windows (MSI) для установки Core Tools версии 4.x. Дополнительные сведения о других установщиках на основе пакетов см. в статье Core Tools readme.
Скачайте и запустите установщик Core Tools на основе версии Windows:
- v4.x — Windows 64-разрядная (рекомендуется. отладка Visual Studio Code требует 64-разрядная битная версия.)
- v4.x — Windows 32-разрядная
Если вы ранее использовали установщик Windows (MSI) для установки Основных инструментов на Windows, перед установкой последней версии удалите старую версию через 'Установка и удаление программ'.
Подсказка
Чтобы установить основные средства на подсистема Windows для Linux (WSL), следуйте инструкциям на вкладке Linux.
Сведения о проблемах, связанных с версиями, см. в разделе "Основные инструменты".
Создание локального проекта
Внимание
Для Python необходимо запустить команды Core Tools в виртуальной среде. Дополнительные сведения см. в разделе Quickstart: создание функции Python в Azure из командной строки.
В окне терминала или из командной строки выполните следующую команду, чтобы создать проект в новой папке MyProjFolder:
func init MyProjFolder --worker-runtime dotnet-isolated
По умолчанию эта команда создает проект, который выполняется в том же процессе, что и хост Функций, на текущей версии .NET Core с долгосрочной поддержкой (LTS). Параметр --target-framework можно использовать для целевой поддерживаемой версии .NET, включая платформу .NET. Для получения дополнительной информации см. справочник по func init.
Сравнение двух моделей процессов .NET см. в разделе Differences между изолированной рабочей моделью и внутрипроцессной моделью.
Java использует архетип Maven для создания локального проекта, а также первой функции, запускаемой по HTTP-запросу. Вместо использования func init и func new следует выполнить шаги из раздела Быстрый старт командной строки.
Эта команда создает проект JavaScript, использующий нужную версию модели программирования.
Эта команда создает проект TypeScript, использующий нужную версию модели программирования.
func init MyProjFolder --worker-runtime powershell
Эта команда создает проект Python, использующий нужную версию модели программирование.
При запуске func init без --worker-runtime параметра вам будет предложено выбрать язык проекта. Дополнительные сведения о доступных параметрах команды func init см. справочник func init.
Создание функции
Чтобы добавить функцию в проект, выполните func new команду с помощью --template параметра, чтобы выбрать шаблон триггера. В следующем примере создается триггер HTTP с именем MyHttpTrigger:
func new --template "Http Trigger" --name MyHttpTrigger
В этом примере создается триггер хранилища очередей с именем MyQueueTrigger:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
При добавлении функций применяются следующие рекомендации.
При запуске
func newбез--templateпараметра вам будет предложено выбрать шаблон.func templates listИспользуйте команду, чтобы просмотреть полный список доступных шаблонов для вашего языка.При добавлении триггера, подключающегося к службе, также необходимо добавить параметр приложения, ссылающийся на строка подключения или управляемое удостоверение в файл local.settings.json. Использование параметров приложения таким образом предотвращает внедрение учетных данных в код. Дополнительные сведения см. в разделе "Работа с параметрами приложения" локально.
- Core Tools добавляет ссылку на конкретное расширение привязки в ваш проект C#.
Дополнительные сведения о доступных параметрах команды func new см. справочник func new.
Добавьте привязку к функции
Функции предоставляют набор входных и выходных привязок для конкретной службы, что упрощает подключение функции к другим службам Azure без использования клиентских пакетов SDK для конкретной службы. Дополнительные сведения см. в разделе Функции Azure триггеры и привязки.
Чтобы добавить входную или выходную привязку к существующей функции, необходимо вручную обновить определение функции.
В следующем примере показано определение функции после добавления привязки выходных данных для хранилища очередей к функции с HTTP-триггером:
Так как функция, активировавшая HTTP, также возвращает http-ответ, функция возвращает MultiResponse объект, представляющий выходные данные HTTP и очереди.
[Function("HttpExample")]
public MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req)
В этом примере приведено определение MultiResponse объекта, включающего выходную привязку:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
В этом примере используется интеграция ASP.NET Core. Если вы не используете интеграцию ASP.NET Core, необходимо изменить HttpRequest на HttpRequestData и IActionResult на HttpResponseData.
Сообщения отправляются в очередь по завершении выполнения функции. Способ определения выходной привязки зависит от модели процесса. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
const { app, output } = require('@azure/functions');
const sendToQueue = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
extraOutputs: [sendToQueue],
handler: async (request, context) => {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
},
});
Способ определения выходной привязки зависит от версии модели Node.js. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
Способ определения выходной привязки зависит от версии модели Python. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
import {
app,
output,
HttpRequest,
HttpResponseInit,
InvocationContext,
StorageQueueOutput,
} from '@azure/functions';
const sendToQueue: StorageQueueOutput = output.storageQueue({
queueName: 'outqueue',
connection: 'AzureWebJobsStorage',
});
export async function HttpExample(
request: HttpRequest,
context: InvocationContext,
): Promise<HttpResponseInit> {
try {
context.log(`Http function processed request for url "${request.url}"`);
const name = request.query.get('name') || (await request.text());
context.log(`Name: ${name}`);
if (name) {
const msg = `Name passed to the function ${name}`;
context.extraOutputs.set(sendToQueue, [msg]);
return { body: msg };
} else {
context.log('Missing required data');
return { status: 404, body: 'Missing required data' };
}
} catch (error) {
context.log(`Error: ${error}`);
return { status: 500, body: 'Internal Server Error' };
}
}
app.http('HttpExample', {
methods: ['GET', 'POST'],
authLevel: 'anonymous',
handler: HttpExample,
});
Способ определения выходной привязки зависит от версии модели Node.js. Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
При добавлении привязок в функцию применяются следующие рекомендации.
- Для языков, определяющих функции с помощью файла конфигурации function.json Visual Studio Code упрощает процесс добавления привязок в существующее определение функции. Дополнительные сведения см. в разделе Подключение функций к службам Azure с использованием привязок.
- При добавлении привязок, подключающихся к службе, необходимо также добавить параметр приложения, ссылающийся на строка подключения или управляемое удостоверение в файл local.settings.json. Дополнительные сведения см. в разделе "Работа с параметрами приложения" локально.
- При добавлении поддерживаемой привязки расширение должно быть уже установлено, когда приложение использует пакет расширений. Для получения дополнительной информации см. пакеты расширений.
- При добавлении привязки, требующей нового расширения привязки, необходимо также добавить ссылку на это расширение привязки в проекте C#.
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Дополнительные сведения, включая ссылки на пример кода привязки, к которому можно обратиться, см. в разделе "Добавление привязок к функции".
Запуск среды выполнения функций
Перед тем как запустить или отладить функции в вашем проекте, необходимо запустить узел функций из корневого каталога проекта. Хост включает триггеры для всех функций в проекте. Используйте эту команду для запуска локальной среды выполнения:
mvn clean package
mvn azure-functions:run
func start
npm install
npm start
Эта команда должна выполняться в виртуальной среде.
При запуске узла Функций выводится список функций в проекте, включая URL-адреса всех функций, активируемых HTTP, например в этом примере:
Found the following functions: Host.Functions.MyHttpTrigger Job host started Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
Загрузка функций зависит от конфигурации проекта. Дополнительные сведения см. в разделе "Регистрация функции".
Помните, что при локальном выполнении функций следует учитывать следующие рекомендации.
По умолчанию авторизация не применяется локально для конечных точек HTTP. Это означает, что все локальные HTTP-запросы будут обрабатываться как
authLevel = "anonymous". Для получения дополнительной информации см. Уровень авторизации. Вы можете использовать--enableAuthпараметр, чтобы требовать авторизацию при локальном запуске. Дополнительные сведения см. в разделеfunc start.Локальный эмулятор Azurite можно использовать при локальном выполнении функций, требующих доступа к службам служба хранилища Azure (хранилище очередей, Хранилище BLOB-объектов и хранилищу таблиц) без необходимости подключаться к этим службам в Azure. При использовании локальной эмуляции перед запуском локального узла (func.exe) обязательно запустите Azurite. Дополнительные сведения см. в статье эмуляции локального хранилища.
- Вы можете использовать локальную эмуляцию Azurite для удовлетворения требований к хранилищу рабочего процесса для Python версии 2.
Функции, отличные от HTTP, можно запускать локально, не подключаясь к динамической службе. Дополнительные сведения см. в разделе "Запуск локальной функции".
При включении сведений о подключении Application Insights в файл local.settings.json локальные данные журнала записываются в конкретный экземпляр Application Insights. Чтобы сохранить данные локальной телеметрии отдельно от рабочих данных, рассмотрите возможность использования отдельного экземпляра Application Insights для разработки и тестирования.
- При использовании версии 1.x основных средств вместо этого используйте
func host startкоманду для запуска локальной среды выполнения.
Запуск локальной функции
При запуске локального узла функций (func.exe) теперь можно активировать функции, чтобы выполнять и отлаживать их код. Способ выполнения отдельной функции зависит от типа триггера.
Примечание.
В примерах в этой статье используется инструмент cURL для отправки HTTP-запросов из терминала или командной строки. Вы можете использовать любой инструмент для отправки HTTP-запросов к локальному серверу. Средство cURL доступно по умолчанию в системах под управлением Linux и Windows 10 сборке 17063 и более поздних версий. На более ранних Windows необходимо сначала скачать и установить средство cURL.
Триггеры HTTP запускаются путем отправки HTTP-запроса на локальную конечную точку и порт, как показано в выходных данных func.exe, который имеет этот общий формат:
http://localhost:<PORT>/api/<FUNCTION_NAME>
В этом шаблоне URL-адреса <FUNCTION_NAME> обозначает имя функции или маршрута, а <PORT> — это локальный порт, на котором прослушивается func.exe.
Например, эта команда cURL активирует MyHttpTrigger функцию быстрого запуска из запроса GET с параметром name, переданным в строке запроса:
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
Этот пример является той же функцией, которая вызывается из запроса POST, передавающего name в тексте запроса, показанной как для оболочки Bash, так и для командной строки Windows:
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"
При локальном вызове конечных точек HTTP следует учитывать следующие рекомендации.
Запросы GET можно выполнять из браузера, передавая данные в строке запроса. Для всех других методов HTTP необходимо использовать средство тестирования HTTP, которое также обеспечивает безопасность данных. Дополнительные сведения см. в статье Инструменты тестирования HTTP.
Убедитесь, что используете то же имя сервера и порт, который прослушивает хост службы Functions. Вы увидите конечную точку такого типа в выходных данных, созданных при запуске хоста функций. Этот URL-адрес можно вызвать с помощью любого метода HTTP с поддержкой триггера.
Публикация в Azure
Основные средства Функции Azure поддерживают три типа развертывания:
| Тип развертывания | Команда | Описание |
|---|---|---|
| файлы проекта | func azure functionapp publish |
Развертывает файлы проекта функции непосредственно в ваше приложение функций с помощью ZIP-развертывания. |
| Контейнеры приложений Azure | func azurecontainerapps deploy |
Развертывает контейнерное приложение функций в существующую среду контейнерных приложений. |
| Кластер Kubernetes | func kubernetes deploy |
Развертывает приложение-функцию Linux в качестве настраиваемого контейнера Docker в кластере Kubernetes. |
Для публикации в Azure из Core Tools необходимо установить локально Azure CLI или Azure PowerShell. По умолчанию Core Tools использует эти средства для проверки подлинности с помощью учетной записи Azure.
Если у вас нет этих средств, необходимо вместо этого получить действительный маркер доступа для использования во время развертывания. Маркер доступа можно представить с помощью --access-token параметра в командах развертывания.
Развертывание файлов проекта
Чтобы опубликовать локальный код в приложении-функции в Azure, используйте команду func azure functionapp publish, как показано в следующем примере:
func azure functionapp publish <FunctionAppName>
Эта команда публикует файлы проекта из текущего каталога <FunctionAppName> в виде пакета развертывания .zip. Если для проекта требуется компиляция, она выполняется удаленно во время развертывания.
Java использует Maven для публикации локального проекта в Azure вместо основных инструментов. Используйте следующую команду Maven для публикации проекта в Azure:
mvn azure-functions:deploy
При выполнении этой команды ресурсы Azure создаются во время первоначального развертывания, на основе параметров в файле pom.xml. Дополнительные сведения см. в разделе Развертывание проекта функции в Azure.
К этому типу развертывания относятся следующие соображения:
Публикация перезаписывает существующие файлы в развертывании удаленного приложения-функции.
Вы уже должны были создать функциональное приложение в вашей подписке Azure. Core Tools развертывает код вашего проекта в этом ресурсе функционального приложения. Сведения о создании приложения-функции из командной строки или окна терминала с помощью Azure CLI или Azure PowerShell см. в разделе Azure CLI Samples. Можно также создать эти ресурсы на портале Azure. Ошибка возникает, когда вы пытаетесь опубликовать в
<FunctionAppName>, которого нет в вашей подписке.Папка проекта может содержать файлы и каталоги, относящиеся к языку, которые не должны быть опубликованы. Исключенные элементы перечислены в файле funcignore в корневой папке проекта.
По умолчанию проект развертывается таким образом, чтобы он запускался из пакета развертывания. Чтобы отключить этот рекомендуемый режим развертывания, используйте параметр
--nozip.Для скомпилированных проектов выполняется удаленная сборка. Это можно контролировать с помощью параметра
--no-build.--publish-local-settingsИспользуйте параметр автоматического создания параметров приложения в приложении-функции на основе значений в файлеlocal.settings.json.Чтобы опубликовать в определенном именованном слоте в приложении-функции, используйте
--slotэту опцию.
Развертывание контейнеров
Основные средства позволяют развертывать контейнеризированное функциональное приложение как в средах Контейнеры приложений Azure под управлением, так и в управляемых вами кластерах Kubernetes.
Используйте следующую func azurecontainerapps deploy команду, чтобы развернуть существующий образ контейнера в среде контейнерных приложений.
func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]
При развертывании в среде Контейнеры приложений Azure применяются следующие рекомендации.
Среда и учетная запись хранения уже должны существовать. Учетная запись хранения, строка подключения которую вы предоставляете, используется развернутым приложением-функцией.
При развертывании в контейнерных приложениях не требуется создать отдельный ресурс приложения-функции.
Строки подключения к хранилищу и другие учетные данные службы являются важными конфиденциальными данными. Не забудьте безопасно хранить файлы скриптов с помощью
func azurecontainerapps deployи не хранить их в общедоступных системах управления версиями. Вы можете зашифровать файлlocal.settings.json для дополнительной безопасности.
Для получения дополнительной информации см. размещение Функции Azure в Контейнеры приложений Azure.
Работа с параметрами приложения локально
Когда приложение-функция работает в Azure, параметры, необходимые вашим функциям, хранятся в параметрах приложения. Во время локальной разработки эти параметры добавляются в коллекцию Values вместо этого в файлеlocal.settings.json. Файл local.settings.json также сохраняет параметры, используемые локальными средствами разработки.
Элементы в коллекции Values в файле local.settings.json предназначены для отражения элементов в параметрах приложения application settings в Azure.
При работе с локальным файлом параметров применяются следующие рекомендации.
Так как local.settings.json могут содержать секреты, такие как строки подключения, никогда не следует хранить его в удаленном репозитории. Основные инструменты помогают шифровать этот локальный файл параметров для повышения безопасности. Подробнее см. в разделе Файл локальных параметров. Вы также можете зашифровать файл local.settings.json для дополнительной безопасности.
По умолчанию локальные параметры не переносятся автоматически при публикации проекта в Azure. Используйте параметр
--publish-local-settingsпри публикации файлов проекта, чтобы убедиться, что эти параметры добавлены в приложение-функцию в Azure. Значения из разделаConnectionStringsникогда не публикуются. Вы также можете отправлять параметры из файлаlocal.settings.json в любое время.Вы можете скачать и перезаписать параметры в файле local.settings.json с параметрами из приложения-функции в Azure. Дополнительные сведения см. в разделе "Скачать параметры приложения".
- Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительную информацию см. в разделе Переменные среды.
- Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительную информацию см. в разделе Переменные среды.
- Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительную информацию см. в разделе Переменные среды.
- Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительную информацию см. в разделе Переменные среды.
- Эти значения параметров приложения-функции также могут считываться в коде как переменные среды. Дополнительную информацию см. в разделе Переменные среды.
- Если для
AzureWebJobsStorageне задана допустимая строка подключения хранилища, а локальный эмулятор хранилища не используется, отображается ошибка. Вы можете использовать Core Tools для загрузки определенной строки подключения из любой вашей учетной записи служба хранилища Azure.
Скачивание параметров приложения
В корневом каталоге проекта используйте следующую команду, чтобы скачать все параметры приложения из приложения myfunctionapp12345 в Azure:
func azure functionapp fetch-app-settings myfunctionapp12345
Эта команда перезаписывает все существующие параметры в файле local.settings.json значениями из Azure. Если они еще не присутствуют, новые элементы добавляются в коллекцию. Дополнительные сведения см. в команде func azure functionapp fetch-app-settings .
Скачивание строки подключения к хранилищу
Основные инструменты также упрощают получение строки подключения любой учетной записи хранения, к которой у вас есть доступ. В корневом каталоге проекта используйте следующую команду, чтобы скачать строку подключения из учетной записи хранения с именем mystorage12345.
func azure storage fetch-connection-string mystorage12345
Эта команда добавляет параметр с именем mystorage12345_STORAGE в файл local.settings.json, содержащий строка подключения для учетной записи mystorage12345. Дополнительные сведения см. в команде func azure storage fetch-connection-string .
Для повышения безопасности во время разработки рекомендуется зашифровать файл local.settings.json.
Отправка локальных параметров в Azure
При публикации файлов проекта в Azure без использования параметра --publish-local-settings параметры в файле local.settings.json не задаются в приложении-функции. Вы всегда можете повторно запустить func azure functionapp publish с параметром --publish-settings-only для загрузки только настроек без повторной публикации файлов проекта.
В следующем примере передаются только параметры из коллекции Values в файле local.settings.json в приложение-функцию в Azure с именем myfunctionapp12345:
func azure functionapp publish myfunctionapp12345 --publish-settings-only
Шифрование локального файла параметров
Чтобы повысить безопасность строк подключения и других ценных данных в локальных параметрах, core Tools позволяет зашифровать файл local.settings.json . При шифровании этого файла среда выполнения автоматически расшифровывает параметры при необходимости так же, как и параметр приложения в Azure. Вы также можете расшифровать локально зашифрованный файл для работы с параметрами.
Используйте следующую команду, чтобы зашифровать локальный файл параметров для проекта:
func settings encrypt
Используйте следующую команду, чтобы расшифровать зашифрованный локальный параметр, чтобы с ним можно было работать:
func settings decrypt
Когда файл параметров зашифрован и расшифровывается, параметр файла IsEncrypted также обновляется.
Настройте расширения привязки
триггеры и привязки Functions реализованы как пакеты расширения .NET (NuGet). Чтобы использовать определенное расширение привязки, это расширение должно быть установлено в проекте.
Этот раздел не относится к версии 1.x среды выполнения Функций. В версии 1.x поддерживаемые привязки были включены в основное расширение продукта.
Для проектов библиотеки классов C# добавьте ссылки на определенные пакеты NuGet для расширений привязки, необходимых вашим функциям. Проект скрипта C# (CSX) должен использовать пакеты расширений.
Функции предоставляют пакеты расширений , которые упрощают работу с расширениями привязки в проекте. Пакеты расширений, которые имеют версию и указаны в файле host.json, устанавливают полный набор совместимых пакетов расширений для привязки для вашего приложения. Файл host.json уже должен включать пакеты расширений. Если по какой-то причине вам нужно добавить или обновить пакет расширений в файлеhost.json , ознакомьтесь с пакетами расширений.
Если необходимо использовать расширение привязки или версию расширения, не в поддерживаемом пакете, необходимо вручную установить расширения. Для таких редких сценариев см. func extensions install команду.
Версии Core Tools
Основные версии Функции Azure Core Tools связаны с определенными основными версиями среды выполнения Функции Azure. Например, версия 4.x Core Tools поддерживает версию 4.x среды выполнения функций. Эта версия является рекомендуемой основной версией среды выполнения функций и основных инструментов. Последнюю версию core Tools можно определить в репозитории Функции Azure Core Tools.
начиная с версии 4.0.6517 основных инструментов проекты модели внутри процесса должны ссылаться на версию 4.5.0 или более поздней версии Майкрософт.NET.Sdk.Functions. Если используется более ранняя версия, команда func start выдаст ошибку.
Выполните следующую команду, чтобы определить версию текущей установки Core Tools:
func --version
Если иное не указано, примеры, приведенные в этой статье, предназначены для версии 4.x.
Следующие рекомендации относятся к установкам Core Tools:
На каждом компьютере можно установить только одну версию Core Tools.
При обновлении до последней версии Core Tools следует использовать тот же метод, который использовался для первоначальной установки для выполнения обновления. Например, если вы использовали MSI в Windows, удалите текущий MSI и установите последнюю версию. Или, если вы использовали npm, повторно запустите
npm install commandфайл .Версии 2.x и 3.x Core Tools использовались с версиями 2.x и 3.x среды выполнения функций, которые достигли окончания срока поддержки. Для получения дополнительной информации см. обзор версий среды выполнения Функции Azure.
- Версия 1.x Core Tools требуется при использовании версии 1.x среды выполнения функций, которая по-прежнему поддерживается. Эта версия Core Tools может выполняться только локально на Windows компьютерах. Если вы работаете в настоящее время в версии 1.x, рекомендуется перенести приложение на версию 4.x сегодня.