Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym artykule użyjesz narzędzi wiersza polecenia, aby utworzyć funkcję języka Python, która odpowiada na żądania HTTP. Po przetestowaniu kodu lokalnie należy wdrożyć go w środowisku bezserwerowym usługi Azure Functions.
W tym artykule użyto modelu programowania języka Python w wersji 2 dla usługi Azure Functions, który zapewnia oparte na dekoratorze podejście do tworzenia funkcji. Aby dowiedzieć się więcej na temat modelu programowania w wersji 2 języka Python, zobacz Przewodnik dokumentacji dla deweloperów
Ukończenie tego szybkiego startu wiąże się z naliczeniem niewielkiej opłaty wynoszącej kilka centów USD lub mniej na koncie Azure.
Ten artykuł zawiera również wersję opartą na programie Visual Studio Code.
Konfigurowanie środowiska lokalnego
Przed rozpoczęciem należy spełnić następujące wymagania:
Konto Azure z aktywną subskrypcją. Utwórz konto bezpłatnie.
Jednym z następujących narzędzi do tworzenia zasobów platformy Azure:
Interfejs wiersza polecenia platformy Azure w wersji 2.4 lub nowszej.
Moduł Az PowerShell programu Azure w wersji 5.9.0 lub nowszej.
Wersja języka Python obsługiwana przez usługę Azure Functions.
Emulator magazynu Azurite. Chociaż możesz również użyć rzeczywistego konta usługi Azure Storage, w artykule założono, że używasz tego emulatora.
Instalowanie podstawowych narzędzi usługi Azure Functions
Zalecany sposób instalowania narzędzi Core Tools zależy od systemu operacyjnego lokalnego komputera programistycznego.
Poniższe kroki umożliwiają zainstalowanie narzędzi Core Tools w wersji 4.x za pomocą Instalatora Windows (MSI). Aby uzyskać więcej informacji na temat innych instalatorów opartych na pakietach, zobacz plik readme narzędzi Core Tools.
Pobierz i uruchom instalatora narzędzi Core Tools na podstawie używanej wersji systemu Windows:
- Wersja 4.x — windows 64-bitowy (zalecane. Debugowanie programu Visual Studio Code wymaga 64-bitowej wersji).
- Wersja 4.x — Windows 32-bitowa
Jeśli poprzednio użyto instalatora Windows (MSI) do zainstalowania narzędzi Core Tools w systemie Windows, przed zainstalowaniem najnowszej wersji należy odinstalować starą wersję z sekcji Dodaj usuń programy.
Użyj polecenia func --version
, aby upewnić się, że wersja narzędzia Core Tools ma co najmniej 4.0.5530
.
Tworzenie i aktywowanie środowiska wirtualnego
W odpowiednim folderze uruchom następujące polecenia, aby utworzyć i aktywować środowisko wirtualne o nazwie .venv
. Upewnij się, że używasz wersji języka Python obsługiwanej przez usługę Azure Functions.
python -m venv .venv
source .venv/bin/activate
Jeśli język Python nie zainstalował pakietu venv w dystrybucji systemu Linux, uruchom następujące polecenie:
sudo apt-get install python3-venv
Wszystkie kolejne polecenia są uruchamiane w tym aktywowanym środowisku wirtualnym.
Tworzenie funkcji lokalnej
W usłudze Azure Functions projekt funkcji jest kontenerem dla co najmniej jednej pojedynczej funkcji, która odpowiada na określony wyzwalacz. Wszystkie funkcje w projekcie współdzielą te same konfiguracje lokalne i hostujące.
W tej sekcji utworzysz projekt funkcji i dodasz funkcję wyzwalaną przez protokół HTTP.
Aby utworzyć projekt funkcji Pythona wersji 2 w środowisku wirtualnym, uruchom polecenie w następujący sposób
func init
.func init --python
Środowisko zawiera teraz różne pliki dla projektu, w tym pliki konfiguracji o nazwie local.settings.json i host.json. Ponieważ local.settings.json może zawierać wpisy tajne pobrane z platformy Azure, plik jest domyślnie wykluczony z kontroli źródła w pliku gitignore .
Dodaj funkcję do projektu przy użyciu następującego polecenia, gdzie
--name
argument jest unikatową nazwą funkcji (HttpExample), a--template
argument określa wyzwalacz funkcji (HTTP).func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
Jeśli zostanie wyświetlony monit, wybierz opcję ANONIMOWE .
func new
dodaje punkt końcowy wyzwalacza HTTP o nazwieHttpExample
do plikufunction_app.py
, który jest dostępny bez uwierzytelniania.
Lokalne uruchamianie funkcji
Uruchom funkcję, uruchamiając lokalny host środowiska uruchomieniowego usługi Azure Functions z folderu LocalFunctionProj .
func start
Na końcu danych wyjściowych muszą pojawić się następujące wiersze:
Uwaga / Notatka
Jeśli funkcja HttpExample nie jest wyświetlana jak pokazano powyżej, prawdopodobnie uruchomiono hosta spoza folderu głównego projektu. W takim przypadku użyj Ctrl+C, aby zatrzymać hosta, przejść do folderu głównego projektu i ponownie uruchomić poprzednie polecenie.
Skopiuj adres URL funkcji HTTP z tych danych wyjściowych do przeglądarki i dołącz ciąg
?name=<YOUR_NAME>
zapytania , tworząc pełny adres URL, taki jakhttp://localhost:7071/api/HttpExample?name=Functions
. W przeglądarce powinien zostać wyświetlony komunikat odpowiedzi, który zwraca wartość ciągu zapytania. Terminal, w którym rozpoczęto projekt, pokazuje również dane wyjściowe dziennika podczas wysyłania żądań.Po zakończeniu naciśnij Ctrl + C i wpisz
y
, aby zatrzymać hosta funkcji.
Utwórz zasoby pomocnicze platformy Azure dla swojej funkcji
Przed wdrożeniem kodu funkcji na platformie Azure należy utworzyć trzy zasoby:
- Grupa zasobów, która jest kontenerem logicznym dla powiązanych zasobów.
- Konto magazynowe, które przechowuje stan i inne informacje o projektach.
- Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji odpowiada lokalnemu projektowi funkcji i umożliwia grupowanie funkcji jako jednostki logicznej w celu łatwiejszego zarządzania, wdrażania i udostępniania zasobów.
Użyj następujących poleceń, aby utworzyć te elementy. Obsługiwane są zarówno interfejs wiersza polecenia platformy Azure, jak i program PowerShell.
W razie potrzeby zaloguj się do platformy Azure.
az login
Polecenie
az login
powoduje zalogowanie cię do konta platformy Azure.Utwórz grupę zasobów o nazwie
AzureFunctionsQuickstart-rg
w wybranym regionie.az group create --name AzureFunctionsQuickstart-rg --location <REGION>
Polecenie az group create tworzy grupę zasobów. W powyższym poleceniu zastąp ciąg
<REGION>
regionem w twojej okolicy, używając dostępnego kodu regionu zwróconego przez polecenie az account list-locations.Uwaga / Notatka
Nie można hostować aplikacji systemu Linux i Windows w tej samej grupie zasobów. Jeśli masz istniejącą grupę zasobów o nazwie
AzureFunctionsQuickstart-rg
z aplikacją funkcji systemu Windows lub aplikacją internetową, musisz użyć innej grupy zasobów.Utwórz konto magazynu ogólnego przeznaczenia w grupie zasobów i regionie.
az storage account create --name <STORAGE_NAME> --location <REGION> --resource-group AzureFunctionsQuickstart-rg --sku Standard_LRS
Polecenie az storage account create tworzy konto przechowywania.
W poprzednim przykładzie zastąp
<STORAGE_NAME>
nazwą, która jest odpowiednia dla Ciebie i unikatowa w usłudze Azure Storage. Nazwy muszą zawierać od 3 do 24 znaków i tylko małe litery.Standard_LRS
określa konto ogólnego przeznaczenia obsługiwane przez funkcje.Konto przechowywania generuje jedynie kilka centów kosztów (USD) dla tego szybkiego startu.
Utwórz aplikację funkcji na platformie Azure.
az functionapp create --resource-group AzureFunctionsQuickstart-rg --consumption-plan-location westeurope --runtime python --runtime-version <PYTHON_VERSION> --functions-version 4 --name <APP_NAME> --os-type linux --storage-account <STORAGE_NAME>
Polecenie az functionapp create tworzy aplikację funkcji na platformie Azure. Musisz podać
--os-type linux
, ponieważ funkcje języka Python działają tylko w systemie Linux.W poprzednim przykładzie zastąp
<APP_NAME>
globalnie unikatową nazwą odpowiednią dla Ciebie. Element<APP_NAME>
jest również domyślną poddomeną aplikacji funkcji. Upewnij się, że ustawiona<PYTHON_VERSION>
wartość jest wersją obsługiwaną przez usługę Functions i jest tą samą wersją, która była używana podczas programowania lokalnego.To polecenie tworzy aplikację funkcji działającą w określonym środowisku uruchomieniowym języka w ramach planu zużycia Azure Functions, który jest bezpłatny dla ilości użycia, którą tutaj naliczasz. Polecenie tworzy również skojarzone wystąpienie usługi Azure Application Insights w tej samej grupie zasobów, za pomocą którego można monitorować aplikację typu funkcja i wyświetlać dzienniki. Aby uzyskać więcej informacji, zobacz Monitorowanie usługi Azure Functions. Wystąpienie nie wiąże się z żadnymi kosztami do momentu jego aktywowania.
Wdrażanie projektu funkcji na platformie Azure
Po pomyślnym utworzeniu aplikacji funkcji na platformie Azure możesz przystąpić do wdrażania projektu funkcji lokalnych przy użyciu func azure functionapp publish
polecenia .
W folderze głównym projektu uruchom następujące func azure functionapp publish
polecenie:
func azure functionapp publish <APP_NAME>
W tym przykładzie zastąp <APP_NAME>
nazwą twojej aplikacji. Pomyślne wdrożenie pokazuje wyniki podobne do następujących danych wyjściowych (obcięte dla uproszczenia):
... Getting site publishing info... Creating archive for current directory... Performing remote build for functions project. ... Deployment successful. Remote build succeeded! Syncing triggers... Functions in msdocs-azurefunctions-qs: HttpExample - [httpTrigger] Invoke url: https://msdocs-azurefunctions-qs.azurewebsites.net/api/httpexample
Wywoływanie funkcji na platformie Azure
Ponieważ funkcja używa wyzwalacza HTTP, należy go wywołać, wysyłając żądanie HTTP do jego adresu URL w przeglądarce lub za pomocą narzędzia takiego jak curl.
Skopiuj pełny adres URL wywołania pokazany w danych wyjściowych polecenia do paska adresu przeglądarki, dołączając parametr zapytania publish
. Przeglądarka powinna wyświetlać podobne dane wyjściowe, jak po uruchomieniu funkcji lokalnie.
Uprzątnij zasoby
Jeśli przejdziesz do następnego kroku i dodasz powiązanie wyjściowe kolejki usługi Azure Storage, zachowaj wszystkie zasoby na miejscu, ponieważ będziesz rozwijać to, co już zrobiłeś.
W przeciwnym razie użyj następującego polecenia, aby usunąć grupę zasobów i wszystkie zawarte w niej zasoby, aby uniknąć ponoszenia dalszych kosztów.
az group delete --name AzureFunctionsQuickstart-rg
Dalsze kroki
Masz problemy z tym artykułem?