Azure Functions — przewodnik dla deweloperówAzure Functions developer guide

W Azure Functions określone funkcje udostępniają kilka podstawowych pojęć i składników technicznych, niezależnie od używanego języka lub powiązania.In Azure Functions, specific functions share a few core technical concepts and components, regardless of the language or binding you use. Przed przejściem do szczegółów szczegółowych informacji dotyczących danego języka lub powiązania należy zapoznać się z tym omówieniem, który ma zastosowanie do wszystkich z nich.Before you jump into learning details specific to a given language or binding, be sure to read through this overview that applies to all of them.

W tym artykule przyjęto założenie, że przegląd Azure Functionszostał już odczytany.This article assumes that you've already read the Azure Functions overview.

Kod funkcjiFunction code

Funkcja jest podstawową koncepcją w Azure Functions.A function is the primary concept in Azure Functions. Funkcja zawiera dwa ważne elementy — kod, który można napisać w różnych językach, i kilka konfiguracji, function.jsna pliku.A function contains two important pieces - your code, which can be written in a variety of languages, and some config, the function.json file. W przypadku skompilowanych języków ten plik konfiguracji jest generowany automatycznie z adnotacji w kodzie.For compiled languages, this config file is generated automatically from annotations in your code. W przypadku języków skryptów należy samodzielnie dostarczyć plik konfiguracji.For scripting languages, you must provide the config file yourself.

function.jsw pliku definiuje wyzwalacz funkcji, powiązania i inne ustawienia konfiguracji.The function.json file defines the function's trigger, bindings, and other configuration settings. Każda funkcja ma jeden i tylko jeden wyzwalacz.Every function has one and only one trigger. Środowisko uruchomieniowe używa tego pliku konfiguracji do określenia zdarzeń do monitorowania oraz przekazywania danych do i zwracania danych z wykonywania funkcji.The runtime uses this config file to determine the events to monitor and how to pass data into and return data from a function execution. Poniżej znajduje się przykład function.jspliku.The following is an example function.json file.

{
    "disabled":false,
    "bindings":[
        // ... bindings here
        {
            "type": "bindingType",
            "direction": "in",
            "name": "myParamName",
            // ... more depending on binding
        }
    ]
}

Aby uzyskać więcej informacji, zobacz temat Azure Functions wyzwalacze i koncepcje powiązań.For more information, see Azure Functions triggers and bindings concepts.

bindingsWłaściwość służy do konfigurowania wyzwalaczy i powiązań.The bindings property is where you configure both triggers and bindings. Każde powiązanie udostępnia kilka typowych ustawień i niektóre ustawienia, które są specyficzne dla określonego typu powiązania.Each binding shares a few common settings and some settings which are specific to a particular type of binding. Każde powiązanie wymaga następujących ustawień:Every binding requires the following settings:

WłaściwośćProperty Wartości/typyValues/Types KomentarzeComments
type ciągstring Typ powiązania.Binding type. Na przykład queueTrigger.For example, queueTrigger.
direction "in", "out"'in', 'out' Wskazuje, czy powiązanie służy do otrzymywania danych do funkcji, czy wysyłania danych z funkcji.Indicates whether the binding is for receiving data into the function or sending data from the function.
name ciągstring Nazwa, która jest używana dla powiązanych danych w funkcji.The name that is used for the bound data in the function. W języku C# jest to nazwa argumentu; w przypadku języka JavaScript jest to klucz na liście kluczy/wartości.For C#, this is an argument name; for JavaScript, it's the key in a key/value list.

Aplikacja funkcjiFunction app

Aplikacja funkcji udostępnia kontekst wykonywania na platformie Azure, w którym działają funkcje.A function app provides an execution context in Azure in which your functions run. W związku z tym jest to jednostka wdrażania i zarządzania dla swoich funkcji.As such, it is the unit of deployment and management for your functions. Aplikacja funkcji składa się z co najmniej jednej konkretnej funkcji, która jest zarządzana, wdrażana i skalowana ze sobą.A function app is comprised of one or more individual functions that are managed, deployed, and scaled together. Wszystkie funkcje w aplikacji funkcji mają ten sam plan cenowy, metodę wdrażania i wersję środowiska uruchomieniowego.All of the functions in a function app share the same pricing plan, deployment method, and runtime version. Zastanów się nad aplikacją funkcji, aby zorganizować i wspólnie zarządzać funkcjami.Think of a function app as a way to organize and collectively manage your functions. Aby dowiedzieć się więcej, zobacz jak zarządzać aplikacją funkcji.To learn more, see How to manage a function app.

Uwaga

