Создание первой функции с помощью Visual StudioCreate your first function using Visual Studio

Решение "Функции Azure" позволяет выполнять код в бессерверной среде без необходимости создавать виртуальную машину или публиковать веб-приложение.Azure Functions lets you execute your code in a serverless environment without having to first create a VM or publish a web application.

Изучив эту статью, вы научитесь с помощью Visual Studio 2019 локально создавать и тестировать функцию hello world, а затем публиковать ее в Azure.In this article, you learn how to use Visual Studio 2019 to locally create and test a "hello world" function and then publish it to Azure. Это краткое руководство предназначено для Visual Studio 2019.This quickstart is designed for Visual Studio 2019. При создании проекта "Функции Azure" с помощью Visual Studio 2017 необходимо сначала установить новейшие инструменты Функций Azure.When creating a Functions project using Visual Studio 2017, you must first install the latest Azure Functions tools.

Ответ функции localhost в браузере

Предварительные требованияPrerequisites

Для работы с этим учебником необходимо сначала установить Visual Studio 2019.To complete this tutorial, you must first install Visual Studio 2019. Убедитесь, что рабочая нагрузка Разработка для Azure также установлена.Make sure that the Azure development workload is also installed.

Установка Visual Studio с рабочей нагрузкой разработки в Azure

Если у вас еще нет подписки Azure, создайте бесплатную учетную запись Azure, прежде чем начать работу.If you don't have an Azure subscription, create a free account before you begin.

Создание проекта приложения-функцииCreate a function app project

С помощью шаблона проекта функций Azure в Visual Studio можно создать проект, который затем можно опубликовать в приложении-функции в Azure.The Azure Functions project template in Visual Studio creates a project that can be published to a function app in Azure. Вы можете использовать приложение-функцию, чтобы группировать функции в логические единицы для развертывания и совместного использования ресурсов, а также управления ими.You can use a function app to group functions as a logical unit for management, deployment, and sharing of resources.

  1. В Visual Studio в меню Файл выберите пункты Создать > Проект.In Visual Studio, on the File menu, select New > Project.

  2. В диалоговом окне Создание проекта выполните поиск по строке functions, выберите шаблон Функции Azure и нажмите кнопку Далее.In the Create a new project dialog box, search for functions, choose the Azure Functions template, and select Next.

  3. Введите имя проекта и нажмите кнопку Создать.Enter a name for your project, and select Create. Имя приложения-функции должно быть допустимым в качестве пространства имен C#, поэтому не используйте символы подчеркивания, дефисы и другие символы, не являющиеся буквенно-цифровыми.The function app name must be valid as a C# namespace, so don't use underscores, hyphens, or any other nonalphanumeric characters.

  4. В диалоговом окне Создание нового приложения Функций Azure используйте следующие варианты:In Create a new Azure Functions application, use the following options:

    • Azure Functions v2 (.NET Core) (Функции Azure версии 2 (.NET Core)) 1;Azure Functions v2 (.NET Core) 1
    • триггером HTTPHTTP trigger
    • Учетная запись хранения. Эмулятор хранения;Storage Account: Storage Emulator
    • Уровень авторизации: Анонимный.Authorization level: Anonymous
    ПараметрOption Рекомендуемое значениеSuggested value ОПИСАНИЕDescription
    Среда выполнения функцийFunctions runtime Функции Azure 2.x
    (.NET Core)
    Azure Functions 2.x
    (.NET Core)
    Этот параметр создает проект функции, использующий среду выполнения Функций Azure версии 2.x, которая поддерживает .NET Core.This setting creates a function project that uses the version 2.x runtime of Azure Functions, which supports .NET Core. Функции Azure 1.x поддерживают .NET Framework.Azure Functions 1.x supports the .NET Framework. Дополнительные сведения см. в статье Azure Functions runtime versions overview (Общие сведения о версиях среды выполнения Функций Azure).For more information, see Target Azure Functions runtime version.
    Шаблон функцииFunction template триггером HTTPHTTP trigger Этот параметр создает функцию, которая активируется с помощью HTTP-запроса.This setting creates a function triggered by an HTTP request.
    Учетная запись храненияStorage Account Эмулятор храненияStorage Emulator Триггер HTTP не использует подключение к учетной записи службы хранилища Azure.An HTTP trigger doesn't use the Azure Storage account connection. Для всех триггеров других типов требуется допустимая строка подключения к учетной записи хранения.All other trigger types require a valid Storage account connection string. Так как для Функций требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure.Because Functions requires a storage account, one is assigned or created when you publish your project to Azure.
    Уровень авторизацииAuthorization level АнонимныйAnonymous Создаваемую функцию может активировать любой клиент без указания ключа.The created function can be triggered by any client without providing a key. Этот параметр авторизации позволяет легко тестировать новые функции.This authorization setting makes it easy to test your new function. Дополнительные сведения о ключах и авторизации см. в разделе Ключи авторизации статьи Привязки HTTP и webhook в функциях Azure.For more information about keys and authorization, see Authorization keys in the HTTP and webhook bindings.

    Примечание

    Убедитесь, что для параметра Уровень авторизации задано значение Anonymous.Make sure you set the Authorization level to Anonymous. Если вы выберете для Function уровень по умолчанию, вы должны указать функциональную клавишу в запросах на доступ к конечной точке функции.If you choose the default level of Function, you're required to present the function key in requests to access your function endpoint.

  5. Нажмите кнопку Создать, чтобы создать проект функции и функцию, активируемую с помощью HTTP.Select Create to create the function project and HTTP-triggered function.

