Lokalne opracowywanie usługi Azure Functions przy użyciu narzędzi Core Tools
Artykuł
Narzędzia Azure Functions Core Tools umożliwiają opracowywanie i testowanie funkcji na komputerze lokalnym. Gdy wszystko będzie gotowe, możesz również użyć narzędzi Core Tools, aby wdrożyć projekt kodu na platformie Azure i pracować z ustawieniami aplikacji.
Przeglądasz wersję tego artykułu w języku C#. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
Przeglądasz wersję języka Java tego artykułu. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
Przeglądasz wersję tego artykułu w języku JavaScript. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
Przeglądasz wersję programu PowerShell tego artykułu. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
Przeglądasz wersję języka Python tego artykułu. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
Wyświetlasz wersję języka TypeScript tego artykułu. Pamiętaj, aby wybrać preferowany język programowania usługi Functions w górnej części artykułu.
Jeśli chcesz od razu rozpocząć pracę, ukończ artykuł Szybki start dotyczący narzędzi Core Tools.
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:
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:
Domyślnie to polecenie tworzy projekt, który jest uruchamiany w trakcie procesu z hostem funkcji w bieżącej wersji long-term support (LTS) platformy .NET Core. Możesz użyć --target-framework opcji , aby określić określoną obsługiwaną wersję platformy .NET, w tym .NET Framework. Aby uzyskać więcej informacji, zobacz dokumentację func init .
Console
func init MyProjFolder --worker-runtime dotnet
To polecenie tworzy projekt uruchamiany w bieżącej wersji long-term support (LTS) platformy .NET Core. W przypadku innej wersji platformy .NET utwórz aplikację działającą w izolowanym procesie roboczym z hosta usługi Functions.
Język Java używa archetypu narzędzia Maven do utworzenia projektu lokalnego wraz z pierwszą funkcją wyzwalaną przez protokół HTTP. Zamiast używać func init poleceń i func new, zamiast tego należy wykonać kroki opisane w przewodniku Szybki start wiersza polecenia.
To polecenie tworzy projekt w języku Python, który używa żądanej wersji modelu programowania.
Po uruchomieniu func init--worker-runtime bez opcji zostanie wyświetlony monit o wybranie języka projektu. Aby dowiedzieć się więcej o dostępnych opcjach polecenia func init , zobacz dokumentację func init .
Tworzenie funkcji
Aby dodać funkcję do projektu, uruchom func new polecenie przy użyciu --template opcji , aby wybrać szablon wyzwalacza. Poniższy przykład tworzy wyzwalacz HTTP o nazwie MyHttpTrigger:
func new --template "Http Trigger" --name MyHttpTrigger
W tym przykładzie zostanie utworzony wyzwalacz usługi Queue Storage o nazwie MyQueueTrigger:
func new --template "Azure Queue Storage Trigger" --name MyQueueTrigger
Podczas dodawania funkcji mają zastosowanie następujące zagadnienia:
Po uruchomieniu func new--template bez opcji zostanie wyświetlony monit o wybranie szablonu.
Użyj polecenia , func templates list aby wyświetlić pełną listę dostępnych szablonów dla danego języka.
Po dodaniu wyzwalacza łączącego się z usługą należy również dodać ustawienie aplikacji odwołujące się do parametry połączenia lub tożsamości zarządzanej do pliku local.settings.json. Korzystanie z ustawień aplikacji w ten sposób uniemożliwia osadzanie poświadczeń w kodzie. Aby uzyskać więcej informacji, zobacz Praca z ustawieniami aplikacji lokalnie.
Narzędzia Core Tools dodaje również odwołanie do określonego rozszerzenia powiązania do projektu języka C#.
Aby dowiedzieć się więcej o dostępnych opcjach polecenia func new , zobacz dokumentację func new .
Dodawanie powiązania do funkcji
Funkcje udostępnia zestaw powiązań wejściowych i wyjściowych specyficznych dla usługi, co ułatwia funkcję nawiązywanie połączenia z innymi usługami platformy Azure bez konieczności używania zestawów SDK klienta specyficznych dla usługi. Aby uzyskać więcej informacji, zobacz Pojęcia powiązań i wyzwalaczy usługi Azure Functions.
Aby dodać powiązanie wejściowe lub wyjściowe do istniejącej funkcji, należy ręcznie zaktualizować definicję funkcji.
Ponieważ funkcja wyzwalana przez protokół HTTP zwraca również odpowiedź HTTP, funkcja zwraca MultiResponse obiekt, który reprezentuje zarówno dane wyjściowe HTTP, jak i kolejki.
W przypadku zastosowania tego przykładu do własnego projektu może być konieczne zmianę HttpRequestHttpRequestData na i IActionResult na HttpResponseData, w zależności od tego, czy używasz integracji z platformą ASP.NET Core, czy nie.
Komunikaty są wysyłane do kolejki po zakończeniu działania funkcji. Sposób definiowania powiązania wyjściowego zależy od modelu procesu. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Sposób definiowania powiązania wyjściowego zależy od wersji modelu Node.js. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Sposób definiowania powiązania wyjściowego zależy od wersji modelu języka Python. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Sposób definiowania powiązania wyjściowego zależy od wersji modelu Node.js. Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Podczas dodawania powiązań do funkcji mają zastosowanie następujące kwestie:
W przypadku języków definiujących funkcje przy użyciu pliku konfiguracji function.json program Visual Studio Code upraszcza proces dodawania powiązań do istniejącej definicji funkcji. Aby uzyskać więcej informacji, zobacz Łączenie funkcji z usługami platformy Azure przy użyciu powiązań.
Po dodaniu powiązań łączących się z usługą należy również dodać ustawienie aplikacji odwołujące się do parametry połączenia lub tożsamości zarządzanej do pliku local.settings.json. Aby uzyskać więcej informacji, zobacz Praca z ustawieniami aplikacji lokalnie.
Po dodaniu obsługiwanego powiązania rozszerzenie powinno być już zainstalowane, gdy aplikacja używa pakietu rozszerzeń. Aby uzyskać więcej informacji, zobacz pakiety rozszerzeń.
Po dodaniu powiązania wymagającego nowego rozszerzenia powiązania należy również dodać odwołanie do tego określonego rozszerzenia powiązania w projekcie języka C#.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Aby uzyskać więcej informacji, w tym linki do przykładowego kodu powiązania, do którego można się odwołać, zobacz Dodawanie powiązań do funkcji.
Uruchamianie środowiska uruchomieniowego usługi Functions
Przed uruchomieniem lub debugowaniem funkcji w projekcie należy uruchomić hosta usługi Functions z katalogu głównego projektu. Host włącza wyzwalacze dla wszystkich funkcji w projekcie. Użyj tego polecenia, aby uruchomić lokalne środowisko uruchomieniowe:
Począwszy od wersji 4.0.6517 narzędzi Core Tools, projekty modelu przetwarzania muszą odwoływać się do wersji 4.5.0 lub nowszej .Microsoft.NET.Sdk.Functions Jeśli jest używana wcześniejsza wersja, func start polecenie spowoduje błąd.
func start
npm install
npm start
To polecenie musi być uruchamiane w środowisku wirtualnym.
Po uruchomieniu hosta usługi Functions zwraca on listę funkcji w projekcie, w tym adresy URL dowolnych funkcji wyzwalanych przez protokół HTTP, na przykład w tym przykładzie:
Found the following functions:
Host.Functions.MyHttpTrigger
Job host started
Http Function MyHttpTrigger: http://localhost:7071/api/MyHttpTrigger
Podczas lokalnego uruchamiania funkcji należy pamiętać o następujących kwestiach:
Domyślnie autoryzacja nie jest wymuszana lokalnie 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 Poziom autoryzacji. Możesz użyć --enableAuth opcji , aby wymagać autoryzacji podczas uruchamiania lokalnego. Aby uzyskać więcej informacji, zobacz func start.
Możesz użyć lokalnego emulatora Azurite, gdy lokalnie uruchomione funkcje wymagają dostępu do usług Azure Storage (Queue Storage, Blob Storage i Table Storage) bez konieczności nawiązywania połączenia z tymi usługami na platformie Azure. W przypadku korzystania z emulacji lokalnej upewnij się, że przed uruchomieniem hosta lokalnego (func.exe). Aby uzyskać więcej informacji, zobacz Emulacja magazynu lokalnego.
Możesz użyć lokalnej emulacji Azurite, aby spełnić wymagania dotyczące magazynu procesu roboczego języka Python w wersji 2.
Funkcje inne niż HTTP można wyzwalać lokalnie bez nawiązywania połączenia z usługą na żywo. Aby uzyskać więcej informacji, zobacz Uruchamianie funkcji lokalnej.
W przypadku uwzględnienia informacji o połączeniu usługi Application Insights w pliku local.settings.json lokalne dane dziennika są zapisywane w określonym wystąpieniu usługi Application Insights. Aby dane telemetryczne lokalne były oddzielone od danych produkcyjnych, rozważ użycie oddzielnego wystąpienia usługi Application Insights na potrzeby programowania i testowania.
W przypadku korzystania z wersji 1.x narzędzi Core Tools zamiast tego użyj func host start polecenia , aby uruchomić lokalne środowisko uruchomieniowe.
Uruchamianie funkcji lokalnej
Po uruchomieniu lokalnego hosta usługi Functions (func.exe) można teraz wyzwalać poszczególne funkcje w celu uruchamiania i debugowania kodu funkcji. Sposób wykonywania pojedynczej funkcji zależy od typu wyzwalacza.
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 systemie Windows 10 kompilacji 17063 i nowszych. W starszych systemach Windows należy najpierw pobrać i zainstalować narzędzie cURL.
Wyzwalacze HTTP są uruchamiane przez wysłanie żądania HTTP do lokalnego punktu końcowego i portu, jak pokazano w danych wyjściowych func.exe, który ma następujący ogólny format:
http://localhost:<PORT>/api/<FUNCTION_NAME>
W tym szablonie <FUNCTION_NAME> adresu URL jest nazwą funkcji lub trasy i <PORT> jest portem lokalnym, na którym nasłuchuje func.exe.
Na przykład to polecenie cURL wyzwala funkcję szybkiego startu MyHttpTrigger z żądania GET z parametrem name przekazanym w ciągu zapytania:
Ten przykład jest tą samą funkcją wywoływaną z żądania POST przekazującego nazwę w treści żądania, pokazaną dla powłoki Bash i wiersza polecenia systemu Windows:
Bash
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
Windows Command Prompt
curl --request POST http://localhost:7071/api/MyHttpTrigger --data "{'name':'Azure Rocks'}"
Podczas lokalnego wywoływania punktów końcowych HTTP obowiązują następujące kwestie:
Żądania GET można wysyłać z przeglądarki przekazującej dane w ciągu zapytania. W przypadku wszystkich innych metod HTTP należy użyć narzędzia do testowania HTTP, które również zapewnia bezpieczeństwo danych. Aby uzyskać więcej informacji, zobacz Narzędzia do testowania HTTP.
Upewnij się, że używasz tej samej nazwy serwera i portu, na który nasłuchuje host usługi Functions. Podczas uruchamiania hosta funkcji zostanie wyświetlony punkt końcowy podobny do tego 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.
Istnieją dwa sposoby lokalnego wykonywania wyzwalaczy innych niż HTTP. Najpierw możesz nawiązać połączenie z usługami platformy Azure na żywo, takimi jak Azure Storage i Azure Service Bus. Powoduje to bezpośrednie dublowanie zachowania funkcji podczas uruchamiania na platformie Azure. W przypadku korzystania z usług na żywo upewnij się, że w pliku ustawień lokalnych uwzględnij wymagane nazwy parametry połączenia. Możesz rozważyć użycie innego połączenia usługi podczas programowania niż w środowisku produkcyjnym przy użyciu innego parametry połączenia w pliku local.settings.json niż w ustawieniach aplikacji funkcji na platformie Azure.
Wyzwalacze usługi Event Grid wymagają dodatkowej konfiguracji do uruchamiania lokalnie.
Funkcję inną niż HTTP można również uruchomić lokalnie przy użyciu interfejsu REST, wywołując specjalny punkt końcowy nazywany punktem końcowym administratora. Użyj tego formatu, aby wywołać admin punkt końcowy i wyzwolić określoną funkcję inną niż HTTP:
W tym szablonie <FUNCTION_NAME> adresu URL jest nazwą funkcji lub trasy i <PORT> jest portem lokalnym, na którym nasłuchuje func.exe.
Opcjonalnie możesz przekazać dane testowe do wykonania w treści żądania POST. Aby przekazać dane testowe, musisz podać dane w treści komunikatu żądania POST, który ma następujący format JSON:
JSON
{
"input": "<TRIGGER_INPUT>"
}
Wartość <TRIGGER_INPUT> zawiera dane w formacie oczekiwanym przez funkcję. Ten przykład programu cURL jest wyświetlany zarówno dla powłoki Bash, jak i wiersza polecenia systemu Windows:
Bash
curl --request POST -H "Content-Type:application/json" --data '{"input":"sample queue data"}' http://localhost:7071/admin/functions/QueueTrigger
Windows Command Prompt
curl --request POST -H "Content-Type:application/json" --data "{'input':'sample queue data'}" http://localhost:7071/admin/functions/QueueTrigger
Poprzednie przykłady generują żądanie POST, które przekazuje ciąg sample queue data do funkcji o nazwie QueueTrigger function, która symuluje dane przybywające do kolejki i wyzwalające funkcję
Podczas korzystania z punktu końcowego administratora do testowania lokalnego mają zastosowanie następujące kwestie:
Możesz wywołać functions punkt końcowy administratora (http://localhost:{port}/admin/functions/), aby zwrócić listę adresów URL administratora dla wszystkich dostępnych funkcji, wyzwalanych przez protokół HTTP i niezwolonych przez protokół HTTP.
Uwierzytelnianie i autoryzacja są pomijane podczas uruchamiania lokalnego. Te same interfejsy API istnieją na platformie Azure, ale podczas próby wywołania tych samych punktów końcowych administratora na platformie Azure należy podać klucz dostępu. Aby dowiedzieć się więcej, zobacz Praca z kluczami dostępu.
Klucze dostępu są cennymi wspólnymi 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ą.
Wywoływanie punktu końcowego administratora i przekazywanie danych testowych jest podobne do użycia karty Test w witrynie Azure Portal.
Wyzwalacze usługi Event Grid mają określone wymagania dotyczące włączania testowania lokalnego. Aby uzyskać więcej informacji, zobacz Testowanie lokalne za pomocą aplikacji internetowej przeglądarki.
Publikowanie na platformie Azure
Narzędzia Azure Functions Core Tools obsługują trzy typy wdrożeń:
Jeśli nie masz zainstalowanych tych narzędzi, musisz zamiast tego uzyskać prawidłowy token dostępu do użycia podczas wdrażania. Token dostępu można przedstawić przy użyciu --access-token opcji w poleceniach wdrażania.
Wdrażanie plików projektu
Aby opublikować kod lokalny w aplikacji funkcji na platformie Azure, użyj func azure functionapp publish polecenia , jak w poniższym przykładzie:
func azure functionapp publish <FunctionAppName>
To polecenie publikuje pliki projektu z bieżącego katalogu do <FunctionAppName> folderu jako pakiet wdrożeniowy .zip. Jeśli projekt wymaga kompilacji, odbywa się to zdalnie podczas wdrażania.
Język Java używa narzędzia Maven do publikowania lokalnego projektu na platformie Azure zamiast narzędzi Core Tools. Użyj następującego polecenia narzędzia Maven, aby opublikować projekt na platformie Azure:
mvn azure-functions:deploy
Po uruchomieniu tego polecenia zasoby platformy Azure są tworzone podczas początkowego wdrażania na podstawie ustawień w pliku pom.xml . Aby uzyskać więcej informacji, zobacz Wdrażanie projektu funkcji na platformie Azure.
Następujące zagadnienia dotyczą tego rodzaju wdrożenia:
Publikowanie zastępuje istniejące pliki we wdrożeniu aplikacji funkcji zdalnej.
Musisz już utworzyć aplikację funkcji w ramach subskrypcji platformy Azure. Narzędzia Core Tools wdraża kod projektu w tym zasobie aplikacji funkcji. Aby dowiedzieć się, jak utworzyć aplikację funkcji z poziomu wiersza polecenia lub okna terminalu przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, zobacz Tworzenie aplikacji funkcji na potrzeby wykonywania bezserwerowego. Te zasoby można również utworzyć w witrynie Azure Portal. Podczas próby opublikowania elementu w subskrypcji <FunctionAppName> występuje błąd.
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.
--publish-local-settings Użyj opcji automatycznego tworzenia ustawień aplikacji w aplikacji funkcji na podstawie wartości w pliku local.settings.json.
Aby opublikować w określonym nazwanym miejscu w aplikacji funkcji, użyj --slot opcji .
Wdrażanie kontenerów
Narzędzia Core Tools umożliwiają wdrażanie konteneryzowanej aplikacji funkcji zarówno w zarządzanych środowiskach usługi Azure Container Apps, jak i w zarządzanych klastrach Kubernetes.
Podczas wdrażania w środowisku usługi Azure Container Apps należy wziąć pod uwagę następujące kwestie:
Środowisko i konto magazynu muszą już istnieć. Podane konto magazynu parametry połączenia jest używane przez wdrożone aplikacje funkcji.
Nie musisz tworzyć oddzielnego zasobu aplikacji funkcji podczas wdrażania w usłudze Container Apps.
Parametry połączenia magazynu i inne poświadczenia usługi są ważnymi wpisami tajnymi. Pamiętaj, aby bezpiecznie przechowywać wszystkie pliki skryptów i func azurecontainerapps deploy nie przechowywać ich w żadnym publicznie dostępnym systemie kontroli źródła. Możesz zaszyfrować plik local.settings.json pod kątem dodanych zabezpieczeń.
Następujące func kubernetes deploy polecenie używa pliku Dockerfile do wygenerowania kontenera w określonym rejestrze i wdrożenia go w domyślnym klastrze Kubernetes.
Usługa Azure Functions na platformie Kubernetes korzystająca z usługi KEDA to nakład pracy typu open source, który można bezpłatnie wykorzystać. Pomoc techniczna dotycząca najlepszych wysiłków jest zapewniana przez współautorów i członków społeczności. Aby dowiedzieć się więcej, zobacz Wdrażanie aplikacji funkcji na platformie Kubernetes.
Praca z ustawieniami aplikacji lokalnie
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 kolekcji w pliku local.settings.json. Plik local.settings.json przechowuje również ustawienia używane przez lokalne narzędzia programistyczne.
Elementy w Values kolekcji w pliku local.settings.json projektu mają na celu dublowanie elementów w ustawieniach aplikacji funkcji na platformie Azure.
Podczas pracy z plikiem ustawień lokalnych należy wziąć pod uwagę następujące kwestie:
Ponieważ local.settings.json może zawierać wpisy tajne, takie jak parametry połączenia, nigdy nie należy przechowywać ich w repozytorium zdalnym. Narzędzia Core Tools ułatwiają szyfrowanie tego pliku ustawień lokalnych w celu zwiększenia bezpieczeństwa. Aby uzyskać więcej informacji, zobacz Plik ustawień lokalnych. Możesz również zaszyfrować plik local.settings.json pod kątem dodanych zabezpieczeń.
Domyślnie ustawienia lokalne nie są migrowane automatycznie po opublikowaniu projektu na platformie Azure. --publish-local-settings Użyj opcji podczas publikowania plików projektu, aby upewnić się, że te ustawienia są dodawane do aplikacji funkcji na platformie Azure. Wartości w ConnectionStrings sekcji nigdy nie są publikowane. Ustawienia można również przekazać z pliku local.settings.json w dowolnym momencie.
Ustawienia można pobrać i zastąpić w pliku local.settings.json przy użyciu ustawień z aplikacji funkcji na platformie Azure. Aby uzyskać więcej informacji, zobacz Pobieranie ustawień aplikacji.
Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.
Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.
Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.
Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.
Wartości ustawień aplikacji funkcji można również odczytywać w kodzie jako zmienne środowiskowe. Aby uzyskać więcej informacji, zobacz Zmienne środowiskowe.
Jeśli nie ustawiono AzureWebJobsStorage prawidłowego parametry połączenia magazynu i nie jest używany emulator magazynu lokalnego, zostanie wyświetlony błąd. Za pomocą narzędzi Core Tools można pobrać określone parametry połączenia z dowolnego konta usługi Azure Storage.
Pobieranie ustawień aplikacji
W katalogu głównym projektu użyj następującego polecenia, aby pobrać wszystkie ustawienia aplikacji z aplikacji na myfunctionapp12345 platformie Azure:
To polecenie zastępuje wszystkie istniejące ustawienia w pliku local.settings.json wartościami z platformy Azure. Jeśli jeszcze nie ma, nowe elementy są dodawane do kolekcji. Aby uzyskać więcej informacji, zobacz func azure functionapp fetch-app-settings polecenie .
Pobieranie parametry połączenia magazynu
Narzędzia Core Tools ułatwiają również uzyskanie parametry połączenia dowolnego konta magazynu, do którego masz dostęp. Z poziomu katalogu głównego projektu użyj następującego polecenia, aby pobrać parametry połączenia z konta magazynu o nazwie mystorage12345.
To polecenie dodaje ustawienie o nazwie mystorage12345_STORAGE do pliku local.settings.json, który zawiera parametry połączenia dla mystorage12345 konta. Aby uzyskać więcej informacji, zobacz func azure storage fetch-connection-string polecenie .
Aby zwiększyć bezpieczeństwo podczas programowania, rozważ szyfrowanie pliku local.settings.json.
Przekazywanie ustawień lokalnych na platformę Azure
Podczas publikowania plików projektu na platformie Azure bez korzystania z --publish-local-settings tej opcji ustawienia w pliku local.settings.json nie są ustawiane w aplikacji funkcji. Zawsze możesz ponownie uruchomić polecenie func azure functionapp publish z opcją --publish-settings-only , aby przekazać tylko ustawienia bez ponownego publikowania plików projektu.
Poniższy przykład przekazuje tylko ustawienia z Values kolekcji w pliku local.settings.json do aplikacji funkcji na platformie Azure o nazwie myfunctionapp12345:
Aby zwiększyć bezpieczeństwo parametry połączenia i innych cennych danych w ustawieniach lokalnych, narzędzia Core Tools umożliwiają szyfrowanie pliku local.settings.json. Gdy ten plik jest zaszyfrowany, środowisko uruchomieniowe automatycznie odszyfrowuje ustawienia w razie potrzeby tak samo jak w przypadku ustawienia aplikacji na platformie Azure. Możesz również odszyfrować lokalnie zaszyfrowany plik, aby pracować z ustawieniami.
Użyj następującego polecenia, aby zaszyfrować plik ustawień lokalnych dla projektu:
command
func settings encrypt
Użyj następującego polecenia, aby odszyfrować zaszyfrowane ustawienie lokalne, aby można było z nim pracować:
command
func settings decrypt
Po zaszyfrowaniu i odszyfrowaniu pliku ustawień ustawienie pliku IsEncrypted również zostanie zaktualizowane.
Konfigurowanie rozszerzeń powiązań
Wyzwalacze i powiązania funkcji są implementowane jako pakiety rozszerzenia .NET (NuGet). Aby móc korzystać z określonego rozszerzenia powiązania, to rozszerzenie musi być zainstalowane w projekcie.
Ta sekcja nie dotyczy wersji 1.x środowiska uruchomieniowego usługi Functions. W wersji 1.x obsługiwane powiązania zostały uwzględnione w podstawowym rozszerzeniu produktu.
W przypadku projektów bibliotek klas języka C# dodaj odwołania do określonych pakietów NuGet dla rozszerzeń powiązań wymaganych przez funkcje. Projekt skryptu języka C# (csx) musi używać pakietów rozszerzeń.
Funkcje udostępniają pakiety rozszerzeń , które ułatwiają pracę z rozszerzeniami powiązań w projekcie. Pakiety rozszerzeń, które są wersjonowane i zdefiniowane w pliku host.json, instalują kompletny zestaw zgodnych pakietów rozszerzeń powiązań dla aplikacji. Twoje host.json powinny już mieć włączone pakiety rozszerzeń. Jeśli z jakiegoś powodu musisz dodać lub zaktualizować pakiet rozszerzeń w pliku host.json, zobacz Pakiety rozszerzeń.
Jeśli musisz użyć rozszerzenia powiązania lub wersji rozszerzenia, która nie jest obsługiwana w pakiecie, musisz ręcznie zainstalować rozszerzenia. W przypadku takich rzadkich scenariuszy zobacz func extensions install polecenie .
Wersje narzędzi Core Tools
Główne wersje narzędzi Azure Functions Core Tools są połączone z określonymi wersjami głównymi środowiska uruchomieniowego usługi Azure Functions. Na przykład wersja 4.x narzędzi Core Tools obsługuje wersję 4.x środowiska uruchomieniowego usługi Functions. Ta wersja jest zalecaną wersją główną środowiska uruchomieniowego usługi Functions i narzędzi Core Tools. Najnowszą wersję narzędzi Core Tools można określić w repozytorium narzędzi Azure Functions Core Tools.
Począwszy od wersji 4.0.6517 narzędzi Core Tools, projekty modelu przetwarzania muszą odwoływać się do wersji 4.5.0 lub nowszej .Microsoft.NET.Sdk.Functions Jeśli jest używana wcześniejsza wersja, func start polecenie spowoduje błąd.
Uruchom następujące polecenie, aby określić wersję bieżącej instalacji narzędzi Core Tools:
command
func --version
O ile nie określono inaczej, przykłady w tym artykule dotyczą wersji 4.x.
Na danym komputerze można zainstalować tylko jedną wersję narzędzi Core Tools.
Podczas uaktualniania do najnowszej wersji narzędzi Core Tools należy użyć tej samej metody, która była używana do oryginalnej instalacji w celu przeprowadzenia uaktualnienia. Jeśli na przykład użyto tożsamości usługi zarządzanej w systemie Windows, odinstaluj bieżącą tożsamość usługi zarządzanej i zainstaluj najnowszą. Lub jeśli użyto narzędzia npm, uruchom ponownie polecenie npm install command.
W wersjach 2.x i 3.x narzędzi Core Tools były używane wersje 2.x i 3.x środowiska uruchomieniowego usługi Functions, które osiągnęły koniec wsparcia. Aby uzyskać więcej informacji, zobacz Omówienie wersji środowiska uruchomieniowego usługi Azure Functions.
W przypadku używania wersji 1.x narzędzi Core Tools w wersji 1.x środowiska uruchomieniowego usługi Functions jest nadal obsługiwane. Ta wersja narzędzi Core Tools może być uruchamiana lokalnie tylko na komputerach z systemem Windows. Jeśli obecnie korzystasz z wersji 1.x, rozważ migrację aplikacji do wersji 4.x dzisiaj.
Dołącz do serii meetup, aby tworzyć skalowalne rozwiązania sztucznej inteligencji oparte na rzeczywistych przypadkach użycia z innymi deweloperami i ekspertami.
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.
Dowiedz się, jak opracowywać, weryfikować i wdrażać projekty kodu języka Python w usłudze Azure Functions przy użyciu biblioteki języka Python dla usługi Azure Functions.
Dowiedz się, jak utworzyć funkcję języka C# z poziomu wiersza polecenia, a następnie opublikować projekt lokalny w celu hostowania bezserwerowego w usłudze Azure Functions.