Korzystanie z narzędzi Azure Functions Core Tools

Narzędzia Azure Functions Core Tools umożliwiają tworzenie i testowanie funkcji na komputerze lokalnym z poziomu wiersza polecenia lub terminalu. Funkcje lokalne mogą łączyć się z dynamicznymi usługami platformy Azure i debugować funkcje na komputerze lokalnym przy użyciu pełnego środowiska uruchomieniowego usługi Functions. Możesz nawet wdrożyć aplikację funkcji w ramach subskrypcji platformy Azure.

Uwaga

Nie mieszaj programowania lokalnego z programowaniem portalu w tej samej aplikacji funkcji. Podczas tworzenia i publikowania funkcji z projektu lokalnego nie będzie można obsługiwać ani modyfikować kodu projektu w portalu.

Tworzenie funkcji na komputerze lokalnym i publikowanie ich na platformie Azure przy użyciu narzędzi Core Tools odbywa się zgodnie z następującymi podstawowymi krokami:

Wymagania wstępne

Określone wymagania wstępne dotyczące narzędzi Core Tools zależą od funkcji, które mają być używane:

Publikowanie: podstawowe narzędzia obecnie zależą od interfejsu wiersza polecenia platformy Azure lub Azure PowerShell na potrzeby uwierzytelniania przy użyciu konta platformy Azure. Oznacza to, że musisz zainstalować jedno z tych narzędzi, aby móc publikować na platformie Azure z poziomu narzędzi Azure Functions Core Tools.

Instalowanie rozszerzeń: aby ręcznie zainstalować rozszerzenia przy użyciu narzędzi Core Tools, musisz mieć zainstalowany zestaw SDK platformy .NET 6.0 . Zestaw SDK platformy .NET jest używany przez narzędzia Core Tools do instalowania rozszerzeń z narzędzia NuGet. Nie musisz wiedzieć, aby platforma .NET korzystała z rozszerzeń Azure Functions.

Wersje narzędzi Core Tools

Istnieją cztery wersje narzędzi Azure Functions Core Tools. Używana wersja zależy od lokalnego środowiska programistycznego, wyboru języka i wymaganego poziomu pomocy technicznej.

Wybierz jedną z następujących kart wersji, aby dowiedzieć się więcej o każdej konkretnej wersji i uzyskać szczegółowe instrukcje dotyczące instalacji:

Obsługuje wersję 4.x środowiska uruchomieniowego usługi Functions. Ta wersja obsługuje systemy Windows, macOS i Linux oraz używa menedżerów pakietów specyficznych dla platformy lub npm do instalacji. Jest to zalecana wersja środowiska uruchomieniowego usługi Functions i narzędzi Core Tools.

Na danym komputerze można zainstalować tylko jedną wersję narzędzi Core Tools. O ile nie wspomniano inaczej, przykłady w tym artykule są przeznaczone dla wersji 4.x.

Instalowanie podstawowych narzędzi usługi Azure Functions

Azure Functions Core Tools zawiera wersję tego samego środowiska uruchomieniowego, która obsługuje środowisko uruchomieniowe Azure Functions, które można uruchomić na lokalnym komputerze deweloperów. Udostępnia również polecenia służące do tworzenia funkcji, nawiązywania połączenia z platformą Azure i wdrażania projektów funkcji.

Począwszy od wersji 2.x, narzędzia Core Tools działają w systemach Windows, macOS i Linux.

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 readme narzędzi Core Tools.

Pobierz i uruchom instalatora narzędzi Core Tools w oparciu o wersję systemu Windows:

Zmienianie wersji narzędzi podstawowych

Podczas zmiany na inną wersję narzędzi Core Tools należy użyć tego samego menedżera pakietów co oryginalna instalacja, aby przejść do innej wersji pakietu. Jeśli na przykład zainstalowano narzędzia Core Tools w wersji 3.x przy użyciu narzędzia npm, należy użyć następującego polecenia, aby przeprowadzić uaktualnienie do wersji 4.x:

npm install -g azure-functions-core-tools@4 --unsafe-perm true

Jeśli instalator Windows (MSI) został użyty do zainstalowania narzędzi Core Tools w systemie Windows, przed zainstalowaniem innej wersji należy odinstalować starą wersję z polecenia Dodaj usuń programy.

Tworzenie lokalnego projektu usługi Functions

Katalog projektu usługi Functions zawiera następujące pliki i foldery niezależnie od języka:

