Samouczek: konfigurowanie funkcji języka Python przy użyciu danych wyjściowych usługi Azure Table Storage
Z tego samouczka dowiesz się, jak skonfigurować funkcję języka Python do używania usługi Azure Table Storage jako powiązania wyjściowego, wykonując następujące zadania.
- Tworzenie projektu funkcji języka Python przy użyciu programu Visual Studio Code.
- Dodaj powiązanie funkcji wyjściowej tabeli magazynu.
- 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 tabelą 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 | Tabela usługi Azure Storage |
Powiązanie funkcji | Wyzwalacz HTTP, tabela magazynu jako dane wyjściowe |
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 tabela magazynu. Jeśli nie masz konta magazynu, utwórz je.
- W przewodniku założono, że znasz pojęcia przedstawione w przewodniku dla deweloperów usługi Functions i sposób nawiązywania połączenia z usługami w usłudze Azure 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 HTTP trigger . |
Podaj nazwę funkcji | Wprowadź TableStorageOutputFunc . |
Poziom autoryzacji | Wybierz pozycję Anonymous , która umożliwia każdemu wywoływanie punktu końcowego funkcji. |
Utworzono projekt funkcji języka Python z wyzwalaczem HTTP.
Dodawanie powiązania wyjściowego tabeli magazynu
Atrybuty powiązania są definiowane w pliku function.json dla danej funkcji. Aby utworzyć powiązanie, kliknij prawym przyciskiem myszy (Ctrl+kliknij w systemie macOS) function.json
plik w folderze funkcji i wybierz polecenie Dodaj powiązanie... . Postępuj zgodnie z monitami, aby zdefiniować następujące właściwości powiązania dla nowego powiązania:
Monit | Wartość | Opis |
---|---|---|
Wybieranie kierunku powiązania | out |
Powiązanie jest powiązaniem wyjściowym. |
Wybierz powiązanie z kierunkiem... | Azure Table Storage |
Powiązanie jest powiązaniem tabeli usługi Azure Storage. |
Nazwa używana do identyfikowania tego powiązania w kodzie | outMessage |
Nazwa identyfikująca parametr powiązania, do którego odwołuje się kod. |
Nazwa tabeli na koncie magazynu, na którym będą zapisywane dane | testTable |
Nazwa tabeli, która jest zapisywana przez funkcję jako dane wyjściowe. Utwórz tabelę o nazwie testTable na koncie magazynu, jeśli nie istnieje. |
Wybierz ustawienie z "local.setting.json" | Create new local app settings |
Wybierz konto magazynu, które funkcja zapisuje jako dane wyjściowe. Program Visual Studio Code pobiera parametry połączenia dla lokalnego połączenia projektu. |
Aby sprawdzić, czy powiązanie zostało pomyślnie dodane:
TableStorageOutputFunc/function.json
Otwórz plik, sprawdź, czy nowe powiązanie z elementemtype: table
idirection: out
zostało dodane do tego pliku.local.settings.json
Otwórz plik, sprawdź, czy do tego pliku została dodana nowa para<your-storage-account-name>_STORAGE: <your-storage-account-connection-string>
klucz-wartość zawierająca konto magazynu, parametry połączenia.
Po dodaniu powiązania zaktualizuj kody funkcji, aby korzystać z powiązania, zastępując TableStorageOutputFunc/__init__.py
element plikiem języka Python tutaj.
import logging
import uuid
import json
import azure.functions as func
def main(req: func.HttpRequest, outMessage: func.Out[str]) -> func.HttpResponse:
rowKey = str(uuid.uuid4())
data = {
"Name": "Output binding message",
"PartitionKey": "message",
"RowKey": rowKey
}
outMessage.set(json.dumps(data))
return func.HttpResponse(f"Message created with the rowKey: {rowKey}")
Lokalne uruchamianie funkcji
Postępuj zgodnie z samouczkiem, aby uruchomić funkcję lokalnie i zweryfikować dane wyjściowe tabeli.
- Wybierz konto magazynu wybrane podczas tworzenia zasobu funkcji platformy Azure, jeśli zostanie wyświetlony monit o nawiązanie połączenia z kontem magazynu. Ta wartość jest używana dla środowiska uruchomieniowego funkcji platformy Azure. Niekoniecznie jest to to samo konto magazynu, którego używasz dla danych wyjściowych.
- 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 funkcja może zapisywać dane w tabeli, kliknij prawym przyciskiem myszy
Execute Function Now...
funkcję w widoku OBSZAR ROBOCZY programu Visual Studio Code i sprawdź odpowiedź funkcji. Komunikat odpowiedzi powinien zawieraćrowKey
tekst zapisany w tabeli.
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 tabelą usługi Azure Storage w chmurze, aby funkcja mogła zapisywać dane w obiekcie blob magazynu po wdrożeniu w chmurze.
function.json
Otwórz plik w projekcie lokalnym, zmień wartośćconnection
właściwościbindings
AZURE_STORAGETABLE_CONNECTIONSTRING
na .- Uruchom następujące polecenie interfejsu wiersza polecenia platformy Azure, aby utworzyć połączenie między funkcją platformy Azure i usługą Azure Storage.
az functionapp connection create storage-table --source-id "<your-function-resource-id>" --target-id "<your-storage-table-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}/tableServices/default
Utworzono zasób łącznika usługi, który konfiguruje zmienną AZURE_STORAGETABLE_CONNECTIONSTRING
w ustawieniach aplikacji funkcji. To ustawienie aplikacji będzie następnie używane przez powiązanie funkcji w celu nawiązania połączenia z magazynem, aby funkcja mogła zapisywać dane w tabeli magazynu. Aby dowiedzieć się więcej na temat sposobu, w jaki łą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 powiązanie wyjściowe tabeli magazynu działa.
- Postępuj zgodnie z tym samouczkiem dotyczącym usługi Azure Functions, aby wdrożyć funkcję na platformie Azure.
- Aby sprawdzić, czy funkcja może zapisywać dane w tabeli, kliknij prawym przyciskiem myszy
Execute Function Now...
funkcję w widoku ZASOBY programu Visual Studio Code i sprawdź odpowiedź funkcji. Komunikat odpowiedzi powinien zawieraćrowKey
funkcję, która właśnie napisała do tabeli.
Rozwiązywanie problemów
Jeśli występują błędy związane z hostem magazynu, takie jak No such host is known (<account-name>.table.core.windows.net:443)
, należy sprawdzić, czy parametry połączenia używany do nawiązywania połączenia z usługą Azure Storage zawiera punkt końcowy tabeli, czy nie. Jeśli tak nie jest, przejdź do portalu usługi Azure Storage, skopiuj parametry połączenia z Access keys
bloku i zastąp wartości.
Jeśli ten błąd wystąpi podczas lokalnego uruchamiania projektu, sprawdź local.settings.json
plik.
Jeśli wystąpi to 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 ona usłudze Azure Functions łączyć się z innymi usługami w chmurze.