Pojęcia powiązań i wyzwalaczy usługi Azure Functions
W tym artykule przedstawiono ogólne pojęcia związane z wyzwalaczami i powiązaniami funkcji.
Wyzwalacze powodują uruchomienie funkcji. Wyzwalacz definiuje sposób wywoływania funkcji. Funkcja musi mieć dokładnie jeden wyzwalacz. Wyzwalacze mają skojarzone dane, które często są dostarczane jako ładunek funkcji.
Powiązanie z funkcją to sposób deklaratywnego łączenia innego zasobu z funkcją; Powiązania mogą być połączone jako powiązania wejściowe, powiązania wyjściowe lub oba te powiązania. Dane z powiązań są podawane do funkcji jako parametry.
Możesz mieszać i dopasowywać różne powiązania, aby dostosować je do własnych potrzeb. Powiązania są opcjonalne, a funkcja może mieć jedno lub wiele powiązań wejściowych i/lub wyjściowych.
Wyzwalacze i powiązania pozwalają uniknąć trwałego kodowania dostępu do innych usług. Funkcja będzie odbierać dane (np. zawartość komunikatu kolejki) w parametrach funkcji. Możesz wysłać dane (np. w celu utworzenia komunikatu kolejki) przy użyciu wartości zwracanej przez funkcję.
Zapoznaj się z poniższymi przykładami sposobu implementacji różnych funkcji.
Przykładowy scenariusz | Wyzwalacz | Powiązanie wejściowe | Powiązanie wyjściowe |
---|---|---|---|
Zostanie wyświetlony nowy komunikat kolejki, który uruchamia funkcję zapisu w innej kolejce. | Kolejka* | Brak | Kolejka* |
Zaplanowane zadanie odczytuje zawartość usługi Blob Storage i tworzy nowy dokument usługi Azure Cosmos DB. | Czasomierz | Blob Storage | Azure Cosmos DB |
Usługa Event Grid służy do odczytywania obrazu z usługi Blob Storage i dokumentu z usługi Azure Cosmos DB w celu wysłania wiadomości e-mail. | Event Grid | Blob Storage i Azure Cosmos DB | SendGrid |
Element webhook, który używa programu Microsoft Graph do aktualizowania arkusza programu Excel. | HTTP | Brak | Microsoft Graph |
* Reprezentuje różne kolejki
Te przykłady nie mają być wyczerpujące, ale przedstawiono sposób używania wyzwalaczy i powiązań razem.
Definicje wyzwalaczy i powiązań
Wyzwalacze i powiązania są definiowane inaczej w zależności od języka programowania.
Język | Wyzwalacze i powiązania są konfigurowane przez... |
---|---|
Biblioteka klas języka C# | dekorowanie metod i parametrów przy użyciu atrybutów języka C# |
Java | dekorowanie metod i parametrów za pomocą adnotacji języka Java |
JavaScript/PowerShell/Python/TypeScript | aktualizowanie function.json (schemat) |
W przypadku języków korzystających z function.json portal udostępnia interfejs użytkownika do dodawania powiązań na karcie Integracja . Plik można również edytować bezpośrednio w portalu na karcie Kod i test funkcji. Program Visual Studio Code umożliwia łatwe dodawanie powiązania do pliku function.json, postępując zgodnie z wygodnym zestawem monitów.
W środowiskach .NET i Java typ parametru definiuje typ danych wejściowych. Na przykład użyj polecenia string
, aby powiązać z tekstem wyzwalacza kolejki, tablicę bajtów do odczytu jako binarną i niestandardowy typ, aby usunąć serializacji z obiektem. Ponieważ funkcje biblioteki klas platformy .NET i funkcje języka Java nie korzystają z function.json dla definicji powiązań, nie można ich tworzyć i edytować w portalu. Edytowanie portalu języka C# jest oparte na skry skrycie języka C#, który używa function.json zamiast atrybutów.
Aby dowiedzieć się więcej na temat dodawania powiązań do istniejących funkcji, zobacz Łączenie funkcji z usługami platformy Azure przy użyciu powiązań.
W przypadku języków dynamicznie wpisanych, takich jak JavaScript, użyj dataType
właściwości w pliku function.json . Na przykład aby odczytać zawartość żądania HTTP w formacie binarnym, ustaw wartość dataType
binary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
Inne opcje dla dataType
programu to stream
i string
.
Kierunek wiązania
Wszystkie wyzwalacze i powiązania mają direction
właściwość w pliku function.json :
- W przypadku wyzwalaczy kierunek jest zawsze następujący:
in
- Używanie
in
powiązań wejściowych i wyjściowych orazout
- Niektóre powiązania obsługują specjalny kierunek
inout
. Jeśli używaszinout
programu , tylko edytor zaawansowany jest dostępny za pośrednictwem karty Integracja w portalu.
Jeśli używasz atrybutów w bibliotece klas do konfigurowania wyzwalaczy i powiązań, kierunek jest podawany w konstruktorze atrybutu lub wnioskowanym z typu parametru.
Dodawanie powiązań do funkcji
Funkcję można połączyć z innymi usługami przy użyciu powiązań wejściowych lub wyjściowych. Dodaj powiązanie, dodając jego określone definicje do funkcji. Aby dowiedzieć się, jak to zrobić, zobacz Dodawanie powiązań do istniejącej funkcji w usłudze Azure Functions.
Obsługiwane powiązania
W tej tabeli przedstawiono powiązania obsługiwane w głównych wersjach środowiska uruchomieniowego usługi Azure Functions:
Typ | 1.x1 | 2.x i nowsze2 | Wyzwalacz | Dane wejściowe | Dane wyjściowe |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Data Explorer | ✔ | ✔ | ✔ | ||
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr4 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
Http i elementy webhook | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka3 | ✔ | ✔ | ✔ | ||
Mobile Apps | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
Redis | ✔ | ✔ | |||
RabbitMQ3 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Table Storage | ✔ | ✔ | ✔ | ✔ | |
Czasomierz | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 Obsługa zakończy się w wersji 1.x środowiska uruchomieniowego usługi Azure Functions 14 września 2026 r. Zdecydowanie zalecamy przeprowadzenie migracji aplikacji do wersji 4.x w celu uzyskania pełnej pomocy technicznej.
2 Począwszy od środowiska uruchomieniowego w wersji 2.x, wszystkie powiązania z wyjątkiem protokołu HTTP i czasomierza muszą być zarejestrowane. Zobacz Rejestrowanie rozszerzeń powiązań.
3 Wyzwalacze nie są obsługiwane w planie Zużycie. Wymaga wyzwalaczy opartych na środowisku uruchomieniowym.
4 Obsługiwane tylko w rozwiązaniach Kubernetes, IoT Edge i innych trybach hostowanych samodzielnie.
Aby uzyskać informacje o powiązaniach w wersji zapoznawczej lub są zatwierdzone do użytku produkcyjnego, zobacz Obsługiwane języki.
Określone wersje rozszerzenia powiązania są obsługiwane tylko wtedy, gdy podstawowy zestaw SDK usługi jest obsługiwany. Zmiany obsługi w podstawowej wersji zestawu SDK usługi mają wpływ na obsługę rozszerzenia korzystającego.
Przykłady kodu powiązań
Poniższa tabela zawiera przykłady konkretnych typów powiązań, które pokazują, jak pracować z powiązaniami w funkcjach. Najpierw wybierz kartę języka odpowiadającą projektowi.
Kod powiązania dla języka C# zależy od określonego modelu procesu.
Usługa | Przykłady | Przykłady |
---|---|---|
Blob storage | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Data Explorer | Dane wejściowe Wyjście |
Link |
Azure SQL | Wyzwalacz Dane wejściowe Wyjście |
Link |
Event Grid | Wyzwalacz Wyjście |
Link |
Event Hubs | Wyzwalacz Wyjście |
|
Usługa IoT Hub | Wyzwalacz Wyjście |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Wyjście |
Link |
RabbitMQ | Wyzwalacz Wyjście |
|
SendGrid | Wyjście | |
Service Bus | Wyzwalacz Wyjście |
Link |
SignalR | Wyzwalacz Dane wejściowe Wyjście |
|
Table Storage | Dane wejściowe Wyjście |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Wyjście | Link |
Usługa | Przykłady | Przykłady |
---|---|---|
Blob storage | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Data Explorer | Dane wejściowe Wyjście |
Link |
Azure SQL | Wyzwalacz Dane wejściowe Wyjście |
|
Event Grid | Wyzwalacz Wyjście |
Link |
Event Hubs | Wyzwalacz Wyjście |
|
Usługa IoT Hub | Wyzwalacz Wyjście |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Wyjście |
Link |
RabbitMQ | Wyzwalacz Wyjście |
|
SendGrid | Wyjście | |
Service Bus | Wyzwalacz Wyjście |
Link |
SignalR | Wyzwalacz Dane wejściowe Wyjście |
|
Table Storage | Dane wejściowe Wyjście |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Wyjście | Link |
Usługa | Przykłady | Przykłady |
---|---|---|
Blob storage | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Data Explorer | Dane wejściowe Wyjście |
|
Azure SQL | Wyzwalacz Dane wejściowe Wyjście |
Link |
Event Grid | Wyzwalacz Wyjście |
Link |
Event Hubs | Wyzwalacz Wyjście |
|
Usługa IoT Hub | Wyzwalacz Wyjście |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Wyjście |
Link |
RabbitMQ | Wyzwalacz Wyjście |
|
SendGrid | Wyjście | |
Service Bus | Wyzwalacz Wyjście |
Link |
SignalR | Wyzwalacz Dane wejściowe Wyjście |
|
Table Storage | Dane wejściowe Wyjście |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Wyjście | Link |
Usługa | Przykłady | Przykłady |
---|---|---|
Blob storage | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure SQL | Wyzwalacz Dane wejściowe Wyjście |
|
Event Grid | Wyzwalacz Wyjście |
Link |
Event Hubs | Wyzwalacz Wyjście |
|
Usługa IoT Hub | Wyzwalacz Wyjście |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Wyjście |
Link |
RabbitMQ | Wyzwalacz Wyjście |
|
SendGrid | Wyjście | |
Service Bus | Wyzwalacz Wyjście |
Link |
SignalR | Wyzwalacz Dane wejściowe Wyjście |
|
Table Storage | Dane wejściowe Wyjście |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Wyjście | Link |
Kod powiązania dla języka Python zależy od wersji modelu języka Python.
Usługa | Przykłady | Przykłady |
---|---|---|
Blob storage | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Wyjście |
Link |
Azure Data Explorer | Dane wejściowe Wyjście |
|
Azure SQL | Wyzwalacz Dane wejściowe Wyjście |
Link |
Event Grid | Wyzwalacz Wyjście |
Link |
Event Hubs | Wyzwalacz Wyjście |
|
Usługa IoT Hub | Wyzwalacz Wyjście |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Wyjście |
Link |
RabbitMQ | Wyzwalacz Wyjście |
|
SendGrid | Wyjście | |
Service Bus | Wyzwalacz Wyjście |
Link |
SignalR | Wyzwalacz Dane wejściowe Wyjście |
|
Table Storage | Dane wejściowe Wyjście |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Wyjście | Link |
Powiązania niestandardowe
Można tworzyć niestandardowe powiązania wejściowe i wyjściowe. Powiązania muszą być tworzone na platformie .NET, ale mogą być używane z dowolnego obsługiwanego języka. Aby uzyskać więcej informacji na temat tworzenia powiązań niestandardowych, zobacz Tworzenie niestandardowych powiązań wejściowych i wyjściowych.
Zasoby
- Powiązania wyrażeń i wzorców
- Używanie wartości zwracanej funkcji platformy Azure
- Jak zarejestrować wyrażenie powiązania
- Testowanie:
- Obsługa błędów powiązań