Visual Studio создает проект и класс, содержащий стандартный код для типа функции триггера HTTP.Visual Studio creates a project and class that contains boilerplate code for the HTTP trigger function type. Атрибут FunctionName метода задает имя функции. По умолчанию — HttpTrigger.The FunctionName attribute on the method sets the name of the function, which by default is HttpTrigger. Атрибут HttpTrigger указывает, что функция вызывается HTTP-запросом.The HttpTrigger attribute specifies that the function is triggered by an HTTP request. Стандартный код отправляет HTTP-ответ, включающий в себя значение из текста или строки запроса.The boilerplate code sends an HTTP response that includes a value from the request body or query string.

Вы можете расширить возможности функции, используя входные и выходные привязки данных, применив для метода соответствующие атрибуты.You can expand the capabilities of your function using input and output bindings by applying the appropriate attributes to the method. Дополнительные сведения см. в разделе Триггеры и привязки в статье Справочник разработчика C# по функциям Azure.For more information, see the Triggers and bindings section of the Azure Functions C# developer reference.

Созданный проект функции и функцию, активируемую HTTP, можно протестировать на локальном компьютере.Now that you've created your function project and an HTTP-triggered function, you can test it on your local computer.

Локальное выполнение функцииRun the function locally

Visual Studio интегрируется с Azure Functions Core Tools, поэтому вы можете тестировать функции локально, используя полную среду выполнения Функций.Visual Studio integrates with Azure Functions Core Tools so that you can test your functions locally using the full Functions runtime.

  1. Чтобы запустить функцию, нажмите клавишу F5.To run your function, press F5. Кроме того, вам может понадобиться включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы.You may need to enable a firewall exception so that the tools can handle HTTP requests. Уровни авторизации никогда не применяются при локальном запуске.Authorization levels are never enforced when running locally.

  2. Скопируйте URL-адрес функции из выходных данных среды выполнения функций Azure.Copy the URL of your function from the Azure Functions runtime output.

    Локальная среда выполнения Azure

  3. Вставьте URL-адрес запроса в адресную строку браузера.Paste the URL for the HTTP request into your browser's address bar. Добавьте строку запроса ?name=<YOUR_NAME> в этот URL-адрес и выполните запрос.Append the query string ?name=<YOUR_NAME> to this URL and execute the request. Ниже показан ответ в браузере на локальный запрос GET, возвращаемый функцией:The following shows the response in the browser to the local GET request returned by the function:

    Ответ функции localhost в браузере

  4. Нажмите клавиши SHIFT+F5, чтобы остановить отладку.To stop debugging, press Shift + F5.

Убедитесь, что функция правильно работает на локальном компьютере. Затем опубликуйте проект в Azure.After you have verified that the function runs correctly on your local computer, it's time to publish the project to Azure.

Публикация проекта в AzurePublish the project to Azure

