Краткое руководство. Создание первой функции в Azure с помощью Visual StudioQuickstart: Create your first function in Azure using Visual Studio

Из этой статьи вы узнаете, как создать функцию класса C# на основе библиотеки, которая отвечает на HTTP-запросы, используя Visual Studio.In this article, you use Visual Studio to create a C# class library-based function that responds to HTTP requests. После тестирования кода в локальной среде его необходимо развернуть в бессерверной среде Функций Azure.After testing the code locally, you deploy it to the serverless environment of Azure Functions.

Выполнение этого краткого руководства предполагает небольшую дополнительную плату в несколько центов США в учетной записи Azure.Completing this quickstart incurs a small cost of a few USD cents or less in your Azure account.

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

Для работы с этим руководством сначала установите Visual Studio 2019.To complete this tutorial, first install Visual Studio 2019. Во время установки обязательно выберите рабочую нагрузку Разработка для Azure.Ensure you select the Azure development workload during installation. Если вы хотите создать проект "Функции Azure" с помощью Visual Studio 2017, необходимо сначала установить новейшие инструменты Функций Azure.If you want to create an Azure Functions project by using Visual Studio 2017 instead, you must first install the latest Azure Functions tools.

Установка 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 you can publish to a function app in Azure. Приложение-функция позволяет группировать функции в логические единицы и упростить развертывание, масштабирование и совместное использование ресурсов, а также управление ими.You can use a function app to group functions as a logical unit for easier management, deployment, scaling, and sharing of resources.

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

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

  3. В разделе Настроить новый проект введите имя проекта, а затем выберите команду Создать.In Configure your new project, enter a Project name for your project, and then 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 используйте значения, указанные в таблице ниже.For the Create a new Azure Functions application settings, use the values in the following table:

    ПараметрSetting ЗначениеValue ОписаниеDescription
    Functions runtime (Среда выполнения функций)Functions runtime Функции Azure v3
    (.NET Core)
    Azure Functions v3
    (.NET Core)
    С помощью этого значения создается проект функции, использующий среду выполнения Функций Azure версии 3.x, которая поддерживает .NET Core 3.x.This value creates a function project that uses the version 3.x runtime of Azure Functions, which supports .NET Core 3.x. Функции Azure 1.x поддерживают .NET Framework.Azure Functions 1.x supports the .NET Framework. Дополнительные сведения см. в обзоре версий среды выполнения Функций Azure.For more information, see Azure Functions runtime versions overview.
    Function template (Шаблон функции)Function template триггером HTTPHTTP trigger С помощью этого значения создается функция, которая активируется с помощью HTTP-запроса.This value creates a function triggered by an HTTP request.
    Учетная запись хранения (AzureWebJobsStorage)Storage account (AzureWebJobsStorage) Эмулятор храненияStorage emulator Так как для функции Azure требуется учетная запись хранения, она назначается или создается при публикации проекта в Azure.Because an Azure Function requires a storage account, one is assigned or created when you publish your project to Azure. При активации с помощью HTTP-запроса не используется строка подключения учетной записи хранения Azure. Для всех остальных типов активации требуется допустимая строка подключения к учетной записи хранения Azure.An HTTP trigger doesn't use an Azure Storage account connection string; all other trigger types require a valid Azure Storage account connection string.
    Уровень авторизации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 и веб-перехватчика.For more information about keys and authorization, see Authorization keys and HTTP and webhook bindings.

    Параметр проекта Функций Azure

    Убедитесь, что для параметра Уровень авторизации задано значение Анонимно.Make sure you set the Authorization level to Anonymous. Если вы выберете для функции уровень по умолчанию, нужно указать функциональную клавишу в запросах на доступ к конечной точке функции.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 trigger function.

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

Переименование функцииRename the function

