Create your first function on Azure Arc (preview) (Tworzenie pierwszej funkcji w usłudze Azure Arc — wersja zapoznawcza)
W tym przewodniku Szybki start utworzysz projekt usługi Azure Functions i wdrożysz go w aplikacji funkcji uruchomionej w klastrze Kubernetes z obsługą usługi Azure Arc. Aby dowiedzieć się więcej, zobacz App Service, Functions i Logic Apps w usłudze Azure Arc. Ten scenariusz obsługuje tylko aplikacje funkcji działające w systemie Linux.
Uwaga
Obsługa uruchamiania funkcji w klastrze Kubernetes z obsługą usługi Azure Arc jest obecnie dostępna w wersji zapoznawczej.
Publikowanie projektów funkcji programu PowerShell w klastrach Kubernetes z obsługą usługi Azure Arc nie jest obecnie obsługiwane. Jeśli musisz wdrożyć funkcje programu PowerShell w klastrach Kubernetes z włączoną usługą Azure Arc, utwórz aplikację funkcji w kontenerze.
Jeśli musisz dostosować kontener, w którym działa aplikacja funkcji, zobacz Tworzenie pierwszych konteneryzowanych funkcji w usłudze Azure Arc (wersja zapoznawcza).
Wymagania wstępne
Na komputerze lokalnym:
- Zestaw SDK dla platformy .NET 6.0
- Interfejs wiersza polecenia platformy Azure w wersji 2.4 lub nowszej
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-bitowy
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.
Tworzenie środowiska Kubernetes usługi App Service
Przed rozpoczęciem należy utworzyć środowisko Kubernetes usługi App Service dla klastra Kubernetes z obsługą usługi Azure Arc.
Uwaga
Podczas tworzenia środowiska pamiętaj, aby zanotować zarówno nazwę lokalizacji niestandardowej, jak i nazwę grupy zasobów zawierającej lokalizację niestandardową. Można ich użyć do znalezienia niestandardowego identyfikatora lokalizacji, który będzie potrzebny podczas tworzenia aplikacji funkcji w środowisku.
Jeśli środowisko nie zostało utworzone, zapoznaj się z administratorem klastra.
Dodawanie rozszerzeń interfejsu wiersza polecenia platformy Azure
Uruchom środowisko powłoki Bash w usłudze Azure Cloud Shell.
Ponieważ te polecenia interfejsu wiersza polecenia nie są jeszcze częścią podstawowego zestawu interfejsu wiersza polecenia, dodaj je za pomocą następujących poleceń:
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
Tworzenie projektu funkcji lokalnej
W usłudze Azure Functions projekt funkcji jest jednostką wdrażania i wykonywania 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:func init LocalFunctionProj --dotnet
Przejdź do folderu projektu:
cd LocalFunctionProj
Ten folder zawiera różne pliki dla projektu, w tym pliki konfiguracji o nazwie local.settings.json i host.json. Domyślnie plik local.settings.json jest wykluczony z kontroli źródła w pliku gitignore . To wykluczenie jest spowodowane tym, że plik może zawierać wpisy tajne pobierane z platformy Azure.
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"
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
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.
Pobieranie lokalizacji niestandardowej
Aby móc utworzyć aplikację funkcji w lokalizacji niestandardowej, musisz uzyskać informacje o środowisku.
Uzyskaj następujące informacje o lokalizacji niestandardowej od administratora klastra (zobacz Tworzenie lokalizacji niestandardowej).
customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"
Pobierz identyfikator lokalizacji niestandardowej dla następnego kroku.
customLocationId=$(az customlocation show \
--resource-group $customLocationGroup \
--name $customLocationName \
--query id \
--output tsv)
Tworzenie zasobów platformy Azure
Aby można było wdrożyć kod funkcji w nowym środowisku Kubernetes usługi App Service, należy utworzyć jeszcze dwa zasoby:
- Konto magazynu. Chociaż ten artykuł tworzy konto magazynu, w niektórych przypadkach konto magazynu może nie być wymagane. Aby uzyskać więcej informacji, zobacz Klastry z obsługą usługi Azure Arc w artykule dotyczącym magazynu.
- Aplikacja funkcji, która udostępnia kontekst wykonywania kodu funkcji. Aplikacja funkcji działa w środowisku Kubernetes usługi App Service i mapuje je na lokalny projekt funkcji. Aplikacja funkcji umożliwia grupowanie funkcji jako jednostki logicznej, co ułatwia wdrażanie i udostępnianie zasobów oraz zarządzanie nimi.
Uwaga
Aplikacje funkcji działają w środowisku Kubernetes usługi App Service w planie dedykowanego (App Service). Podczas tworzenia aplikacji funkcji bez istniejącego planu zostanie utworzony prawidłowy plan.
Tworzenie konta magazynu
Użyj polecenia az storage account create, aby utworzyć konto magazynu ogólnego przeznaczenia w grupie zasobów i regionie:
az storage account create --name <STORAGE_NAME> --location westeurope --resource-group myResourceGroup --sku Standard_LRS
Uwaga
W niektórych przypadkach konto magazynu może nie być wymagane. Aby uzyskać więcej informacji, zobacz Klastry z obsługą usługi Azure Arc w artykule dotyczącym magazynu.
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. Wartość --location
jest standardowym regionem świadczenia usługi Azure.
Tworzenie aplikacji funkcji
Uruchom polecenie az functionapp create, aby utworzyć nową aplikację funkcji w środowisku.
az functionapp create --resource-group MyResourceGroup --name <APP_NAME> --custom-location <CUSTOM_LOCATION_ID> --storage-account <STORAGE_NAME> --functions-version 4 --runtime dotnet
W tym przykładzie zastąp <CUSTOM_LOCATION_ID>
element identyfikatorem lokalizacji niestandardowej określonej dla środowiska Kubernetes usługi App Service. Zastąp również nazwą konta użytego w poprzednim kroku i zastąp <STORAGE_NAME>
<APP_NAME>
ciąg globalnie unikatową nazwą odpowiednią dla Ciebie.
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>
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
Ponieważ ukończenie pełnego wdrożenia w klastrze Kubernetes z obsługą usługi Azure Arc może zająć trochę czasu, możesz ponownie uruchomić następujące polecenie, aby zweryfikować opublikowane funkcje:
func azure functionapp list-functions
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=Functions
zapytania . Przeglądarka powinna wyświetlać podobne dane wyjściowe, jak po uruchomieniu funkcji lokalnie.
Następne kroki
Teraz, gdy aplikacja funkcji działa w kontenerze w środowisku Kubernetes usługi App Service z obsługą usługi Azure Arc, możesz połączyć ją z usługą Azure Storage, dodając powiązanie wyjściowe usługi Queue Storage.