Nazwa pliku Opis
host.json Aby dowiedzieć się więcej, zobacz dokumentację pliku host.json.
local.settings.json Ustawienia używane przez narzędzia Core Tools podczas uruchamiania lokalnego, w tym ustawień aplikacji. Aby dowiedzieć się więcej, zobacz ustawienia lokalne.
.gitignore Uniemożliwia przypadkowe opublikowanie pliku local.settings.json w repozytorium Git. Aby dowiedzieć się więcej, zobacz Ustawienia lokalne
.vscode\extensions.json Plik ustawień używany podczas otwierania folderu projektu w Visual Studio Code.

Aby dowiedzieć się więcej o folderze projektu usługi Functions, zobacz przewodnik deweloperów Azure Functions.

W oknie terminalu lub w wierszu polecenia uruchom następujące polecenie, aby utworzyć projekt i lokalne repozytorium Git:

func init MyFunctionProj

W tym przykładzie tworzony jest projekt usługi Functions w nowym MyFunctionProj folderze. Zostanie wyświetlony monit o wybranie domyślnego języka dla projektu.

Następujące zagadnienia dotyczą inicjowania projektu:

  • Jeśli nie podasz --worker-runtime opcji w poleceniu, zostanie wyświetlony monit o wybranie języka. Aby uzyskać więcej informacji, zobacz dokumentację init func.

  • Jeśli nie podasz nazwy projektu, bieżący folder zostanie zainicjowany.

  • Jeśli planujesz opublikować projekt w niestandardowym kontenerze systemu Linux, użyj --docker opcji , aby upewnić się, że plik Dockerfile jest generowany dla projektu. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji w systemie Linux przy użyciu obrazu niestandardowego.

Niektóre języki mogą mieć więcej zagadnień:

  • Narzędzia Core Tools umożliwiają tworzenie projektów aplikacji funkcji dla środowiska uruchomieniowego platformy .NET zarówno podczas przetwarzania , jak i izolowanego procesu roboczego projektów bibliotek klas języka C# (csproj). Te projekty, których można używać z programem Visual Studio lub Visual Studio Code, są kompilowane podczas debugowania i publikowania na platformie Azure.

  • Użyj parametru , --csx jeśli chcesz pracować lokalnie z plikami skryptu języka C# (csx). Te pliki są takie same, jak podczas tworzenia funkcji w Azure Portal i w przypadku korzystania z wersji 1.x narzędzi Core Tools. Aby dowiedzieć się więcej, zobacz dokumentację init func.

Rejestrowanie rozszerzeń

Począwszy od środowiska uruchomieniowego w wersji 2.x , wyzwalacze i powiązania usługi Functions są implementowane jako pakiety rozszerzeń .NET (NuGet). W przypadku skompilowanych projektów języka C# po prostu odwołujesz się do pakietów rozszerzeń NuGet dla określonych wyzwalaczy i powiązań, których używasz. Powiązania HTTP i wyzwalacze czasomierza nie wymagają rozszerzeń.

Aby ulepszyć środowisko programistyczne dla projektów innych niż C#, usługa Functions umożliwia odwoływanie się do pakietu rozszerzeń w wersji w pliku projektu host.json. Pakiety rozszerzeń udostępniają wszystkie rozszerzenia aplikacji i usuwają prawdopodobieństwo wystąpienia problemów ze zgodnością pakietów między rozszerzeniami. Pakiety rozszerzeń usuwa również wymaganie instalowania zestawu .NET SDK i konieczności obsługi pliku extensions.csproj.

Pakiety rozszerzeń to zalecane podejście do projektów funkcji innych niż projekty zgodne z językiem C# i skrypt języka C#. W przypadku tych projektów ustawienie pakietu rozszerzeń jest generowane w pliku host.json podczas inicjowania. Jeśli pakiety nie są włączone, należy zaktualizować plik host.json projektu.

Najprostszym sposobem instalowania rozszerzeń powiązań jest włączenie pakietów rozszerzeń. Po włączeniu pakietów instalowany jest automatycznie wstępnie zdefiniowany zestaw pakietów rozszerzeń.

Aby włączyć pakiety rozszerzeń, otwórz plik host.json i zaktualizuj jego zawartość w celu dopasowania go do następującego kodu:

{
    "version": "2.0",
    "extensionBundle": {
        "id": "Microsoft.Azure.Functions.ExtensionBundle",
        "version": "[2.*, 3.0.0)"
    }
}

Aby dowiedzieć się więcej, zobacz Rejestrowanie rozszerzeń powiązań Azure Functions.

W projekcie non-.NET mogą wystąpić przypadki, w których nie można używać pakietów rozszerzeń, takich jak w przypadku konieczności kierowania określonej wersji rozszerzenia, która nie znajduje się w pakiecie. W takich rzadkich przypadkach można użyć narzędzi Core Tools do lokalnego zainstalowania określonych pakietów rozszerzeń wymaganych przez projekt. Aby dowiedzieć się więcej, zobacz Instalowanie rozszerzeń.

Ustawienia lokalne

W przypadku uruchamiania w aplikacji funkcji na platformie Azure ustawienia wymagane przez funkcje są bezpiecznie przechowywane w ustawieniach aplikacji. Podczas programowania lokalnego te ustawienia są zamiast tego dodawane do Values obiektu w pliku local.settings.json. Plik local.settings.json przechowuje również ustawienia używane przez lokalne narzędzia programistyczne.

Ponieważ plik local.settings.json może zawierać wpisy tajne, takie jak parametry połączenia, nigdy nie należy przechowywać go w repozytorium zdalnym. Aby dowiedzieć się więcej na temat ustawień lokalnych, zobacz Plik ustawień lokalnych.

Domyślnie te ustawienia nie są migrowane automatycznie po opublikowaniu projektu na platformie Azure. Użyj opcji podczas publikowania--publish-local-settings, aby upewnić się, że te ustawienia są dodawane do aplikacji funkcji na platformie Azure. Wartości w ConnectionStrings sekcji nigdy nie są publikowane.

Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz sekcję Zmienne środowiskowe w tych artykułach referencyjnych specyficznych dla języka:

Jeśli nie ustawiono AzureWebJobsStorage prawidłowych parametrów połączenia magazynu i nie jest używany lokalny emulator magazynu, wyświetlany jest następujący komunikat o błędzie:

Brak wartości dla usługi AzureWebJobsStorage w pliku local.settings.json. Jest to wymagane dla wszystkich wyzwalaczy innych niż HTTP. Możesz uruchomić polecenie "func azure functionapp fetch-app-settings <functionAppName>" lub określić parametry połączenia w pliku local.settings.json.

Pobieranie parametrów połączenia magazynu

Nawet w przypadku korzystania z emulatora magazynu Azurite do programowania można uruchomić lokalnie z rzeczywistym połączeniem magazynu. Zakładając, że konto magazynu zostało już utworzone, możesz uzyskać prawidłowe parametry połączenia magazynu na jeden z kilku sposobów:

  1. W Azure Portal wyszukaj i wybierz pozycję Konta magazynu.

    Wybierz pozycję Konta magazynu z Azure Portal

  2. Wybierz konto magazynu, wybierz pozycję Klucze dostępu w obszarze Ustawienia, a następnie skopiuj jedną z wartości Parametrów połączenia .

    Kopiowanie parametrów połączenia z Azure Portal

Tworzenie funkcji

Aby utworzyć funkcję w istniejącym projekcie, uruchom następujące polecenie:

func new

Po uruchomieniu polecenia func newzostanie wyświetlony monit o wybranie szablonu w domyślnym języku aplikacji funkcji. Następnie zostanie wyświetlony monit o wybranie nazwy funkcji. W wersji 1.x musisz również wybrać język.

W poleceniu func new można również określić nazwę funkcji i szablon. W poniższym przykładzie użyto --template opcji do utworzenia wyzwalacza HTTP o nazwie MyHttpTrigger:

func new --template "Http Trigger" --name MyHttpTrigger

W tym przykładzie jest tworzony wyzwalacz usługi Queue Storage o nazwie MyQueueTrigger:

func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger

Aby dowiedzieć się więcej, zobacz func new polecenie .

Uruchamianie funkcji lokalnie

Aby uruchomić projekt usługi Functions, należy uruchomić hosta usługi Functions z katalogu głównego projektu. Host włącza wyzwalacze dla wszystkich funkcji w projekcie. Polecenie start różni się w zależności od języka projektu.

func start

Uwaga

Zamiast tego wersja 1.x środowiska uruchomieniowego usługi Functions wymaga polecenia func host start. Aby dowiedzieć się więcej, zobacz dokumentację Azure Functions Core Tools.

Po uruchomieniu hosta usługi Functions zwraca on adres URL funkcji wyzwalanych przez protokół HTTP, jak w poniższym przykładzie:

Found the following functions:
Host.Functions.MyHttpTrigger

Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger

Ważne

W przypadku uruchamiania lokalnego autoryzacja nie jest wymuszana dla punktów końcowych HTTP. Oznacza to, że wszystkie lokalne żądania HTTP są obsługiwane jako authLevel = "anonymous". Aby uzyskać więcej informacji, zobacz artykuł dotyczący powiązania HTTP.

Przekazywanie danych testowych do funkcji

Aby przetestować funkcje lokalnie, należy uruchomić hosta usługi Functions i wywołać punkty końcowe na serwerze lokalnym przy użyciu żądań HTTP. Wywoływany punkt końcowy zależy od typu funkcji.

Uwaga

Przykłady w tym temacie używają narzędzia cURL do wysyłania żądań HTTP z terminalu lub wiersza polecenia. Możesz użyć wybranego narzędzia do wysyłania żądań HTTP do serwera lokalnego. Narzędzie cURL jest domyślnie dostępne w systemach opartych na systemie Linux i Windows 10 kompilacji 17063 i nowszych. W starszych systemach Windows należy najpierw pobrać i zainstalować narzędzie cURL.

Aby uzyskać więcej ogólnych informacji na temat funkcji testowania, zobacz Strategie testowania kodu w Azure Functions.

Funkcje wyzwalane przez protokół HTTP i element webhook

Wywołasz następujący punkt końcowy, aby lokalnie uruchomić funkcje wyzwalane przez protokół HTTP i element webhook:

http://localhost:{port}/api/{function_name}

Upewnij się, że używasz tej samej nazwy serwera i portu, na który nasłuchuje host usługi Functions. Zobaczysz to w danych wyjściowych wygenerowanych podczas uruchamiania hosta funkcji. Ten adres URL można wywołać przy użyciu dowolnej metody HTTP obsługiwanej przez wyzwalacz.

Następujące polecenie cURL wyzwala funkcję szybkiego startu MyHttpTrigger z żądania GET z parametrem name przekazanym w ciągu zapytania.

curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks

Poniższy przykład to ta sama funkcja wywoływana z żądania POST przekazująca nazwę w treści żądania żądania:

curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'

Żądania GET można wysyłać z przeglądarki przekazując dane w ciągu zapytania. W przypadku wszystkich innych metod HTTP należy użyć narzędzia cURL, Fiddler, Postman lub podobnego narzędzia do testowania HTTP obsługującego żądania POST.

Funkcje niezwiązane z protokołem HTTP