Атрибут метода FunctionName задает имя функции. По умолчанию генерируется значение Function1.The FunctionName method attribute sets the name of the function, which by default is generated as Function1. Поскольку набор средств не позволяет переопределить имя функции по умолчанию при создании проекта, уделите минуту на то, чтобы создать более подходящее имя для класса функции, файла или метаданных.Since the tooling doesn't let you override the default function name when you create your project, take a minute to create a better name for the function class, file, and metadata.

  1. В проводнике щелкните правой кнопкой мыши файл Function1.cs и переименуйте его в HttpExample.cs.In File Explorer, right-click the Function1.cs file and rename it to HttpExample.cs.

  2. В коде переименуйте класс Function1 в HttpExample.In the code, rename the Function1 class to `HttpExample'.

  3. В методе HttpTrigger с именем Run переименуйте атрибут FunctionName в HttpExample.In the HttpTrigger method named Run, rename the FunctionName method attribute to HttpExample.

После переименования функцию можно протестировать на локальном компьютере.Now that you've renamed the function, you can test it on your local computer.

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

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

  1. Чтобы запустить функцию, нажмите клавишу F5 в Visual Studio.To run your function, press F5 in Visual Studio. Возможно, вам потребуется включить исключение брандмауэра, чтобы инструменты могли обрабатывать HTTP-запросы.You might need to enable a firewall exception so that the tools can handle HTTP requests. Уровни авторизации никогда не применяются при запуске функции в локальной среде.Authorization levels are never enforced when you run a function 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 run the request. На следующем изображении показан ответ в браузере на локальный запрос GET, возвращаемый функцией:The following image shows the response in the browser to the local GET request returned by the function:

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

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

Убедившись, что функция выполняется правильно на локальном компьютере, опубликуйте проект в Azure.After you've 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 есть приложение-функция.Before you can publish your project, you must have a function app in your Azure subscription. Для первой публикации проекта в 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. На вкладке Целевой объект выберите Azure. Выбор Azure в качестве целевого объекта

  3. На вкладке Указанный целевой объект выберите Приложение-функция Azure (Windows) .In Specific target, select Azure Function App (Windows)

    Выбор приложения-функции Azure

  4. На вкладке Экземпляр Функций выберите Создать функцию Azure… и используйте значения, указанные в следующей таблице.In Function Instance, select Create a new Azure Function... and then use the values specified in the following table:

    ПараметрSetting ЗначениеValue ОписаниеDescription
    имя;Name Глобально уникальное имяGlobally unique name Имя, которое однозначно идентифицирует новое приложение-функцию.Name that uniquely identifies your new function app. Используйте это имя или введите новое.Accept this name or enter a new name. Допустимые символы: a-z, 0-9 и -.Valid characters are: a-z, 0-9, and -.
    ПодпискаSubscription Ваша подпискаYour subscription Подписка Azure, которую нужно использовать.The Azure subscription to use. Используйте эту подписку или выберите новую из раскрывающегося списка.Accept this subscription or select a new one from the drop-down list.
    Группа ресурсовResource group Имя группы ресурсовName of your resource group Группа ресурсов, в которой создается приложение-функция.The resource group in which to create your function app. Выберите существующую группу ресурсов из раскрывающегося списка или нажмите Создать, чтобы создать новую.Select an existing resource group from the drop-down list or choose New to create a new resource group.
    Тип планаPlan Type ПотреблениеConsumption При публикации проекта в приложении-функции, которое работает в плане потребления, вы платите только за выполнение приложения-функции.When you publish your project to a function app that runs in a Consumption plan, you pay only for executions of your functions app. Другие планы размещения связаны с дополнительными расходами.Other hosting plans incur higher costs.
    РасположениеLocation Расположение Службы приложений.Location of the app service Выберите расположение в ближайшем к вам регионе или регионе, ближайшем к другим службам, к которым обращаются ваши функции.Choose a Location in a region near you or other services your functions access.
    Служба хранилища AzureAzure Storage Учетная запись хранения общего назначенияGeneral-purpose storage account Учетная запись хранения Azure — обязательный ресурс для среды выполнения Функций.An Azure Storage account is required by the Functions runtime. Выберите Создать, чтобы настроить учетную запись хранения общего назначения.Select New to configure a general-purpose storage account. Можно также использовать существующую учетную запись при условии, что она соответствует требованиям учетной записи хранения.You can also choose an existing account that meets the storage account requirements.

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

  5. Нажмите кнопку Создать, чтобы создать приложение-функцию и связанные с ним ресурсы в Azure.Select Create to create a function app and its related resources in Azure.

  6. На вкладке Экземпляр Функций установите флажок Run from package file (Запустить из файла пакета).In the Functions instance, make sure that Run from package file is checked. Приложение-функция развертывается с помощью Zip Deploy с включенным режимом Run-From-Package (Выполнение из пакета).Your function app is deployed using Zip Deploy with Run-From-Package mode enabled. Это рекомендуемый метод развертывания для проекта функций, так как он обеспечивает лучшую производительность.This is the recommended deployment method for your functions project, since it results in better performance.

    Завершение создания профиля

  7. Нажмите кнопку Готово и на странице "Публикация" выберите Опубликовать, чтобы развернуть пакет с файлами проекта в новом приложении-функции в Azure.Select Finish, and on the Publish page, select Publish to deploy the package containing your project files to your new function app in Azure.

    Когда развертывание будет завершено, корневой URL-адрес приложения-функции в Azure отобразится на вкладке Публикация.After the deployment completes the root URL of the function app in Azure is shown in the Publish tab.

  8. На вкладке "Публикация" выберите Управление в Cloud Explorer.In the Publish tab, choose Manage in Cloud Explorer. В результате в Cloud Explorer будет открыт новый ресурс функции-приложения Azure.This opens the new function app Azure resource in Cloud Explorer.

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

    В Cloud Explorer вы можете с помощью Visual Studio просматривать содержимое сайта, запускать и останавливать работу приложения-функции, а также переходить непосредственно к ресурсам функций-приложений в Azure и на портале Azure.Cloud Explorer lets you use Visual Studio to view the contents of the site, start and stop the function app, and browse directly to function app resources on Azure and in the Azure portal.

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

  1. В Cloud Explorer приложения-функция уже должно быть выбрано.In Cloud Explorer, your new function app should be selected. Если это не так, разверните свою подписку и выберите пункт Службы приложений, затем выберите новое приложение-функцию.If not, expand your subscription > App Services, and select your new function app.

  2. Щелкните правой кнопкой мыши приложение-функцию и выберите пункт Открыть в браузере.Right-click the function app and choose Open in Browser. В веб-браузере по умолчанию откроется корень приложения-функции и отобразится страница, где указано, что приложение-функция работает.This opens the root of your function app in your default web browser and displays the page that indicates your function app is running.

    Приложение-функция работает

  3. В адресной строке браузера добавьте строку /api/HttpExample?name=Functions к базовому URL-адресу и выполните запрос.In the address bar in the browser, append the string /api/HttpExample?name=Functions to the base URL and run the request.

    URL-адрес для вызова функции, активируемой HTTP-запросом, указывается в следующем формате:The URL that calls your HTTP trigger function is in the following format:

    http://<APP_NAME>.azurewebsites.net/api/HttpExample?name=Functions

  4. Перейдите по этому URL-адресу и увидите в браузере ответ на удаленный запрос GET, возвращаемый функцией. Он выглядит аналогично следующему примеру:Go to this URL and you see a response in the browser to the remote GET request returned by the function, which looks like the following example:

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

Очистка ресурсовClean up resources

Другие краткие руководства в этой коллекции созданы на основе этого документа.Other quickstarts in this collection build upon this quickstart. Если вы планируете работать с последующими краткими руководствами или с любыми службами, созданными при работе с этим руководством, не очищайте ресурсы.If you plan to work with subsequent quickstarts, tutorials, or with any of the services you have created in this quickstart, do not clean up the resources.

Под ресурсами в Azure подразумеваются приложения-функции, функции, учетные записи хранения и т. д.Resources in Azure refer to function apps, functions, storage accounts, and so forth. Они объединяются в группы ресурсов, при удалении которых удаляются и все данные в них.They're grouped into resource groups, and you can delete everything in a group by deleting the group.

Вы создали ресурсы для завершения этих кратких руководств.You created resources to complete these quickstarts. Вам могут быть выставлены счета за эти ресурсы в зависимости от состояния учетной записи и цен на службы.You may be billed for these resources, depending on your account status and service pricing. Если вам больше не нужны ресурсы, их можно удалить следующим образом:If you don't need the resources anymore, here's how to delete them:

  1. В Cloud Explorer разверните свою подписку и выберите пункт Службы приложений, щелкните правой кнопкой мыши приложение-функцию и выберите пункт Открыть на портале.In the Cloud Explorer, expand your subscription > App Services, right-click your function app, and choose Open in Portal.

  2. На странице приложения-функции выберите вкладку Обзор, а затем щелкните ссылку в разделе Группа ресурсов.In the function app page, select the Overview tab and then select the link under Resource group.

    Выбор группы ресурсов, которую требуется удалить со страницы приложения-функции

  3. На странице Группа ресурсов просмотрите список включенных ресурсов и убедитесь, что именно их нужно удалить.In the Resource group page, review the list of included resources, and verify that they're the ones you want to delete.

  4. Выберите Удалить группу ресурсов и следуйте инструкциям.Select Delete resource group, and follow the instructions.

    Удаление может занять несколько минут.Deletion may take a couple of minutes. После этого на несколько секунд появится уведомление.When it's done, a notification appears for a few seconds. Кроме того, можно выбрать значок колокольчика в верхней части страницы, чтобы просмотреть уведомление.You can also select the bell icon at the top of the page to view the notification.

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

В рамках этого краткого руководства вы с помощью Visual Studio создали и опубликовали в Azure приложение-функцию C# с простой функцией, активируемой HTTP-запросом.In this quickstart, you used Visual Studio to create and publish a C# function app in Azure with a simple HTTP trigger function.

Перейдите к следующей статье, чтобы узнать, как добавить привязку очереди службы хранилища Azure к этой функции:Advance to the next article to learn how to add an Azure Storage queue binding to your function:

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