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ść dataTypebinary:

{
    "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ściowych out
  • Niektóre powiązania obsługują specjalny kierunek inout. Jeśli używasz programu inout, 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.

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

Następne kroki