Wszystkie funkcje w aplikacji funkcji muszą zostać utworzone w tym samym języku.All functions in a function app must be authored in the same language. W poprzednich wersjach środowiska uruchomieniowego Azure Functions nie było to wymagane.In previous versions of the Azure Functions runtime, this wasn't required.

Struktura folderówFolder structure

Kod dla wszystkich funkcji w określonej aplikacji funkcji znajduje się w folderze głównym projektu zawierającym plik konfiguracji hosta i jeden lub więcej podfolderów.The code for all the functions in a specific function app is located in a root project folder that contains a host configuration file and one or more subfolders. Każdy podfolder zawiera kod dla oddzielnej funkcji.Each subfolder contains the code for a separate function. Struktura folderów jest pokazana w następującej reprezentacji:The folder structure is shown in the following representation:

FunctionApp
 | - host.json
 | - MyFirstFunction
 | | - function.json
 | | - ...  
 | - MySecondFunction
 | | - function.json
 | | - ...  
 | - SharedCode
 | - bin

W wersji 2. x i nowszych w czasie wykonywania funkcji wszystkie funkcje w aplikacji funkcji muszą mieć ten sam stos języka.In version 2.x and higher of the Functions runtime, all functions in the function app must share the same language stack.

host.jsw pliku zawiera konfiguracje specyficzne dla środowiska uruchomieniowego i znajduje się w folderze głównym aplikacji funkcji.The host.json file contains runtime-specific configurations and is in the root folder of the function app. Folder bin zawiera pakiety i inne pliki bibliotek wymagane przez aplikację funkcji.A bin folder contains packages and other library files that the function app requires. Zobacz wymagania specyficzne dla języka dla projektu aplikacji funkcji:See the language-specific requirements for a function app project:

Powyższa wartość to domyślna (i zalecana) struktura folderów dla aplikacji funkcji.The above is the default (and recommended) folder structure for a Function app. Jeśli chcesz zmienić lokalizację pliku kodu funkcji, zmodyfikuj scriptFile sekcję function.jsw pliku.If you wish to change the file location of a function's code, modify the scriptFile section of the function.json file. Zalecamy również użycie wdrożenia pakietu do wdrożenia projektu w aplikacji funkcji na platformie Azure.We also recommend using package deployment to deploy your project to your function app in Azure. Możesz również korzystać z istniejących narzędzi, takich jak ciągła integracja i wdrażanie oraz Azure DevOps.You can also use existing tools like continuous integration and deployment and Azure DevOps.

Uwaga

Jeśli wdrażasz pakiet ręcznie, pamiętaj o wdrożeniu host.jsw folderach plików i funkcji bezpośrednio do wwwroot folderu.If deploying a package manually, make sure to deploy your host.json file and function folders directly to the wwwroot folder. Nie dołączaj wwwroot folderu we wdrożeniach.Do not include the wwwroot folder in your deployments. W przeciwnym razie możesz się dokończyć z wwwroot\wwwroot folderami.Otherwise, you end up with wwwroot\wwwroot folders.

Korzystanie z lokalnych narzędzi i publikowanieUse local tools and publishing

Aplikacje funkcji można tworzyć i publikować przy użyciu różnych narzędzi, w tym Visual Studio, Visual Studio Code, IntelliJ, zaćmieniei Azure Functions Core Tools.Function apps can be authored and published using a variety of tools, including Visual Studio, Visual Studio Code, IntelliJ, Eclipse, and the Azure Functions Core Tools. Aby uzyskać więcej informacji, zobacz temat kod i test Azure Functions lokalnie.For more information, see Code and test Azure Functions locally.

Jak edytować funkcje w Azure PortalHow to edit functions in the Azure portal

Edytor funkcji wbudowanych w Azure Portal pozwala aktualizować kod i function.jsna pliku bezpośrednio w wierszu.The Functions editor built into the Azure portal lets you update your code and your function.json file directly inline. Jest to zalecane tylko w przypadku małych zmian lub prób koncepcji — najlepszym rozwiązaniem jest użycie lokalnego narzędzia programistycznego, takiego jak VS Code.This is recommended only for small changes or proofs of concept - best practice is to use a local development tool like VS Code.

Wykonywanie równoległeParallel execution

