Szybki start: tworzenie funkcji programu PowerShell na platformie Azure z poziomu wiersza polecenia
Artykuł
W tym artykule użyjesz narzędzi wiersza polecenia, aby utworzyć funkcję programu PowerShell, która odpowiada na żądania HTTP. Po przetestowaniu kodu lokalnie należy wdrożyć go w środowisku bezserwerowym usługi Azure Functions.
Ukończenie tego przewodnika Szybki start wiąże się z naliczeniem niewielkiej opłaty w wysokości kilku centów USD lub mniej na koncie platformy Azure.
Ten artykuł zawiera również wersję opartą na programie Visual Studio Code.
Konfigurowanie środowiska lokalnego
Przed rozpoczęciem musisz mieć następujące elementy:
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:
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.
Poniższe kroki umożliwiają zainstalowanie narzędzi Core Tools w systemie macOS przy użyciu oprogramowania Homebrew.
Zainstaluj oprogramowanie Homebrew, jeśli nie jest jeszcze zainstalowane.
Zainstaluj pakiet Core Tools:
Bash
brew tap azure/functions
brew install azure-functions-core-tools@4
# if upgrading on a machine that has 2.x or 3.x installed:
brew link --overwrite azure-functions-core-tools@4
Poniższe kroki umożliwiają zainstalowanie narzędzi Core Tools w dystrybucji Ubuntu/Debian Linux przy użyciu narzędzia APT . W przypadku innych dystrybucji systemu Linux zobacz plik readme narzędzi Core Tools.
Zainstaluj klucz GPG repozytorium pakietów firmy Microsoft, aby zweryfikować integralność pakietu:
/etc/apt/sources.list.d/dotnetdev.list Sprawdź plik pod kątem jednego z odpowiednich ciągów wersji systemu Linux w poniższej tabeli:
Dystrybucja systemu Linux
Wersja
Debian 12
bookworm
Debian 11
bullseye
Debian 10
buster
Debian 9
stretch
Ubuntu 22.04
jammy
Ubuntu 20.04
focal
Ubuntu 19.04
disco
Ubuntu 18.10
cosmic
Ubuntu 18.04
bionic
Ubuntu 17.04
zesty
Ubuntu 16.04/Linux Mint 18
xenial
Uruchom aktualizację źródłową APT:
Bash
sudo apt-get update
Zainstaluj pakiet Core Tools:
Bash
sudo apt-get install azure-functions-core-tools-4
Tworzenie projektu 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 zawierający jedną funkcję.
Uruchom następujące func init polecenie, aby utworzyć projekt funkcji w folderze o nazwie LocalFunctionProj z określonym środowiskiem uruchomieniowym:
Console
func init LocalFunctionProj --powershell
Przejdź do folderu projektu:
Console
cd LocalFunctionProj
Ten folder zawiera 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).
Console
func new --name HttpExample --template "HTTP trigger" --authlevel "anonymous"
func new Tworzy podfolder pasujący do nazwy funkcji zawierającej plik kodu odpowiedni dla wybranego języka projektu i pliku konfiguracji o nazwie function.json.
Run.ps1 definiuje skrypt funkcji wyzwalany zgodnie z konfiguracją w function.json.
PowerShell
using namespace System.Net
# Input bindings are passed in via param block.param($Request, $TriggerMetadata)
# Write to the Azure Functions log stream.Write-Host"PowerShell HTTP trigger function processed a request."# Interact with query parameters or the body of the request.$name = $Request.Query.Name
if (-not$name) {
$name = $Request.Body.Name
}
$body = "This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response."if ($name) {
$body = "Hello, $name. This HTTP triggered function executed successfully."
}
# Associate values to output bindings by calling 'Push-OutputBinding'.Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
})
W przypadku wyzwalacza HTTP funkcja odbiera dane żądania przekazane do parametru zdefiniowanego $Request w function.json. Obiekt zwracany, zdefiniowany w Responsefunction.json, jest przekazywany do Push-OutputBinding polecenia cmdlet jako odpowiedzi.
function.json
function.json to plik konfiguracji, który definiuje dane wejściowe i wyjściowe bindings dla funkcji, w tym typ wyzwalacza.
Każde powiązanie wymaga kierunku, typu i unikatowej nazwy. Wyzwalacz HTTP ma powiązanie wejściowe typu httpTrigger i powiązania wyjściowego typu http.
Lokalne uruchamianie funkcji
Uruchom funkcję, uruchamiając lokalny host środowiska uruchomieniowego usługi Azure Functions z folderu LocalFunctionProj .
Console
func start
Na końcu danych wyjściowych muszą pojawić się następujące wiersze:
Uwaga
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 jak http://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.
Tworzenie pomocniczych zasobów platformy Azure dla 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 magazynu, które służy do obsługi stanu i innych informacji o funkcjach.
Aplikacja funkcji, która udostępnia środowisko do wykonywania kodu funkcji. Aplikacja funkcji mapuje na lokalny projekt 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.
Jeśli jeszcze tego nie zrobiono, zaloguj się do platformy Azure:
W poprzednim przykładzie zastąp <STORAGE_NAME> ciąg nazwą odpowiednią dla Ciebie i unikatową w usłudze Azure Storage. Nazwy muszą zawierać od trzech do 24 znaków i tylko małe litery. Standard_LRS określa konto ogólnego przeznaczenia, które jest obsługiwane przez funkcje.
Ważne
Konto magazynu służy do przechowywania ważnych danych aplikacji, czasami w tym samego kodu aplikacji. Należy ograniczyć dostęp z innych aplikacji i użytkowników do konta magazynu.
W poprzednim przykładzie zastąp <STORAGE_NAME> ciąg nazwą konta użytego w poprzednim kroku i zastąp <APP_NAME> ciąg globalnie unikatową nazwą odpowiednią dla Ciebie. <APP_NAME> jest również domyślną domeną DNS aplikacji funkcji.
To polecenie tworzy aplikację funkcji działającą w określonym środowisku uruchomieniowym języka w ramach planu zużycia usługi Azure Functions, która jest bezpłatna dla naliczanej ilości użycia w tym miejscu. Polecenie aprowizuje również skojarzone wystąpienie usługi aplikacja systemu Azure Insights w tej samej grupie zasobów, za pomocą której można monitorować aplikację funkcji 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 tym przykładzie zastąp <APP_NAME> ciąg nazwą 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 widoczny w danych wyjściowych polecenia publikowania na pasku adresu przeglądarki, dołączając parametr ?name=Functionszapytania . Przeglądarka powinna wyświetlać podobne dane wyjściowe, jak po uruchomieniu funkcji lokalnie.
Uruchom polecenie curl przy użyciu adresu URL wywołania, dołączając parametr ?name=Functions. Dane wyjściowe polecenia powinny być tekstem "Hello Functions".
Uruchom następujące polecenie, aby wyświetlić dzienniki przesyłania strumieniowego niemal w czasie rzeczywistym:
Console
func azure functionapp logstream <APP_NAME>
W osobnym oknie terminalu lub w przeglądarce ponownie wywołaj funkcję zdalną. Pełny dziennik wykonywania funkcji na platformie Azure jest wyświetlany w terminalu.
Czyszczenie zasobów
Jeśli przejdziesz do następnego kroku i dodasz powiązanie wyjściowe kolejki usługi Azure Storage, zachowaj wszystkie zasoby na miejscu, gdy będziesz opierać się na tym, co zostało już zrobione.
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.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
W tej ścieżce szkoleniowej odkryjesz usługę Azure Functions, która tworzy oparte na zdarzeniach systemy obliczeń na żądanie, używając logiki po stronie serwera do tworzenia architektur bezserwerowych.
Twórz kompleksowe rozwiązania na platformie Microsoft Azure, aby tworzyć usługi Azure Functions, implementować aplikacje internetowe i zarządzać nimi, opracowywać rozwiązania korzystające z usługi Azure Storage i nie tylko.