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
- Zainstaluj program Visual Studio Code na jednej z obsługiwanych platform.
- Interfejs wiersza polecenia platformy Azure. Można go użyć w usłudze Azure Cloud Shell lub zainstalować lokalnie.
- Konto usługi Azure Storage i kolejka magazynu. Jeśli nie masz usługi Azure Storage, utwórz je.
- W tym przewodniku założono, że znasz podstawowe pojęcia przedstawione w przewodniku dla deweloperów usługi Azure Functions i sposób nawiązywania połączenia z usługami w usłudze Functions.
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 settings pozycję , 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.
- 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.
- Aby uruchomić funkcję lokalnie, naciśnij
<kbd>
F5</kbd>
lub wybierz ikonę Uruchom i debuguj na pasku działań po lewej stronie. - 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.
function.json
Otwórz plik w projekcie lokalnym, zmień wartośćconnection
właściwościbindings
AZURE_STORAGEQUEUE_CONNECTIONSTRING
na .- 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.
- Postępuj zgodnie z tym samouczkiem dotyczącym usługi Azure Functions, aby wdrożyć funkcję na platformie Azure.
- 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.
- W witrynie Azure Portal otwórz zasób Aplikacja funkcji i wybierz pozycję Usuń.
- 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.