Gdy wielokrotne zdarzenia wyzwalające są wykonywane szybciej niż środowisko uruchomieniowe funkcji pojedynczego wątku, może je przetworzyć, ale środowisko uruchomieniowe może wielokrotnie wywołać funkcję.When multiple triggering events occur faster than a single-threaded function runtime can process them, the runtime may invoke the function multiple times in parallel. Jeśli aplikacja funkcji korzysta z planu hostingu zużycia, aplikacja funkcji może automatycznie skalować w poziomie.If a function app is using the Consumption hosting plan, the function app could scale out automatically. Każde wystąpienie aplikacji funkcji, niezależnie od tego, czy aplikacja działa zgodnie z planem hostingu zużycia czy regularnym App Service planem hostingu, może przetwarzać współbieżne wywołania funkcji równolegle przy użyciu wielu wątków.Each instance of the function app, whether the app runs on the Consumption hosting plan or a regular App Service hosting plan, might process concurrent function invocations in parallel using multiple threads. Maksymalna liczba współbieżnych wywołań funkcji w każdym wystąpieniu aplikacji funkcji różni się w zależności od typu używanego wyzwalacza oraz zasobów używanych przez inne funkcje w aplikacji funkcji.The maximum number of concurrent function invocations in each function app instance varies based on the type of trigger being used as well as the resources used by other functions within the function app.

Przechowywanie wersji środowiska uruchomieniowego funkcjiFunctions runtime versioning

Wersję środowiska uruchomieniowego funkcji można skonfigurować przy użyciu FUNCTIONS_EXTENSION_VERSION Ustawienia aplikacji.You can configure the version of the Functions runtime using the FUNCTIONS_EXTENSION_VERSION app setting. Na przykład wartość "~ 3" wskazuje, że aplikacja funkcji będzie używać 3. x jako wersji głównej.For example, the value "~3" indicates that your function app will use 3.x as its major version. Aplikacje funkcji są uaktualniane do każdej nowej wersji pomocniczej po ich wydaniu.Function apps are upgraded to each new minor version as they are released. Aby uzyskać więcej informacji, w tym o sposobie wyświetlania dokładnej wersji aplikacji funkcji, zobacz jak dowiedzieć się, jak kierować Azure Functions wersje środowiska uruchomieniowego.For more information, including how to view the exact version of your function app, see How to target Azure Functions runtime versions.

RepozytoriaRepositories

Kod dla Azure Functions jest otwartym źródłem i przechowywany w repozytoriach usługi GitHub:The code for Azure Functions is open source and stored in GitHub repositories:

PowiązaniaBindings

Oto tabela wszystkich obsługiwanych powiązań.Here is a table of all supported bindings.

W tej tabeli przedstawiono powiązania, które są obsługiwane w głównych wersjach środowiska uruchomieniowego Azure Functions:This table shows the bindings that are supported in the major versions of the Azure Functions runtime:

TypType 1.x1.x 2. x i więcej12.x and higher1 WyzwalaczTrigger Dane wejścioweInput Dane wyjścioweOutput
Blob StorageBlob storage
Azure Cosmos DBAzure Cosmos DB
Dapr3Dapr3
Event GridEvent Grid
Event HubsEvent Hubs
Elementy webhook & HTTPHTTP & webhooks
IoT HubIoT Hub
Kafka2Kafka2
Mobile AppsMobile Apps
Notification HubsNotification Hubs
Queue StorageQueue storage
RabbitMQ2RabbitMQ2
SendGridSendGrid
Service BusService Bus
SignalRSignalR
Table StorageTable storage
CzasomierzTimer
TwilioTwilio

1 począwszy od wersji 2. x środowiska uruchomieniowego, wszystkie powiązania z wyjątkiem http i Timer muszą być zarejestrowane.1 Starting with the version 2.x runtime, all bindings except HTTP and Timer must be registered. Zobacz Rejestrowanie rozszerzeń powiązań.See Register binding extensions.

2 wyzwalacze nie są obsługiwane w planie zużycia.2 Triggers aren't supported in the Consumption plan. Wymaga wyzwalaczy sterowanych przez środowisko uruchomieniowe.Requires runtime-driven triggers.

3 obsługiwane tylko w Kubernetes, IoT Edge i innych trybach samoobsługowych.3 Supported only in Kubernetes, IoT Edge, and other self-hosted modes only.

Masz problemy z błędami pochodzącymi z powiązań?Having issues with errors coming from the bindings? Zapoznaj się z dokumentacją dotyczącą kodów błędów powiązań Azure Functions .Review the Azure Functions Binding Error Codes documentation.

Raportowanie problemówReporting Issues

ElementItem OpisDescription ŁączeLink
Środowisko uruchomienioweRuntime Host skryptów, wyzwalacze & powiązań, obsługa językaScript Host, Triggers & Bindings, Language Support Plik problemuFile an Issue
SzablonyTemplates Problemy z kodem z szablonem tworzeniaCode Issues with Creation Template Plik problemuFile an Issue
PortalPortal Problem z interfejsem użytkownika lub doświadczeniemUser Interface or Experience Issue Plik problemuFile an Issue

Następne krokiNext steps

Więcej informacji można znaleźć w następujących zasobach:For more information, see the following resources: