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.
Jeśli to możliwe, należy utworzyć i zweryfikować projekt kodu usługi Azure Functions w lokalnym środowisku projektowym. Narzędzia Azure Functions Core Tools udostępnia lokalną wersję środowiska uruchomieniowego usługi Azure Functions, która integruje się z popularnymi narzędziami programistycznymi do zintegrowanego programowania, debugowania i wdrożeń. Funkcje lokalne mogą nawet łączyć się z usługami platformy Azure na żywo.
Ten artykuł zawiera kilka udostępnionych wskazówek dotyczących programowania lokalnego, takich jak praca z plikiemlocal.settings.json. Zawiera również linki do wskazówek specyficznych dla środowiska deweloperskiego.
Wskazówka
Szczegółowe informacje na temat opracowywania funkcji można znaleźć lokalnie w artykułach ze wskazówkami specyficznymi dla połączonego środowiska IDE.
Lokalne środowiska deweloperskie
Sposób opracowywania funkcji na komputerze lokalnym zależy od preferencji języka i narzędzi. Pamiętaj, aby wybrać preferowany język w górnej części artykułu.
Wskazówka
Wszystkie lokalne programowanie opiera się na narzędziach Azure Functions Core Tools, aby zapewnić środowisko uruchomieniowe usługi Functions do debugowania w środowisku lokalnym.
Za pomocą tych środowisk deweloperskich można kodować funkcje lokalnie w preferowanym języku:
Środowisko | opis |
---|---|
Visual Studio | Narzędzia usługi Azure Functions są uwzględnione w obciążeniu programistycznym platformy Azureprogramu Visual Studio. Umożliwia kompilowanie i wdrażanie kodu funkcji języka C# na platformie Azure jako biblioteki klas platformy .NET. Zawiera narzędzia Core Tools do testowania lokalnego. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji języka C# na platformie Azure przy użyciu programu Visual Studio |
Visual Studio Code | Rozszerzenie usługi Azure Functions dla programu Visual Studio Code dodaje obsługę usługi Functions do programu Visual Studio Code. Wymaga narzędzi Core Tools. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji przy użyciu programu Visual Studio Code. |
Wiersz polecenia lub terminal | Narzędzia Azure Functions Core Tools udostępniają podstawowe środowisko uruchomieniowe i szablony do tworzenia funkcji, które umożliwiają programowanie lokalne. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji języka C# na platformie Azure z poziomu wiersza polecenia. |
Środowisko | opis |
---|---|
Maven | Archetyp narzędzia Maven używa narzędzi Core Tools do tworzenia funkcji Języka Java. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Create your first function with Java and Maven (Tworzenie pierwszej funkcji przy użyciu języków Java i Maven). |
Visual Studio Code | Rozszerzenie usługi Azure Functions dla programu Visual Studio Code dodaje obsługę usługi Functions do programu Visual Studio Code. Wymaga narzędzi Core Tools. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji przy użyciu programu Visual Studio Code. |
IntelliJ IDEA | Archetyp maven i narzędzia Core Tools umożliwiają opracowywanie funkcji przy użyciu środowiska IntelliJ. Aby uzyskać więcej informacji, zobacz Create your first Java function in Azure using IntelliJ (Tworzenie pierwszej funkcji Java na platformie Azure przy użyciu środowiska IntelliJ). |
Eclipse | Archetyp maven i narzędzia Core Tools umożliwiają opracowywanie funkcji przy użyciu środowiska Eclipse. Aby dowiedzieć się więcej, zobacz Create your first Java function in Azure using Ecplise (Tworzenie pierwszej funkcji Java na platformie Azure przy użyciu usługi Ecplise). |
Środowisko | opis |
---|---|
Visual Studio Code | Rozszerzenie usługi Azure Functions dla programu Visual Studio Code dodaje obsługę usługi Functions do programu Visual Studio Code. Wymaga narzędzi Core Tools. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji przy użyciu programu Visual Studio Code. |
Wiersz polecenia lub terminal | Narzędzia Azure Functions Core Tools udostępniają podstawowe środowisko uruchomieniowe i szablony do tworzenia funkcji, które umożliwiają programowanie lokalne. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji Node.js na platformie Azure z poziomu wiersza polecenia. |
Środowisko | opis |
---|---|
Visual Studio Code | Rozszerzenie usługi Azure Functions dla programu Visual Studio Code dodaje obsługę usługi Functions do programu Visual Studio Code. Wymaga narzędzi Core Tools. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji przy użyciu programu Visual Studio Code. |
Wiersz polecenia lub terminal | Narzędzia Azure Functions Core Tools udostępniają podstawowe środowisko uruchomieniowe i szablony do tworzenia funkcji, które umożliwiają programowanie lokalne. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji programu PowerShell na platformie Azure z poziomu wiersza polecenia. |
Środowisko | opis |
---|---|
Visual Studio Code | Rozszerzenie usługi Azure Functions dla programu Visual Studio Code dodaje obsługę usługi Functions do programu Visual Studio Code. Wymaga narzędzi Core Tools. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie pierwszej funkcji przy użyciu programu Visual Studio Code. |
Wiersz polecenia lub terminal | Narzędzia Azure Functions Core Tools udostępniają podstawowe środowisko uruchomieniowe i szablony do tworzenia funkcji, które umożliwiają programowanie lokalne. Obsługuje programowanie w systemach Linux, macOS i Windows. Aby dowiedzieć się więcej, zobacz Tworzenie funkcji języka Python na platformie Azure z poziomu wiersza polecenia. |
Każde z tych lokalnych środowisk deweloperskich umożliwia tworzenie projektów aplikacji funkcji i używanie wstępnie zdefiniowanych szablonów funkcji do tworzenia nowych funkcji. Każda z nich używa narzędzi Core Tools, dzięki czemu można testować i debugować funkcje względem rzeczywistego środowiska uruchomieniowego usługi Functions na własnej maszynie tak samo jak każda inna aplikacja. Możesz również opublikować projekt aplikacji funkcji z dowolnego z tych środowisk na platformę Azure.
Pliki projektów lokalnych
Katalog projektu usługi Functions zawiera następujące pliki w folderze głównym projektu, niezależnie od języka:
Nazwa pliku | opis |
---|---|
host.json | Aby dowiedzieć się więcej, zobacz odniesienie 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 plik ustawień lokalnych. |
.gitignore | Zapobiega przypadkowemu opublikowaniu pliku local.settings.json w repozytorium Git. Aby dowiedzieć się więcej, zobacz plik ustawień lokalnych. |
.vscode\extensions.json | Plik ustawień używany podczas otwierania folderu projektu w programie Visual Studio Code. |
Inne pliki w projekcie zależą od języka i określonych funkcji. Aby uzyskać więcej informacji, zobacz przewodnik dla deweloperów dotyczący języka.
Plik ustawień lokalnych
Plik local.settings.json
przechowuje ustawienia i ustawienia aplikacji używane przez lokalne narzędzia programistyczne. Ustawienia w local.settings.json
pliku są używane tylko wtedy, gdy uruchamiasz projekt lokalnie. Podczas publikowania projektu na platformie Azure należy również dodać wszystkie wymagane ustawienia do ustawień aplikacji dla aplikacji funkcji.
Ważne
local.settings.json
Ponieważ plik może zawierać wpisy tajne, takie jak parametry połączenia, należy zachować ostrożność zatwierdzając kontrolę źródła. Narzędzia obsługujące funkcje zapewniają sposoby synchronizowania ustawień w local.settings.json
pliku z ustawieniami aplikacji w aplikacji funkcji, do której wdrożono projekt.
Plik ma następującą local.settings.json
strukturę:
{
"IsEncrypted": false,
"Values": {
"FUNCTIONS_WORKER_RUNTIME": "<language worker>",
"AzureWebJobsStorage": "<connection-string>",
"MyBindingConnection": "<binding-connection-string>",
"AzureWebJobs.HttpExample.Disabled": "true"
},
"Host": {
"LocalHttpPort": 7071,
"CORS": "*",
"CORSCredentials": false
},
"ConnectionStrings": {
"SQLConnectionString": "<sqlclient-connection-string>"
}
}
Te ustawienia są obsługiwane podczas lokalnego uruchamiania projektów:
Ustawienie | opis |
---|---|
IsEncrypted |
Gdy to ustawienie ma wartość true , wszystkie wartości są szyfrowane przy użyciu klucza komputera lokalnego. Jest używane z poleceniami func settings . Wartość domyślna to false . Możesz zaszyfrować plik local.settings.json na komputerze lokalnym, gdy zawiera wpisy tajne, takie jak parametry połączenia usługi. Host automatycznie odszyfrowuje ustawienia podczas jego uruchamiania. Użyj polecenia func settings decrypt przed próbą odczytania ustawień zaszyfrowanych lokalnie. |
Values |
Kolekcja ustawień aplikacji używanych podczas lokalnego uruchamiania projektu. Te pary klucz-wartość (string-string) odpowiadają ustawieniom aplikacji w aplikacji funkcji na platformie Azure, takim jak AzureWebJobsStorage . Wiele wyzwalaczy i powiązań ma właściwość odwołującą się do ustawienia aplikacji dotyczącego ciągu połączenia, na przykład Connection dla wyzwalacza usługi Blob Storage. W przypadku tych właściwości potrzebne jest ustawienie aplikacji zdefiniowane w tablicy Values . Zobacz kolejną tabelę, aby zapoznać się z listą często używanych ustawień. Wartości muszą być ciągami, a nie obiektami JSON ani tablicami. Nazwy ustawień nie mogą zawierać podwójnego podkreślenia ( __ ) i nie powinny zawierać dwukropka (: ). Podwójne podkreślenie znaków jest zarezerwowane przez środowisko uruchomieniowe, a dwukropek jest zarezerwowany do obsługi wstrzykiwania zależności. |
Host |
Ustawienia w tej sekcji dostosują proces hosta usługi Functions podczas lokalnego uruchamiania projektów. Te ustawienia są oddzielone od ustawień host.json, które mają zastosowanie również podczas uruchamiania projektów na platformie Azure. |
LocalHttpPort |
Ustawia domyślny port używany podczas uruchamiania lokalnego hosta usługi Functions (func host start i func run ). Opcja --port wiersza polecenia ma pierwszeństwo przed tym ustawieniem. Na przykład podczas uruchamiania w środowisku IDE programu Visual Studio można zmienić numer portu, przechodząc do okna "Właściwości projektu —> debugowanie" i jawnie określając numer portu w host start --port <your-port-number> poleceniu, które można podać w polu "Argumenty aplikacji". |
CORS |
Definiuje źródła dozwolone dla współużytkowania zasobów między źródłami (CORS). Źródła są dostarczane jako lista rozdzielona przecinkami bez spacji. Wartość wieloznaczna (*) jest obsługiwana, co umożliwia żądania z dowolnego źródła. |
CORSCredentials |
Gdy jest ustawiony na true , zezwala na withCredentials żądanie. |
ConnectionStrings |
Kolekcja. Nie używaj tej kolekcji dla parametry połączenia używanych przez powiązania funkcji. Ta kolekcja jest używana tylko przez struktury, które zazwyczaj pobierają parametry połączenia z ConnectionStrings sekcji pliku konfiguracji, takiego jak Entity Framework. Parametry połączenia w tym obiekcie są dodawane do środowiska z typem dostawcy System.Data.SqlClient. Elementy w tej kolekcji nie są publikowane na platformie Azure z innymi ustawieniami aplikacji. Te wartości należy jawnie dodać do Connection strings kolekcji ustawień aplikacji funkcji. Jeśli tworzysz element SqlConnection w kodzie funkcji, powinieneś zapisać wartość łańcucha połączenia wraz z innymi połączeniami w Ustawieniach aplikacji w portalu. |
Podczas uruchamiania lokalnie można uwzględnić następujące ustawienia aplikacji w tablicy Values
.
Ustawienie | Wartości | opis |
---|---|---|
AzureWebJobsStorage |
łańcuch połączenia konta przechowywania lubUseDevelopmentStorage=true |
Zawiera parametry połączenia dla konta usługi Azure Storage. Wymagane w przypadku korzystania z wyzwalaczy innych niż HTTP. Aby uzyskać więcej informacji, zobacz odnośnik AzureWebJobsStorage .Po zainstalowaniu emulatora Azurite lokalnie i ustawieniu AzureWebJobsStorage na UseDevelopmentStorage=true , narzędzia Core Tools używają emulatora. Aby uzyskać więcej informacji, zobacz Emulator magazynu lokalnego. |
AzureWebJobs.<FUNCTION_NAME>.Disabled |
true |false |
Aby wyłączyć funkcję podczas uruchamiania lokalnie, dodaj "AzureWebJobs.<FUNCTION_NAME>.Disabled": "true" do kolekcji, gdzie <FUNCTION_NAME> jest nazwą funkcji. Aby dowiedzieć się więcej, zobacz Jak wyłączyć funkcje w usłudze Azure Functions. |
FUNCTIONS_WORKER_RUNTIME |
dotnet dotnet-isolated node java powershell python |
Wskazuje docelowy język środowiska uruchomieniowego usługi Functions. Wymagana dla wersji 2.x i nowszej środowiska uruchomieniowego usługi Functions. To ustawienie jest generowane dla projektu przez narzędzia Core Tools. Aby dowiedzieć się więcej, zobacz odnośnik FUNCTIONS_WORKER_RUNTIME . |
FUNCTIONS_WORKER_RUNTIME_VERSION |
~7 |
Wskazuje, że używasz programu PowerShell 7 podczas uruchamiania lokalnego. Jeśli nie zostanie ustawiona, zostanie użyty program PowerShell Core 6. To ustawienie jest używane tylko w przypadku uruchamiania lokalnego. Wersja środowiska uruchomieniowego programu PowerShell jest określana przez ustawienie konfiguracji lokacji po uruchomieniu powerShellVersion na platformie Azure, które można ustawić w portalu. |
Synchronizowanie ustawień
Podczas lokalnego opracowywania funkcji wszystkie ustawienia lokalne wymagane przez aplikację muszą być również obecne w ustawieniach aplikacji funkcji, do której wdrożono kod. Może być również konieczne pobranie bieżących ustawień z aplikacji funkcji do projektu lokalnego. Chociaż możesz ręcznie skonfigurować ustawienia aplikacji w witrynie Azure Portal, następujące narzędzia umożliwiają również synchronizowanie ustawień aplikacji z ustawieniami lokalnymi w projekcie:
Wyzwalacze i powiązania
Podczas lokalnego tworzenia funkcji należy wziąć pod uwagę działanie wyzwalaczy i wiązań. W przypadku wyzwalaczy HTTP można wywołać punkt końcowy HTTP na komputerze lokalnym przy użyciu polecenia http://localhost/
. W przypadku funkcji niewywoływanych przez protokół HTTP, istnieje kilka opcji uruchamiania lokalnie:
- Najprostszym sposobem testowania powiązań podczas programowania lokalnego jest użycie parametry połączenia przeznaczonych dla aktywnych usług platformy Azure. Można kierować na usługi na żywo, dodając odpowiednie ustawienia parametrów połączenia w tablicy
Values
w pliku local.settings.json. Gdy to robisz, lokalne operacje wykonawcze podczas testowania mogą negatywnie wpływać na usługi produkcyjne. Zamiast tego rozważ skonfigurowanie oddzielnych usług do użycia podczas programowania i testowania, a następnie przełączenie się do różnych usług podczas produkcji. - W przypadku wyzwalaczy opartych na magazynie możesz użyć lokalnego emulatora magazynu.
- Funkcje wyzwalacza inne niż HTTP można uruchamiać ręcznie przy użyciu specjalnych punktów końcowych administratora. Aby uzyskać więcej informacji, zobacz Ręczne uruchamianie funkcji niezwolonej przez protokół HTTP.
Podczas testowania lokalnego należy uruchomić hosta dostarczonego przez narzędzia Core Tools (func.exe) lokalnie. Aby uzyskać więcej informacji, zobacz Podstawowe narzędzia usługi Azure Functions.
Narzędzia do testowania HTTP
Podczas opracowywania można łatwo wywołać dowolne punkty końcowe funkcji z przeglądarki internetowej, gdy obsługują metodę HTTP GET. Jednak w przypadku innych metod HTTP obsługujących ładunki, takich jak POST lub PUT, należy użyć narzędzia testowego HTTP do utworzenia i wysłania tych żądań HTTP do punktów końcowych funkcji.
Uwaga
W przypadku scenariuszy, w których żądania muszą zawierać dane poufne, upewnij się, że używasz narzędzia chroniącego dane i zmniejsza ryzyko ujawnienia poufnych danych publicznie. Dane poufne, które należy chronić, mogą obejmować: poświadczenia, wpisy tajne, tokeny dostępu, klucze interfejsu API, dane geolokalizacji, a nawet dane osobowe.
Możesz zapewnić bezpieczeństwo danych, wybierając narzędzie testowe HTTP, które działa w trybie offline lub lokalnie, nie synchronizuje danych z chmurą i nie wymaga zalogowania się do konta online. Niektóre narzędzia mogą również chronić dane przed przypadkowym ujawnieniem, implementując określone funkcje zabezpieczeń.
Unikaj używania narzędzi, które centralnie przechowują historię żądań HTTP (w tym informacje poufne), nie przestrzegaj najlepszych rozwiązań w zakresie zabezpieczeń ani nie przestrzegaj kwestii dotyczących prywatności danych.
Rozważ użycie jednego z tych narzędzi do bezpiecznego wysyłania żądań HTTP do punktów końcowych funkcji:
- Program Visual Studio Code z rozszerzeniem z witryny Visual Studio Marketplace, takim jak klient REST
- PowerShell Invoke-RestMethod
- Microsoft Edge — narzędzie konsoli sieciowej
- Bruno
- curl
Emulator magazynu lokalnego
Podczas programowania lokalnego można użyć lokalnego emulatora usługi Azurite podczas testowania funkcji za pomocą powiązań usługi Azure Storage (Queue Storage, Blob Storage i Table Storage), bez konieczności nawiązywania połączenia z zdalnymi usługami magazynu. Rozwiązanie Azurite integruje się z programem Visual Studio Code i programem Visual Studio, a także można uruchomić je z poziomu wiersza polecenia przy użyciu narzędzia npm. Aby uzyskać więcej informacji, zobacz Use the Azurite emulator for local Azure Storage development (Używanie emulatora Azurite do lokalnego programowania w usłudze Azure Storage).
Następujące ustawienie w Values
kolekcji pliku local.settings.json informuje lokalnego hosta usługi Functions o użyciu Azurite dla domyślnego AzureWebJobsStorage
połączenia:
"AzureWebJobsStorage": "UseDevelopmentStorage=true"
Przy użyciu tej wartości ustawienia, dowolny wyzwalacz lub powiązanie usługi Azure Storage, który używa AzureWebJobsStorage
jako połączenia, łączy się z usługą Azurite, gdy działa lokalnie. Należy pamiętać o tych kwestiach przy korzystaniu z emulacji magazynu podczas wykonywania lokalnego:
- Musisz mieć zainstalowaną i uruchomioną aplikację Azurite.
- Przed opublikowaniem na platformie Azure należy przetestować rzeczywiste połączenie magazynu z usługami platformy Azure.
- Podczas publikowania projektu nie należy publikować
AzureWebJobsStorage
ustawienia jakoUseDevelopmentStorage=true
. Na platformie Azure ustawienieAzureWebJobsStorage
powinno zawsze być łańcuchem połączenia konta magazynu używanego przez aplikację funkcji. Aby uzyskać więcej informacji, zobaczAzureWebJobsStorage
.
Powiązane artykuły
- Aby dowiedzieć się więcej na temat lokalnego tworzenia funkcji przy użyciu programu Visual Studio, zobacz Tworzenie usługi Azure Functions przy użyciu programu Visual Studio.
- Aby dowiedzieć się więcej na temat lokalnego tworzenia funkcji przy użyciu programu Visual Studio Code na komputerze Mac, Linux lub Windows, zobacz Tworzenie usługi Azure Functions przy użyciu programu Visual Studio Code.
- Aby dowiedzieć się więcej na temat opracowywania funkcji z poziomu wiersza polecenia lub terminalu, zobacz Praca z narzędziami Azure Functions Core Tools.