Pojęcia powiązań i wyzwalaczy usługi Azure Functions
W tym artykule przedstawiono pojęcia wysokiego poziomu dotyczące wyzwalaczy i powiązań 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 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 implementowania 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ę do 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 aktualizuje arkusz programu Excel przy użyciu programu Microsoft Graph. | HTTP | Brak | Microsoft Graph |
* Reprezentuje różne kolejki
Te przykłady nie mają być wyczerpujące, ale są udostępniane w celu zilustrowania sposobu 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 za pomocą atrybutów języka C# |
Java | dekorowanie metod i parametrów za pomocą adnotacji Języka Java |
JavaScript/PowerShell/Python/TypeScript | aktualizowanie pliku function.json (schemat) |
W przypadku języków korzystających z pliku 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. 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ć tekst 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 opierają się na pliku function.json dla definicji powiązań, nie można ich tworzyć i edytować w portalu. Edytowanie portalu w języku C# jest oparte na skrycie języka C#, który używa pliku 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, które są dynamicznie wpisywane, takie jak JavaScript, należy użyć dataType
właściwości w pliku function.json . Aby na przykład odczytać zawartość żądania HTTP w formacie binarnym, ustaw wartość dataType
binary
:
{
"dataType": "binary",
"type": "httpTrigger",
"name": "req",
"direction": "in"
}
Inne opcje dataType
to stream
i string
.
Kierunek powiązania
Wszystkie wyzwalacze i powiązania mają direction
właściwość w pliku function.json :
- W przypadku wyzwalaczy kierunek jest zawsze
in
- Użycie
in
powiązań wejściowych i wyjściowychout
- Niektóre powiązania obsługują specjalny kierunek
inout
. Jeśli używasz programuinout
, tylko edytor zaawansowany jest dostępny za pośrednictwem karty Integracja w portalu.
W przypadku używania 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 Azure Functions.
Obsługiwane powiązania
W tej tabeli przedstawiono powiązania obsługiwane w głównych wersjach środowiska uruchomieniowego Azure Functions:
Typ | 1.x | 2.x i nowsze1 | Wyzwalacz | Dane wejściowe | Dane wyjściowe |
---|---|---|---|---|---|
Blob Storage | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure Cosmos DB | ✔ | ✔ | ✔ | ✔ | ✔ |
Azure SQL | ✔ | ✔ | ✔ | ✔ | |
Dapr3 | ✔ | ✔ | ✔ | ✔ | |
Event Grid | ✔ | ✔ | ✔ | ✔ | |
Event Hubs | ✔ | ✔ | ✔ | ✔ | |
Elementy webhook PROTOKOŁU HTTP & | ✔ | ✔ | ✔ | ✔ | |
IoT Hub | ✔ | ✔ | ✔ | ||
Kafka2 | ✔ | ✔ | ✔ | ||
Aplikacje mobilne | ✔ | ✔ | ✔ | ||
Notification Hubs | ✔ | ✔ | |||
Queue Storage | ✔ | ✔ | ✔ | ✔ | |
RabbitMQ2 | ✔ | ✔ | ✔ | ||
SendGrid | ✔ | ✔ | ✔ | ||
Service Bus | ✔ | ✔ | ✔ | ✔ | |
SignalR | ✔ | ✔ | ✔ | ✔ | |
Table Storage | ✔ | ✔ | ✔ | ✔ | |
Czasomierz | ✔ | ✔ | ✔ | ||
Twilio | ✔ | ✔ | ✔ |
1 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ń.
2 Wyzwalacze nie są obsługiwane w planie Zużycie. Wymaga wyzwalaczy opartych na środowisku uruchomieniowym.
3 Obsługiwane tylko w przypadku platformy Kubernetes, IoT Edge i innych trybów 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 określonych typów powiązań, które pokazują, jak pracować z powiązaniami w funkcjach. Najpierw wybierz kartę języka odpowiadającą projektowi.
- C#
- Java
- JavaScript
- PowerShell
- Python
Usługa | Przykłady | Przykłady |
---|---|---|
Blob Storage | Wyzwalacz Dane wejściowe Dane wyjściowe |
Link |
Azure Cosmos DB | Wyzwalacz Dane wejściowe Dane wyjściowe |
Link |
Azure SQL | Wyzwalacz (wersja zapoznawcza) Dane wejściowe Dane wyjściowe |
Link |
Event Grid | Wyzwalacz Dane wyjściowe |
Link |
Event Hubs | Wyzwalacz Dane wyjściowe |
|
Usługa IoT Hub | Wyzwalacz Dane wyjściowe |
|
HTTP | Wyzwalacz | Link |
Queue Storage | Wyzwalacz Dane wyjściowe |
Link |
RabbitMQ | Wyzwalacz Dane wyjściowe |
|
SendGrid | Dane wyjściowe | |
Service Bus | Wyzwalacz Dane wyjściowe |
Link |
SignalR | Wyzwalacz Dane wejściowe Dane wyjściowe |
|
Table Storage | Dane wejściowe Dane wyjściowe |
|
Czasomierz | Wyzwalacz | Link |
Twilio | Dane wyjściowe | 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
- Testowania:
- Obsługa błędów powiązań