Краткое руководство. Создание первой функции из командной строки с помощью Azure CLIQuickstart: Create your first function from the command line using Azure CLI

В этом кратком руководстве рассматривается создание первой функции из командной строки или терминала.This quickstart topic walks you through how to create your first function from the command line or terminal. Используйте Azure CLI для создания приложения-функции, которое является независимой от сервера инфраструктурой, где размещается ваша функция.You use the Azure CLI to create a function app, which is the serverless infrastructure that hosts your function. Проект кода функции создается из шаблона с помощью основных инструментов службы "Функции Azure", которые также используются для развертывания проекта приложения-функции в Azure.The function code project is generated from a template by using the Azure Functions Core Tools, which is also used to deploy the function app project to Azure.

Выполните действия, приведенные ниже, с помощью компьютера Mac, Windows или Linux.You can follow the steps below using a Mac, Windows, or Linux computer.

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

Перед выполнением этого примера вам понадобится следующее:Before running this sample, you must have the following:

  • установить Azure Functions Core Tools версии 2.6.666 или более поздней;Install Azure Functions Core Tools version 2.6.666 or later.

  • Установка Azure CLI.Install the Azure CLI. В этой статье требуется Azure CLI 2.0 или более поздней версии.This article requires the Azure CLI version 2.0 or later. Чтобы узнать версию, выполните команду az --version.Run az --version to find the version you have. Можно также использовать Azure Cloud Shell.You can also use the Azure Cloud Shell.

  • Активная подписка Azure.An active Azure subscription.

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

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

Выполните следующую команду из командной строки, чтобы создать проект приложения-функции в папке MyFunctionProj текущего локального каталога.Run the following command from the command line to create a function app project in the MyFunctionProj folder of the current local directory. Также в MyFunctionProj создается репозиторий GitHub.A GitHub repo is also created in MyFunctionProj.

func init MyFunctionProj

Когда появится запрос, выберите среду выполнения рабочей роли из следующих языков:When prompted, select a worker runtime from the following language choices:

После создания проекта перейдите к его новой папке MyFunctionProj, используя следующую команду.After the project is created, use the following command to navigate to the new MyFunctionProj project folder.

cd MyFunctionProj

Включение пакетов расширенийEnable 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)"
    }
}

Создание функцииCreate a function

Следующая команда создает функцию с HTTP-триггером под названием MyHttpTrigger.The following command creates an HTTP-triggered function named MyHttpTrigger.

func new --name MyHttpTrigger --template "HttpTrigger"

При выполнении команды вы увидите выходные данные примерно следующего содержания.When the command executes, you see something like the following output:

The function "MyHttpTrigger" was created successfully from the "HttpTrigger" template.

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

Следующая команда запускает приложение-функцию.The following command starts the function app. Приложение выполняется с помощью той же среды выполнения функций Azure, что и в Azure.The app runs using the same Azure Functions runtime that is in Azure. Команда запуска зависит от языка проекта.The start command varies, depending on your project language.

C#C#

func start --build

JavaScriptJavaScript

func start

TypeScriptTypeScript

npm install
npm start     

При запуске узел функций записывает примерно следующие выходные данные, усеченные для удобства чтения:When the Functions host starts, it writes something like the following output, which has been truncated for readability:


                  %%%%%%
                 %%%%%%
            @   %%%%%%    @
          @@   %%%%%%      @@
       @@@    %%%%%%%%%%%    @@@
     @@      %%%%%%%%%%        @@
       @@         %%%%       @@
         @@      %%%       @@
           @@    %%      @@
                %%
                %

...

Content root path: C:\functions\MyFunctionProj
Now listening on: http://0.0.0.0:7071
Application started. Press Ctrl+C to shut down.

...

Http Functions:

        HttpTrigger: http://localhost:7071/api/MyHttpTrigger

[8/27/2018 10:38:27 PM] Host started (29486ms)
[8/27/2018 10:38:27 PM] Job host started

