Udostępnij za pośrednictwem


Samouczek: funkcja języka Python z usługą Azure Queue Storage jako wyzwalaczem

Z tego samouczka dowiesz się, jak skonfigurować funkcję języka Python przy użyciu kolejki magazynu jako wyzwalacz, wykonując następujące zadania.

  • Tworzenie projektu funkcji języka Python przy użyciu programu Visual Studio Code.
  • Użyj programu Visual Studio Code, aby uruchomić funkcję lokalnie.
  • Użyj interfejsu wiersza polecenia platformy Azure, aby utworzyć połączenie między funkcją platformy Azure i kolejką usługi Storage za pomocą łącznika usługi.
  • Wdrażanie funkcji za pomocą programu Visual Studio.

Omówienie składników projektu funkcji w tym samouczku:

Składnik projektu Wybór/rozwiązanie
Usługa źródłowa Funkcja platformy Azure
Usługa docelowa Kolejka usługi Azure Storage
Powiązanie funkcji Kolejka magazynu jako wyzwalacz
Typ uwierzytelniania projektu lokalnego Parametry połączenia
Typ uwierzytelniania funkcji w chmurze Parametry połączenia

Ostrzeżenie

Firma Microsoft zaleca korzystanie z najbezpieczniejszego dostępnego przepływu uwierzytelniania. Przepływ uwierzytelniania opisany w tej procedurze wymaga bardzo wysokiego poziomu zaufania w aplikacji i niesie ze sobą ryzyko, które nie występują w innych przepływach. Tego przepływu należy używać tylko wtedy, gdy inne bezpieczniejsze przepływy, takie jak tożsamości zarządzane, nie są opłacalne.

Wymagania wstępne

Tworzenie projektu funkcji języka Python

Postępuj zgodnie z samouczkiem , aby utworzyć lokalny projekt usługi Azure Functions i podać następujące informacje w monitach:

Monit Wybór
Wybieranie języka Wybierz plik Python. (model języka programowania w wersji 1)
Wybieranie interpretera języka Python w celu utworzenia środowiska wirtualnego Wybierz preferowany interpreter języka Python. Jeśli opcja nie jest wyświetlana, wpisz pełną ścieżkę do pliku binarnego języka Python.
Wybieranie szablonu dla pierwszej funkcji projektu Wybierz plik Azure Queue Storage trigger.
Podaj nazwę funkcji Wprowadź QueueStorageTriggerFunc.
Wybierz ustawienie z "local.settings.json" Wybierz Create new local app settingspozycję , która umożliwia wybranie konta magazynu i podanie nazwy kolejki, która działa jako wyzwalacz.

Utworzono projekt funkcji języka Python z kolejką usługi Azure Storage jako wyzwalaczem. Projekt lokalny łączy się z usługą Azure Storage przy użyciu parametry połączenia zapisanych local.settings.json w pliku. main Na koniec funkcja w __init__.py pliku funkcji może korzystać z parametry połączenia za pomocą powiązania funkcji zdefiniowanego function.json w pliku.

Lokalne uruchamianie funkcji

Postępuj zgodnie z samouczkiem, aby uruchomić funkcję lokalnie i zweryfikować wyzwalacz.

  1. Wybierz konto magazynu wybrane podczas tworzenia zasobu funkcji platformy Azure, jeśli zostanie wyświetlony monit o nawiązanie połączenia z magazynem. Ta wartość jest używana dla środowiska uruchomieniowego funkcji platformy Azure i nie musi być taka sama jak konto magazynu używane dla wyzwalacza.
  2. Aby uruchomić funkcję lokalnie, naciśnij <kbd>F5 </kbd> lub wybierz ikonę Uruchom i debuguj na pasku działań po lewej stronie.
  3. Aby sprawdzić, czy wyzwalacz działa prawidłowo, zachowaj działanie funkcji lokalnie i otwórz okienko Kolejka usługi Storage w witrynie Azure Portal, wybierz pozycję Dodaj komunikat i podaj komunikat testowy. Funkcja powinna zostać wyzwolona i przetworzona jako element kolejki w terminalu programu Visual Studio Code.

