Создание и выполнение функций Azure в локальной среде с помощью Core Tools

Завершено

Средства Azure Functions Core Tools позволяют разрабатывать и выполнять функции на локальном компьютере из командной строки.

Вы хотите создать первую функцию, простой калькулятор интереса, локально на своем компьютере, а не в редакторе функций портал Azure. Вы не уверены, нужно ли использовать среду разработки, такую как Visual Studio или Visual Studio Code. В них обеих можно реализовать прямую поддержку функций Azure. В конечном счете, вы решили использовать Core Tools из командной строки и простой текстовый редактор.

В этом уроке вы узнаете, как использовать основные средства для создания и запуска функций локально. Давайте подробнее рассмотрим основные инструменты, прежде чем использовать их в упражнении в следующей единице, чтобы опробовать эти концепции, используя Azure Cloud Shell.

Что такое Функции Azure основные инструменты?

Функции Azure Core Tools — это автономная среда выполнения, а также набор средств командной строки, которые можно использовать для разработки, запуска и развертывания кода функции с локального компьютера.

Core Tools поддерживает несколько возможностей, связанных с функциями, в том числе:

  • Создайте файлы и папки, необходимые для локальной разработки функций.
  • Предоставьте локальную среду выполнения, чтобы протестировать и отладить функции на компьютере.
  • публикация функций в Azure.

С помощью основных средств эти задачи можно выполнить из командной строки. Используйте любой текстовый редактор, который вы хотите написать код и изменить конфигурацию. Вам также потребуется Azure CLI или Azure PowerShell для входа в Azure, создания ресурсов Azure и развертывания файлов проекта.

Core Tools упаковается в виде одной служебной программы командной строки с именем func. Если вы запускаете func из командной строки без других команд, она отображает сведения о версиях и руководство по использованию. Они вам пока не нужны, но выглядит это так:

A portion of the help text output by func.

Visual Studio и Visual Studio Code используют основные инструменты для обеспечения интегрированной локальной отладки.

Далее приведены некоторые фундаментальные концепции функций.

Приложения-функции и проекты функций

При локальной разработке функций вы работаете в проекте функций. Проект — это папка, содержащая файлы кода и конфигурации, определяющие функции. Этот проект кода развертывается в ресурсе приложения-функции в Azure. В экземпляре приложения-функции все функции совместно используют общий набор значений конфигурации и ресурсов.

Каждое приложение-функция предназначено для определенного стека языка, и каждый стек имеет собственные требования к проекту для конкретного языка. К счастью, вам никогда не нужно создавать проект функций вручную. Основные инструменты можно использовать для создания проектов и функций с нуля на нужном языке.

Версии Core Tools

Так как основные средства включают среду выполнения Функции Azure, основная версия основных инструментов, которые вы используете, всегда должна соответствовать основной версии среды выполнения функций в Azure. В настоящее время версия 4.x является рекомендуемой версией среды выполнения Функций и единственной версией, поддерживающей все языки. Хотя в этом руководстве рассматривается и используется core Tools версии 4.x, вам не нужно устанавливать что-либо на собственном компьютере. В этом руководстве вы вместо этого используете основные инструменты в среде Azure Cloud Shell в браузере. Cloud Shell уже имеет правильные версии Core Tools, Azure CLI и Node.js вместе с уже установленным редактором кода.

Локальная разработка и разработка портал Azure

Хотя портал Azure предоставляет встроенный редактор кода функции, его можно использовать только для определенных стеков языков. Вы также не можете использовать портал для изменения функций, которые вы разрабатываете локально и развертываете в Azure. При запуске использования любого локального рабочего процесса разработки нельзя использовать портал Azure для внесения изменений в код функции.

Core Tools поддерживает локальную разработку для всех стеков языков, поддерживаемых Функции Azure.

Локальное создание функций

Ниже приведен более подробный обзор создания функций с помощью основных средств и их локального запуска. Узнайте, как опубликовать в Azure позже в этом руководстве.

Создание проекта функций с помощью func init

Чтобы создать проект функций, выполните в командной строке команду func init.

Output from func init creating a JavaScript function project.

func init запрашивает, какую языковую среду выполнения следует использовать для приложения. Он настраивает содержимое папки проекта соответствующим образом.

При создании проекта функций файлы, включенные в папку проекта, зависят от выбранной языковой среды выполнения. Независимо от выбранной среды выполнения два наиболее важных файла проекта всегда присутствуют:

  • В файле host.json хранятся значения конфигурации среды выполнения, например параметры ведения журнала, для приложения-функции. Параметры, хранящиеся в этом файле, используются как при локальном запуске функций, так и в Azure.
  • local.settings.json хранит значения конфигурации, которые применяются только к приложению-функции при локальном запуске с помощью основных средств. Этот файл содержит два типа параметров:
    • локальной среды выполнения — они используются для настройки самой локальной среды выполнения функций;
    • пользовательские параметры приложения — вы добавляете и настраиваете их согласно потребностям для своего приложения. Все функции в приложении могут обращаться к ним и использовать их.

В проектах функций, создаваемых командой func init, нет функций. В следующем разделе вы узнаете, как добавить его.

Создание новой функции с помощью func new

Для каждой функции в проекте требуется свой код и конфигурация, которые определяют ее поведение. При выполнении func new в папке проекта функций создается новая функция и все файлы, необходимые для разработки.

Output from func new creating a JavaScript function.

После запроса на то, какой триггер функции вы хотите использовать и что вы хотите назвать функцию, func new создает полную, готовую к публикации реализацию начального элемента в выбранном языке проекта функции. Начальный код иллюстрирует использование выбранного типа триггера и помогает быстро приступить к работе. Замените текст функции собственной реализацией и готовы к сборке, запуску, тестированию и публикации.

В следующей части этого руководства вы создадите func new функцию, активированную HTTP, и измените начальную реализацию для выполнения простого вычисления интереса.

Запуск функций локально

Функции не являются программами, которые могут выполняться самостоятельно. Они должны размещаться. Узел Функции Azure — это то, что делает все, за пределами кода функции: загружает конфигурацию, прослушивает триггеры и HTTP-запросы, запускает рабочий процесс для языка, в который записываются функции, записывает выходные данные журнала и многое другое. В Azure приложения-функции автоматически запускают узел при запуске.

Вы можете использовать основные средства для запуска собственного экземпляра узла Функции Azure и локального использования функций перед их публикацией. Запустив функцию перед публикацией, вы можете убедиться в том, что конфигурация и код загружаются правильно, и протестировать функцию, выполнив реальные HTTP-вызовы к ней без использования ресурсов Azure.

Чтобы запустить узел функций локально, выполните команду func start из папки проекта функций. В конце выходных данных основные инструменты отображают локальные URL-адреса, которые можно использовать для вызова каждой функции. Пока узел работает, вы можете взаимодействовать с функциями с помощью любых средств или библиотек, которые выполняют HTTP-вызовы, например curl. Основные инструменты записывают все выходные данные журнала, созданные узлом в терминал в режиме реального времени.

func start output showing a function invocation URL.