Скопируйте URL-адрес функции HttpTrigger из выходных данных среды выполнения и вставьте его в адресную строку браузера.Copy the URL of your HttpTrigger function from the runtime output and paste it into your browser's address bar. Добавьте строку запроса ?name=<yourname> в этот URL-адрес и выполните запрос.Append the query string ?name=<yourname> to this URL and execute the request. Ниже показан ответ в браузере на запрос GET, возвращаемый локальной функцией.The following shows the response in the browser to the GET request returned by the local function:

Локальное тестирование в браузере

Теперь, когда вы выполнили функцию локально, можно создать приложение-функцию и другие необходимые ресурсы в Azure.Now that you have run your function locally, you can create the function app and other required resources in Azure.

Создание группы ресурсовCreate a resource group

Создайте группу ресурсов с помощью команды az group create.Create a resource group with the az group create command. Группа ресурсов Azure — это логический контейнер, в котором происходит развертывание ресурсов Azure (приложений-функций, баз данных и учетных записей хранения) и управление ими.An Azure resource group is a logical container into which Azure resources like function apps, databases, and storage accounts are deployed and managed.

В следующем примере создается группа ресурсов myResourceGroup.The following example creates a resource group named myResourceGroup.
Если вы не используете Cloud Shell, сначала войдите с помощью az login.If you aren't using Cloud Shell, sign in first using az login.

az group create --name myResourceGroup --location westeurope

Группу ресурсов и ресурсы целесообразно создавать в ближайшем к вам регионе.You generally create your resource group and the resources in a region near you.

Создание учетной записи хранения AzureCreate an Azure Storage account

В службе "Функции" используется учетная запись хранения Azure общего назначения для сохранения состояния и других сведений о функциях.Functions uses a general-purpose account in Azure Storage to maintain state and other information about your functions. Создайте учетную запись хранения общего назначения в созданной вами группе ресурсов с помощью команды az storage account create.Create a general-purpose storage account in the resource group you created by using the az storage account create command.

В следующей команде замените <storage_name> глобально уникальным именем своей учетной записи хранения везде, где встречается этот заполнитель.In the following command, substitute a globally unique storage account name where you see the <storage_name> placeholder. Имя учетной записи хранения должно содержать от 3 до 24 символов и состоять только из цифр и строчных букв.Storage account names must be between 3 and 24 characters in length and may contain numbers and lowercase letters only.

az storage account create --name <storage_name> --location westeurope --resource-group myResourceGroup --sku Standard_LRS

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

Для выполнения функций вам понадобится приложение-функция,You must have a function app to host the execution of your functions. предоставляющее среду для выполнения кода функции без сервера.The function app provides an environment for serverless execution of your function code. Это позволяет группировать функции в логические единицы и упростить развертывание и совместное использование ресурсов, а также управление ими.It lets you group functions as a logic unit for easier management, deployment, and sharing of resources. Создайте приложение-функцию с помощью команды az functionapp create.Create a function app by using the az functionapp create command.