Tworzenie połączenia przy użyciu łącznika usługi

W ostatnim kroku zweryfikowano projekt funkcji lokalnie. Teraz dowiesz się, jak skonfigurować połączenie między funkcją platformy Azure i kolejką usługi Azure Storage w chmurze, aby funkcja mogła zostać wyzwolona przez kolejkę magazynu po wdrożeniu w chmurze.

  1. function.json Otwórz plik w projekcie lokalnym, zmień wartość connection właściwości bindings AZURE_STORAGEQUEUE_CONNECTIONSTRINGna .
  2. Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure, aby utworzyć połączenie między funkcją platformy Azure i kontem usługi Azure Storage.
az functionapp connection create storage-queue --source-id "<your-function-resource-id>" --target-id "<your-storage-queue-resource-id>" --secret
  • --source-id format: /subscriptions/{subscription}/resourceGroups/{source_resource_group}/providers/Microsoft.Web/sites/{site}
  • --target-id format: /subscriptions/{subscription}/resourceGroups/{target_resource_group}/providers/Microsoft.Storage/storageAccounts/{account}/queueServices/default

Ten krok tworzy zasób łącznika usługi, który konfiguruje zmienną AZURE_STORAGEQUEUE_CONNECTIONSTRING w ustawieniach aplikacji funkcji. Środowisko uruchomieniowe powiązania funkcji używa go do nawiązywania połączenia z magazynem, dzięki czemu funkcja może akceptować wyzwalacze z kolejki magazynu. Aby uzyskać więcej informacji, zobacz , jak łącznik usług pomaga usłudze Azure Functions łączyć się z usługami.

Wdrażanie funkcji na platformie Azure

Teraz możesz wdrożyć funkcję na platformie Azure i sprawdzić, czy wyzwalacz kolejki magazynu działa.

  1. Postępuj zgodnie z tym samouczkiem dotyczącym usługi Azure Functions, aby wdrożyć funkcję na platformie Azure.
  2. Otwórz okienko Kolejka magazynu w witrynie Azure Portal, wybierz pozycję Dodaj komunikat i podaj komunikat testowy. Funkcja powinna zostać wyzwolona i przetworzona jako element kolejki w dziennikach funkcji.

Rozwiązywanie problemów

Jeśli występują jakiekolwiek błędy związane z hostem magazynu, takie jak No such host is known (<account-name>.queue.core.windows.net:443), sprawdź, czy parametry połączenia używany do nawiązywania połączenia z usługą Azure Storage zawiera punkt końcowy kolejki, czy nie. Jeśli tak nie jest, przejdź do usługi Azure Storage w witrynie Azure Portal, skopiuj parametry połączenia z okienka Access keys i zastąp wartości.

Jeśli ten błąd wystąpi podczas lokalnego uruchamiania projektu, sprawdź local.settings.json plik.

Jeśli ten błąd występuje podczas wdrażania funkcji w chmurze (w tym przypadku wdrażanie funkcji zwykle kończy się niepowodzeniem Syncing triggers ), sprawdź ustawienia aplikacji funkcji.

Czyszczenie zasobów

Jeśli nie zamierzasz nadal korzystać z tego projektu, usuń utworzony wcześniej zasób aplikacji funkcji.

  1. W witrynie Azure Portal otwórz zasób Aplikacja funkcji i wybierz pozycję Usuń.
  2. Wprowadź nazwę aplikacji i wybierz pozycję Usuń , aby potwierdzić.

Następne kroki

Przeczytaj poniższe artykuły, aby dowiedzieć się więcej na temat pojęć dotyczących łącznika usług i sposobu, w jaki pomaga on usłudze Azure Functions łączyć się z usługami.