Перед публикацией проекта убедитесь, что в вашей подписке Azure есть приложения-функция.You must have a function app in your Azure subscription before you can publish your project. Для первой публикации проекта в Visual Studio создается приложение-функция.Visual Studio publishing creates a function app for you the first time you publish your project.

  1. Щелкните правой кнопкой мыши проект в обозревателе решений и выберите пункт Опубликовать.In Solution Explorer, right-click the project and select Publish.

  2. В диалоговом окне Выберите целевой объект публикации используйте параметры публикации, указанные в таблице под изображением.In the Pick a publish target dialog, use the publish options as specified in the table below the image:

    Выбор целевого объекта публикации

    ПараметрOption ОПИСАНИЕDescription
    План потребления службы "Функции Azure"Azure Functions Consumption plan При публикации проекта в приложении-функции, которое работает в плане потребления, вы платите только за выполнение приложения-функции.When you publish your project to a function app that runs in a Consumption plan, you only pay for executions of your functions app. Другие планы размещения связаны с дополнительными расходами.Other hosting plans incur higher costs. Дополнительные сведения см. в статье Масштабирование и размещение Функций Azure.To learn more, see Azure Functions scale and hosting.
    СоздатьCreate new В Azure создается приложение-функция со связанными ресурсами.A new function app, with related resources, is created in Azure. Если выбрать параметр Выбрать существующее, все файлы в существующем приложении-функции в Azure будут перезаписаны файлами из локального проекта.When you choose Select Existing, all files in the existing function app in Azure are overwritten by files from the local project. Используйте этот параметр только при повторной публикации обновлений для существующего приложения-функции.Only use this option when republishing updates to an existing function app.
    Запустить из файла пакетаRun from package file Приложение-функция развертывается с помощью Zip Deploy с включенным режимом Run-From-Package (Выполнение из пакета).Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Этот способ повышает производительность приложения-функции и является рекомендуемым.This is the recommended way of running your functions, which results in better performance. Если этот параметр не используется, перед публикацией в Azure остановите локальное выполнение проекта приложения-функции.When not using this option, make sure to stop your function app project from running locally before you publish to Azure.
  3. Нажмите кнопку Опубликовать.Select Publish. Если вы еще не вошли в учетную запись Azure из Visual Studio, выберите Вход.If you haven't already signed-in to your Azure account from Visual Studio, select Sign-in. Вы также можете создать бесплатную учетную запись Azure.You can also create a free Azure account.

  4. В диалоговом окне Служба приложение Azure: создание укажите параметры размещения, которые приведены в таблице ниже:In the App Service: Create new dialog, use the Hosting settings as specified in the table below the image:

    Диалоговое окно "Создание службы приложений"

    ПараметрSetting Рекомендуемое значениеSuggested value ОписаниеDescription
    ИмяName Глобально уникальное имяGlobally unique name Имя, которое однозначно идентифицирует новое приложение-функцию.Name that uniquely identifies your new function app. Допустимые символы: a-z, 0-9 и -.Valid characters are a-z, 0-9, and -.
    ПодпискаSubscription Выберите свою подпискуChoose your subscription Подписка Azure, которую нужно использовать.The Azure subscription to use.
    Группа ресурсовResource Group myResourceGroupmyResourceGroup Имя группы ресурсов, в которой создается приложение-функция.Name of the resource group in which to create your function app. Чтобы создать группу ресурсов, выберите Создать.Choose New to create a new resource group.
    План размещенияHosting Plan План потребленияConsumption plan Для создания бессерверного плана щелкните Создать, а затем выберите Потребление в разделе Размер.Make sure to choose the Consumption under Size after you select New to create a serverless plan. Также нужно выбрать расположение в ближайшем регионе или в регионе, расположенном рядом с другими службами, к которым обращаются ваши функции.Also, choose a Location in a region near you or near other services your functions access. Когда выполняется план, отличный от Потребление, необходимо будет управлять масштабированием приложения-функции.When you run in a plan other than Consumption, you must manage the scaling of your function app.
    Служба хранилища AzureAzure Storage Учетная запись хранения общего назначенияGeneral-purpose storage account Учетная запись хранения Azure — обязательный ресурс для среды выполнения Функций.An Azure storage account is required by the Functions runtime. Выберите Создать, чтобы создать учетную запись хранения общего назначения.Select New to create a general-purpose storage account. Можно также использовать существующую учетную запись при условии, что она соответствует требованиям учетной записи хранилища.You can also use an existing account that meets the storage account requirements.
  5. Выберите Создать, чтобы создать приложение-функцию и связанные с ним ресурсы в Azure с заданными параметрами, а также развернуть код проекта функции.Select Create to create a function app and related resources in Azure with these settings and deploy your function project code.

  6. По окончании развертывания запомните или запишите URL-адрес сайта, который является адресом приложения-функции в Azure.After the deployment is complete, make a note of the Site URL value, which is the address of your function app in Azure.

    Сообщение об успешной публикации

Тестирование функции в AzureTest your function in Azure

  1. Скопируйте базовый URL-адрес приложения-функции на странице профиля публикации.Copy the base URL of the function app from the Publish profile page. Замените часть localhost:port URL-адреса, который использовался при локальной проверке функции новым базовым URL-адресом.Replace the localhost:port portion of the URL you used when testing the function locally with the new base URL. Как и ранее, добавьте строку запроса ?name=<YOUR_NAME> в этот URL-адрес и выполните запрос.As before, make sure to append the query string ?name=<YOUR_NAME> to this URL and execute the request.

    URL-адрес, вызывающий функцию, активирующую HTTP, должен быть в следующем формате:The URL that calls your HTTP triggered function should be in the following format:

     http://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>?name=<YOUR_NAME> 
    
  2. Вставьте этот URL-адрес HTTP-запроса в адресную строку браузера.Paste this new URL for the HTTP request into your browser's address bar. Ниже показан ответ в браузере на удаленный запрос GET, возвращаемый функцией:The following shows the response in the browser to the remote GET request returned by the function:

    Ответ функции в браузере

Дополнительная информацияNext steps

С помощью Visual Studio вы создали и опубликовали в Azure приложение-функцию C# с простой функцией, активируемой HTTP.You have used Visual Studio to create and publish a C# function app in Azure with a simple HTTP triggered function. Дополнительные сведения о разработке функций, таких как библиотеки класса .NET, см. в статье Справочник разработчика C# по функциям Azure.To learn more about developing functions as .NET class libraries, see Azure Functions C# developer reference.

Connect functions to Azure Storage using Visual Studio Code (Подключение функций к службе хранилища Azure с помощью Visual Studio Code)Add an Azure Storage queue binding to your function