В следующей команде замените <APP_NAME> уникальным именем вашего приложения функции, а <STORAGE_NAME> — именем учетной записи хранения.In the following command, substitute a unique function app name where you see the <APP_NAME> placeholder and the storage account name for <STORAGE_NAME>. <APP_NAME> используется по умолчанию в качестве домена DNS для приложения-функции. Поэтому это имя должно быть уникальным для всех приложений в Azure.The <APP_NAME> is used as the default DNS domain for the function app, and so the name needs to be unique across all apps in Azure. Также следует задать среду выполнения <language> для приложения-функции из dotnet (C#) или node (JavaScript).You should also set the <language> runtime for your function app, from dotnet (C#) or node (JavaScript).

az functionapp create --resource-group myResourceGroup --consumption-plan-location westeurope \
--name <APP_NAME> --storage-account  <STORAGE_NAME> --runtime <language>

Если задать параметр consumption-plan-location, приложение-функция размещено в плане размещения по мере использования.Setting the consumption-plan-location parameter means that the function app is hosted in a Consumption hosting plan. В этом бессерверном плане ресурсы добавляются динамически, когда этого требуют функции, и оплачивается только выполнение функций.In this serverless plan, resources are added dynamically as required by your functions and you only pay when functions are running. Дополнительные сведения см. в статье Выбор правильного плана обслуживания для Функций Azure.For more information, see Choose the correct hosting plan.

После создания приложения-функции в Azure CLI отображаются следующие сведения:After the function app has been created, the Azure CLI shows information similar to the following example:

{
  "availabilityState": "Normal",
  "clientAffinityEnabled": true,
  "clientCertEnabled": false,
  "containerSize": 1536,
  "dailyMemoryTimeQuota": 0,
  "defaultHostName": "quickstart.azurewebsites.net",
  "enabled": true,
  "enabledHostNames": [
    "quickstart.azurewebsites.net",
    "quickstart.scm.azurewebsites.net"
  ],
   ....
    // Remaining output has been truncated for readability.
}

Развертывание проекта приложения-функции в облако AzureDeploy the function app project to Azure

Создав в Azure приложение-функцию, вы можете развернуть код проекта в Azure с помощью команды Core Tools func azure functionapp publish.After the function app is created in Azure, you can use the func azure functionapp publish Core Tools command to deploy your project code to Azure. В этом примере замените <APP_NAME> на имя приложения, созданного на предыдущем этапе.In these examples, replace <APP_NAME> with the name of your app from the previous step.

C#, JavaScriptC# / JavaScript

func azure functionapp publish <APP_NAME>

PythonPython

func azure functionapp publish <APP_NAME> --build remote

TypeScriptTypeScript

npm run build:production 
func azure functionapp publish <APP_NAME>

Появится примерно такой результат (сокращен для удобства чтения):You'll see output similar to the following, which has been truncated for readability:

Getting site publishing info...
...

Preparing archive...
Uploading content...
Upload completed successfully.
Deployment completed successfully.
Syncing triggers...
Functions in myfunctionapp:
    HttpTrigger - [httpTrigger]
        Invoke url: https://myfunctionapp.azurewebsites.net/api/httptrigger?code=cCr8sAxfBiow548FBDLS1....

Скопируйте значение Invoke url для HttpTrigger, с помощью которого теперь можно будет протестировать функцию в Azure.Copy the Invoke url value for your HttpTrigger, which you can now use to test your function in Azure. URL-адрес содержит значение строки запроса code, которое является ключом функции.The URL contains a code query string value that is your function key. Если вы используете этот ключ, другим пользователям будет сложно вызвать конечную точку триггера HTTP в Azure.This key makes it difficult for others to call your HTTP trigger endpoint in Azure.

Проверка функции в AzureVerify the function in Azure

Для проверки развернутой функции используйте cURL.Use cURL to verify the deployed function. С помощью URL-адреса и ключа функции, скопированным на предыдущем шаге, добавьте строку запроса &name=<yourname> к URL-адресу.Using the URL, including the function key, that you copied from the previous step, append the query string &name=<yourname> to the URL.

Использование cURL для вызова функции в Azure

Кроме того, вы можете вставить скопированный URL-адрес с ключом функции в адресную строку в веб-браузере.You can also paste the copied URL, including the function key, into the address bar of your web browser. Перед выполнением запроса добавьте в URL-адрес строку запроса &name=<yourname>.Again, append the query string &name=<yourname> to the URL before you execute the request.

Использование веб-браузера для вызова функции

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

Другие краткие руководства в этой коллекции созданы на основе этого документа.Other quickstarts in this collection build upon this quickstart. Если вы планируете продолжать работу с последующими краткими руководствами или обычными руководствами, не удаляйте созданные ресурсы.If you plan to continue on with subsequent quickstarts or with the tutorials, don't clean up the resources created in this quickstart. Если вы не планируете продолжать работу, удалите все созданные ресурсы с помощью следующей команды:If you don't plan to continue, use the following command to delete all resources created in this quickstart:

az group delete --name myResourceGroup

Выберите y при появлении соответствующего запроса.Select y when prompted.

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

Дополнительные сведения о локальной разработке функций Azure с помощью основных инструментов решения "Функции Azure".Learn more about developing Azure Functions locally using the Azure Functions Core Tools.