Eksplorowanie typów powiązań wejściowych i wyjściowych

Ukończone

Uzyskiwanie dostępu do danych i ich przetwarzanie to kluczowe zadania w wielu rozwiązaniach programowych. Rozważmy kilka z poniższych scenariuszy:

  • Poproszono Cię o zaimplementowanie sposobu przenoszenia danych przychodzących z usługi Azure Blob Storage do usługi Azure Cosmos DB.
  • Chcesz publikować komunikaty przychodzące w kolejce do przetwarzania ich przez inny składnik w Twoim przedsiębiorstwie.
  • Twoja usługa musi pobierać z kolejki wyniki graczy i aktualizować tabelę wyników online.

Wszystkie te przykłady dotyczą przenoszenia danych. Źródło danych i miejsca docelowe w poszczególnych scenariuszach są różne, ale wzorzec jest podobny. Nawiązujesz połączenie ze źródłem danych, a następnie odczytujesz i zapisujesz dane. Usługa Azure Functions ułatwia integrację z danymi i usługami, korzystając z powiązań.

Co to jest powiązanie?

Powiązania w usłudze Azure Functions zapewniają deklaratywną metodę nawiązywania połączeń z danymi z poziomu kodu. Ułatwiają one spójną integrację ze strumieniami danych w funkcji. Możesz mieć wiele powiązań zapewniających dostęp do innych elementów danych. Ta integracja jest zaawansowana, ponieważ można nawiązać połączenie ze źródłami danych bez konieczności kodowania określonej logiki połączenia (np. połączeń z bazą danych lub interfejsów internetowego interfejsu API).

Typy powiązań

Istnieją dwa rodzaje powiązań, których można używać z funkcjami:

  • Powiązanie danych wejściowych — łączy się ze źródłem danych. Nasza funkcja może odczytywać dane z tych źródeł wejściowych.

  • Powiązanie danych wyjściowych — łączy się z miejscem docelowym danych. Nasza funkcja może zapisywać dane w tych miejscach docelowych danych wyjściowych.

Istnieją również wyzwalacze, które są specjalnymi typami powiązań wejściowych, które powodują uruchomienie funkcji. Na przykład jako wyzwalacz można skonfigurować powiadomienie usługi Azure Event Grid. Po wystąpieniu zdarzenia funkcja jest uruchamiana.

Typy obsługiwanych powiązań

Typ powiązania definiuje miejsce odczytywania lub wysyłania danych. Istnieje powiązanie do odpowiadania na żądania internetowe oraz duży wybór powiązań w celu bezpośredniej interakcji z różnymi usługami platformy Azure i usługami innych firm.

Typ powiązania może służyć jako dane wejściowe, dane wyjściowe lub oba. Na przykład funkcja może zapisywać dane w powiązaniu wyjściowym usługi Blob Storage, ale aktualizacja usługi Blob Storage może wyzwolić inną funkcję.

Typowe typy powiązań obejmują:

  • Blob Storage
  • Kolejki usługi Azure Service Bus
  • Azure Cosmos DB
  • Azure Event Hubs
  • Pliki zewnętrzne
  • Tabele zewnętrzne
  • Punkty końcowe HTTP

Są to tylko przykładowe typy. Istnieje ich więcej. Ponadto model rozszerzalności funkcji pozwala dodać więcej powiązań.

Właściwości powiązań

Trzy właściwości są wymagane we wszystkich powiązaniach, ale może być konieczne podanie większej liczby właściwości na podstawie typu powiązania i magazynu, którego używasz.

  • Nazwa — określa parametr funkcji, za pomocą którego uzyskujesz dostęp do danych. Na przykład w powiązaniu wejściowym kolejki ta właściwość jest nazwą parametru funkcji, który odbiera zawartość komunikatu kolejki.

  • Typ — określa typ powiązania. Na przykład typ danych lub usługi, z którymi chcesz korzystać.

  • Kierunek — wskazuje kierunek przepływu danych. Czy na przykład jest to powiązanie danych wejściowych lub wyjściowych?

Ponadto większość typów powiązań wymaga też czwartej właściwości:

  • Połączenie — udostępnia nazwę klucza ustawienia aplikacji zawierającego parametry połączenia. W powiązaniach korzysta się z parametrów połączenia przechowywanych w ustawieniach aplikacji, aby wyeliminować używanie wpisów tajnych w kodzie funkcji. Parametry połączenia sprawiają, że kod jest bardziej konfigurowalny i bezpieczny.

Tworzenie powiązania

Powiązania definiuje się w formacie JSON. Powiązanie jest konfigurowane w pliku konfiguracji funkcji, który nosi nazwę function.json i znajduje się w tym samym folderze co kod funkcji.

Przeanalizujmy przykład powiązania danych wejściowych:

    ...
    {
      "name": "headshotBlob",
      "type": "blob",
      "path": "thumbnail-images/{filename}",
      "connection": "HeadshotStorageConnection",
      "direction": "in"
    },
    ...

W celu utworzenia tego powiązania:

  1. Utwórz powiązanie w pliku function.json.

  2. Podaj wartość zmiennej name. W tym przykładzie zmienna zawiera dane obiektu blob.

  3. Podaj parametr type magazynu. W poprzednim przykładzie używamy usługi Blob Storage.

  4. Podaj parametr path określający kontener oraz nazwę znajdującego się w nim elementu. Właściwość jest wymagana path podczas korzystania z wyzwalacza obiektu blob i powinna być podana w stylu pokazanym tutaj, z nawiasami klamrowymi wokół części nazwy pliku ścieżki. Ta składnia tworzy wyrażenie powiązania, które umożliwia odwołowanie się do nazwy obiektu blob w innych powiązaniach i w kodzie funkcji. W tym przykładzie parametr funkcji o nazwie filename będzie wypełniany nazwą pliku obiektu blob, który wyzwolił funkcję.

  5. Podaj nazwę ustawienia parametrów połączenia (connection) określoną w pliku ustawień aplikacji. Nazwa jest używana jako klucz do znalezienia parametry połączenia w celu nawiązania połączenia z kontem magazynu.

  6. Jako wartość parametru direction określ in. Spowoduje to odczyt danych z obiektu blob.

Powiązania umożliwiają nawiązywanie połączeń z danymi w funkcji. W tym przykładzie użyliśmy powiązania wejściowego, aby połączyć obrazy użytkownika do przetwarzania przez naszą funkcję jako miniatury.