Dla wszystkich funkcji innych niż wyzwalacze HTTP i Event Grid można testować funkcje lokalnie przy użyciu interfejsu REST, wywołując specjalny punkt końcowy nazywany punktem końcowym administrowania. Wywołanie tego punktu końcowego przy użyciu żądania HTTP POST na serwerze lokalnym wyzwala funkcję. Możesz wywołać functions punkt końcowy administratora (http://localhost:{port}/admin/functions/), aby uzyskać adresy URL dla wszystkich dostępnych funkcji, wyzwalane przez protokół HTTP i wyzwalane bez protokołu HTTP.

W przypadku uruchamiania lokalnego uwierzytelnianie i autoryzacja są pomijane. Jednak podczas próby wywołania tych samych punktów końcowych administratora w aplikacji funkcji na platformie Azure należy podać klucz dostępu. Aby dowiedzieć się więcej, zobacz Klucze dostępu do funkcji.

Ważne

Klucze dostępu są cennymi udostępnionymi wpisami tajnymi. Gdy są używane lokalnie, muszą być bezpiecznie przechowywane poza kontrolą źródła. Ponieważ uwierzytelnianie i autoryzacja nie są wymagane przez funkcje podczas uruchamiania lokalnego, należy unikać używania i przechowywania kluczy dostępu, chyba że scenariusze tego wymagają.

Aby przetestować funkcje wyzwalane lokalnie w usłudze Event Grid, zobacz Testowanie lokalne z aplikacją internetową przeglądarki.

Opcjonalnie możesz przekazać dane testowe do wykonania w treści żądania POST. Ta funkcja jest podobna do karty Test w Azure Portal.

Wywołasz następujący punkt końcowy administratora, aby wyzwolić funkcje inne niż HTTP:

http://localhost:{port}/admin/functions/{function_name}

Aby przekazać dane testowe do punktu końcowego administratora funkcji, musisz podać dane w treści komunikatu żądania POST. Treść komunikatu musi mieć następujący format JSON:

{
    "input": "<trigger_input>"
}

Wartość <trigger_input> zawiera dane w formacie oczekiwanym przez funkcję. Poniższy przykład biblioteki cURL to post do QueueTriggerJS funkcji. W takim przypadku dane wejściowe to ciąg, który jest odpowiednikiem komunikatu, który ma zostać znaleziony w kolejce.

curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger

Publikowanie na platformie Azure

Narzędzia Azure Functions Core Tools obsługują dwa typy wdrożeń:

Typ wdrożenia Polecenie Opis
Pliki projektu func azure functionapp publish Wdraża pliki projektu funkcji bezpośrednio w aplikacji funkcji przy użyciu wdrożenia zip.
Klaster Kubernetes func kubernetes deploy Wdraża aplikację funkcji systemu Linux jako niestandardowy kontener platformy Docker w klastrze Kubernetes.

Przed opublikowaniem

Ważne

Aby móc publikować na platformie Azure z poziomu narzędzi Core Tools, musisz mieć zainstalowany interfejs wiersza polecenia platformy Azure lub Azure PowerShell zainstalowany lokalnie.

Folder projektu może zawierać pliki i katalogi specyficzne dla języka, które nie powinny być publikowane. Wykluczone elementy są wyświetlane w pliku .funcignore w głównym folderze projektu.

Musisz już utworzyć aplikację funkcji w subskrypcji platformy Azure, do której wdrożysz kod. Projekty wymagające kompilacji powinny być kompilowane, aby można było wdrożyć pliki binarne.

Aby dowiedzieć się, jak utworzyć aplikację funkcji z poziomu wiersza polecenia lub okna terminalu przy użyciu interfejsu wiersza polecenia platformy Azure lub Azure PowerShell, zobacz Tworzenie aplikacji funkcji na potrzeby wykonywania bezserwerowego.

Ważne

Podczas tworzenia aplikacji funkcji w Azure Portal domyślnie jest używana wersja 4.x środowiska uruchomieniowego funkcji. Aby aplikacja funkcji korzystała z wersji 1.x środowiska uruchomieniowego, postępuj zgodnie z instrukcjami w temacie Uruchamianie w wersji 1.x. Nie można zmienić wersji środowiska uruchomieniowego dla aplikacji funkcji, która ma istniejące funkcje.

Wdrażanie plików projektu

Aby opublikować kod lokalny w aplikacji funkcji na platformie Azure, użyj publish polecenia :

func azure functionapp publish <FunctionAppName>

Następujące zagadnienia dotyczą tego rodzaju wdrożenia:

  • Publikowanie zastępuje istniejące pliki w aplikacji funkcji.

  • --publish-local-settings Użyj opcji automatycznego tworzenia ustawień aplikacji w aplikacji funkcji na podstawie wartości w pliku local.settings.json.

  • Kompilacja zdalna jest wykonywana na skompilowanych projektach. Można to kontrolować za pomocą --no-build opcji .

  • Projekt jest wdrażany tak, aby był uruchamiany z pakietu wdrożeniowego. Aby wyłączyć ten zalecany tryb wdrażania, użyj --nozip opcji .

  • Język Java używa narzędzia Maven do publikowania projektu lokalnego na platformie Azure. Zamiast tego użyj następującego polecenia, aby opublikować na platformie Azure: mvn azure-functions:deploy. Zasoby platformy Azure są tworzone podczas początkowego wdrażania.

  • Jeśli spróbujesz opublikować plik w <FunctionAppName> subskrypcji, zostanie wyświetlony błąd.

Klaster Kubernetes

Usługa Functions umożliwia również zdefiniowanie projektu usługi Functions do uruchomienia w kontenerze platformy Docker. --docker Użyj opcjifunc init , aby wygenerować plik Dockerfile dla określonego języka. Ten plik jest następnie używany podczas tworzenia kontenera do wdrożenia. Aby dowiedzieć się, jak opublikować kontener niestandardowy na platformie Azure bez platformy Kubernetes, zobacz Tworzenie funkcji w systemie Linux przy użyciu kontenera niestandardowego.

Narzędzia Core Tools mogą służyć do wdrażania projektu jako niestandardowego obrazu kontenera w klastrze Kubernetes.

Następujące polecenie używa pliku Dockerfile do wygenerowania kontenera i wdrożenia go w klastrze Kubernetes.

func kubernetes deploy --name <DEPLOYMENT_NAME> --registry <REGISTRY_USERNAME> 

Aby dowiedzieć się więcej, zobacz Wdrażanie aplikacji funkcji na platformie Kubernetes.

Instalowanie rozszerzeń

Jeśli nie możesz używać pakietów rozszerzeń, możesz użyć Azure Functions Core Tools lokalnie, aby zainstalować określone pakiety rozszerzeń wymagane przez projekt.

Ważne

Nie można jawnie instalować rozszerzeń w aplikacji funkcji z włączonymi pakietami rozszerzeń. Najpierw usuń sekcję extensionBundle w pliku host.json przed jawnym zainstalowaniem rozszerzeń.

Poniższe elementy opisują niektóre powody, dla których może być konieczne ręczne zainstalowanie rozszerzeń:

  • Musisz uzyskać dostęp do określonej wersji rozszerzenia niedostępnego w pakiecie.
  • Musisz uzyskać dostęp do rozszerzenia niestandardowego, które nie jest dostępne w pakiecie.
  • Musisz uzyskać dostęp do konkretnej kombinacji rozszerzeń, które nie są dostępne w jednym pakiecie.

Po jawnym zainstalowaniu rozszerzeń do katalogu głównego projektu zostanie dodany plik projektu .NET o nazwie extensions.csproj. Ten plik definiuje zestaw pakietów NuGet wymaganych przez funkcje. Chociaż można pracować z odwołaniami do pakietu NuGet w tym pliku, narzędzia Core Tools umożliwiają instalowanie rozszerzeń bez konieczności ręcznego edytowania tego pliku projektu w języku C#.

Istnieje kilka sposobów używania narzędzi Core Tools do instalowania wymaganych rozszerzeń w projekcie lokalnym.

Instalowanie wszystkich rozszerzeń

Użyj następującego polecenia, aby automatycznie dodać wszystkie pakiety rozszerzeń używane przez powiązania w projekcie lokalnym:

func extensions install

Polecenie odczytuje plik function.json , aby zobaczyć potrzebne pakiety, zainstalować je i ponownie skompilować projekt rozszerzeń (extensions.csproj). Dodaje nowe powiązania w bieżącej wersji, ale nie aktualizuje istniejących powiązań. --force Użyj opcji , aby zaktualizować istniejące powiązania do najnowszej wersji podczas instalowania nowych. Aby dowiedzieć się więcej, zobacz func extensions install polecenie .

Jeśli aplikacja funkcji używa powiązań lub pakietów NuGet, których narzędzia Core Tools nie rozpoznają, musisz ręcznie zainstalować określone rozszerzenie.

Instalowanie określonego rozszerzenia

Użyj następującego polecenia, aby zainstalować określony pakiet rozszerzenia w określonej wersji, w tym przypadku rozszerzenie magazynu:

func extensions install --package Microsoft.Azure.WebJobs.Extensions.Storage --version 5.0.0

To polecenie służy do instalowania dowolnego zgodnego pakietu NuGet. Aby dowiedzieć się więcej, zobacz func extensions install polecenie .

Funkcje monitorowania

Zalecanym sposobem monitorowania wykonywania funkcji jest integracja z usługą aplikacja systemu Azure Insights. Dzienniki wykonywania można również przesyłać strumieniowo na komputer lokalny. Aby dowiedzieć się więcej, zobacz Monitorowanie Azure Functions.

Integracja usługi Application Insights

Integracja usługi Application Insights powinna być włączona podczas tworzenia aplikacji funkcji na platformie Azure. Jeśli z jakiegoś powodu aplikacja funkcji nie jest połączona z wystąpieniem usługi Application Insights, można łatwo wykonać tę integrację w Azure Portal. Aby dowiedzieć się więcej, zobacz Włączanie integracji usługi Application Insights.

Włączanie dzienników przesyłania strumieniowego

Strumień plików dziennika generowanych przez funkcje można wyświetlić w sesji wiersza polecenia na komputerze lokalnym.

Wbudowane przesyłanie strumieniowe dzienników

Użyj polecenia , func azure functionapp logstream aby rozpocząć odbieranie dzienników przesyłania strumieniowego określonej aplikacji funkcji uruchomionej na platformie Azure, jak w poniższym przykładzie:

func azure functionapp logstream <FunctionAppName>

Uwaga

Wbudowane przesyłanie strumieniowe dzienników nie jest jeszcze włączone w narzędziach Core Tools dla aplikacji funkcji działających w systemie Linux w planie zużycie. W przypadku tych planów hostingu należy zamiast tego użyć strumienia metryk na żywo, aby wyświetlić dzienniki niemal w czasie rzeczywistym.

Transmisja strumieniowa metryk na żywo

Strumień metryk na żywo dla aplikacji funkcji można wyświetlić w nowym oknie przeglądarki, włączając --browser opcję, jak pokazano w poniższym przykładzie:

func azure functionapp logstream <FunctionAppName> --browser

Ten typ dzienników przesyłania strumieniowego wymaga włączenia integracji usługi Application Insights dla aplikacji funkcji.

Emulacja x86 w usłudze ARM64

Funkcje nie obsługują obecnie lokalnego tworzenia funkcji języka Python na urządzeniach ARM64. Wykonaj poniższe kroki, aby utworzyć funkcje języka Python na komputerze Mac z mikroukładem M1, uruchamiając je w emulowanym środowisku x86.

Włączanie aplikacji Rosetta w terminalu

  1. Na komputerze Mac otwórz program Finder, wybierz pozycję Aplikacje i znajdź pozycję Terminal.

  2. Kliknij pozycję Terminal i wybierz pozycję Pobierz informacje. Można również utworzyć oddzielne środowisko równoległe, duplikując terminal i zmieniając jego nazwę.

    Zrzut ekranu przedstawiający wybieranie pozycji Pobierz informacje przez kliknięcie kontrolki Terminal

  3. Wybierz pozycję Otwórz przy użyciu biblioteki Rosetta.

    Zrzut ekranu przedstawiający terminal skonfigurowany do otwierania przy użyciu narzędzia Rosetta

  4. Otwórz terminal, który ma teraz włączoną usługę Rosetta i upewnij się, że powłoka ma wartość zsh.

  5. Uruchom następujące polecenie, aby zweryfikować emulację x86.

    $ arch
    

    Odpowiedź wskazuje i386 , że terminal uruchamia środowisko emulowane x86.

Instalowanie wymaganych pakietów

Zainstaluj ponownie wszystkie zależności wymagane przez funkcje w tym środowisku, które obejmują następujące pakiety:

Ponadto zainstaluj ponownie wszystkie inne pakiety wymagane przez projekt języka Python.

Ustawianie aliasów (opcjonalnie)

Opcjonalnie można ustawić aliasy, aby ułatwić odwoł się do odpowiednich wersji w aplikacji Rosetta.

Poniżej przedstawiono przykład tworzenia pliku zshrc w celu skonfigurowania terminalu zsh:

# file: .zshrc
# rosetta terminal setup
if [ $(arch) = "i386" ]; then
    alias python="/usr/local/bin/python3"
    alias brew86='/usr/local/bin/brew'
    alias pyenv86="arch -x86_64 pyenv"
    alias func="/usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func"
fi

Uruchom następujące polecenie, aby zastosować aliasy:

$ source .zshrc

Zweryfikuj which , czy odwołujesz się do poprawnych wersji przy użyciu polecenia , jak pokazano w poniższych przykładach:

Polecenie Przykładowa odpowiedź
$ which python python: aliased to /usr/local/bin/python3
$ which func func: aliased to /usr/local/Cellar/azure-functions-core-tools@4/4.0.4785/func

Te przykładowe odpowiedzi są oparte na poprzednim przykładzie pliku zshrc.

Teraz skonfigurujesz Azure Functions w środowisku x86 z poziomu terminalu.

Jeśli używasz Visual Studio Code, możesz zintegrować aplikację Rosetta z wbudowanym terminalem. Aby uzyskać więcej informacji, zobacz Włączanie emulacji w Visual Studio Code.

Następne kroki

Dowiedz się, jak opracowywać, testować i publikować funkcje platformy Azure przy użyciu podstawowych narzędzi Azure Functions. Azure Functions Core Tools jest open source i hostowana w usłudze GitHub. Aby zgłosić usterkę lub żądanie funkcji, otwórz problem z usługą GitHub.