Lokalne opracowywanie usługi Azure Functions przy użyciu narzędzi Core Tools
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:
- 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.
Aby uzyskać pomoc dotyczącą problemów związanych z wersją, zobacz Wersje narzędzi Core Tools.
Tworzenie projektu lokalnego
Ważne
W przypadku języka Python należy uruchomić polecenia Core Tools w środowisku wirtualnym. Aby uzyskać więcej informacji, zobacz Szybki start: tworzenie funkcji języka Python na platformie Azure z poziomu wiersza polecenia.
W oknie terminalu lub w wierszu polecenia uruchom następujące polecenie, aby utworzyć projekt w folderze MyProjFolder
:
func init MyProjFolder --worker-runtime dotnet-isolated
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
.
Porównanie dwóch modeli procesów platformy .NET można znaleźć w artykule porównanie trybu przetwarzania.
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 JavaScript, który używa żądanej wersji modelu programowania.
To polecenie tworzy projekt TypeScript, który używa żądanej wersji modelu programowania.
func init MyProjFolder --worker-runtime powershell
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.
Poniższy przykład przedstawia definicję funkcji po dodaniu powiązania wyjściowego usługi Queue Storage do funkcji wyzwalanej przez protokół HTTP:
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.
[Function("HttpExample")]
public static MultiResponse Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequest req,
FunctionContext executionContext)
{
W tym przykładzie jest definicja MultiResponse
obiektu, który zawiera powiązanie wyjściowe:
public class MultiResponse
{
[QueueOutput("outqueue",Connection = "AzureWebJobsStorage")]
public string[] Messages { get; set; }
public IActionResult HttpResponse { get; set; }
}
W przypadku zastosowania tego przykładu do własnego projektu może być konieczne zmianę HttpRequest
HttpRequestData
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.
@FunctionName("HttpExample")
public HttpResponseMessage run(
@HttpTrigger(name = "req", methods = {HttpMethod.GET, HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS)
HttpRequestMessage<Optional<String>> request,
@QueueOutput(name = "msg", queueName = "outqueue",
connection = "AzureWebJobsStorage") OutputBinding<String> msg,
final ExecutionContext context) {
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.
$outputMsg = $name
Push-OutputBinding -name msg -Value $outputMsg
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.
@app.route(route="HttpExample")
@app.queue_output(arg_name="msg", queue_name="outqueue", connection="AzureWebJobsStorage")
def HttpExample(req: func.HttpRequest, msg: func.Out [func.QueueMessage]) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
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:
mvn clean package
mvn azure-functions:run
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, zobaczfunc 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:
curl --get http://localhost:7071/api/MyHttpTrigger?name=Azure%20Rocks
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:
curl --request POST http://localhost:7071/api/MyHttpTrigger --data '{"name":"Azure Rocks"}'
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.
Publikowanie na platformie Azure
Narzędzia Azure Functions Core Tools obsługują trzy 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. |
Azure Container Apps | func azurecontainerapps deploy |
Wdraża konteneryzowaną aplikację funkcji w istniejącym środowisku usługi Container Apps. |
Klaster Kubernetes | func kubernetes deploy |
Wdraża aplikację funkcji systemu Linux jako niestandardowy kontener platformy Docker w klastrze Kubernetes. |
Aby móc publikować na platformie Azure z narzędzi Core Tools, musisz mieć zainstalowany lokalnie interfejs wiersza polecenia platformy Azure lub program Azure PowerShell . Domyślnie narzędzia Core Tools używają tych narzędzi do uwierzytelniania przy użyciu konta platformy Azure.
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.
Domyślnie projekt jest wdrażany tak, aby był uruchamiany z pakietu wdrożeniowego. Aby wyłączyć ten zalecany tryb wdrażania, użyj
--nozip
opcji .Kompilacja zdalna jest wykonywana na skompilowanych projektach. Można to kontrolować za pomocą
--no-build
opcji .--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.
Użyj następującego func azurecontainerapps deploy
polecenia, aby wdrożyć istniejący obraz kontenera w środowisku usługi Container Apps:
func azurecontainerapps deploy --name <APP_NAME> --environment <ENVIRONMENT_NAME> --storage-account <STORAGE_CONNECTION> --resource-group <RESOURCE_GROUP> --image-name <IMAGE_NAME> [--registry-password] [--registry-server] [--registry-username]
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ń.
Aby uzyskać więcej informacji, zobacz Hostowanie usługi Azure Container Apps w usłudze Azure Functions.
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 wConnectionStrings
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:
func azure functionapp fetch-app-settings myfunctionapp12345
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
.
func azure storage fetch-connection-string 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
:
func azure functionapp publish myfunctionapp12345 --publish-settings-only
Szyfrowanie pliku ustawień lokalnych
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:
func settings encrypt
Użyj następującego polecenia, aby odszyfrować zaszyfrowane ustawienie lokalne, aby można było z nim pracować:
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.
Uruchom następujące polecenie, aby określić wersję bieżącej instalacji narzędzi Core Tools:
func --version
O ile nie określono inaczej, przykłady w tym artykule dotyczą wersji 4.x.
Następujące zagadnienia dotyczą instalacji narzędzi Core Tools:
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.
Następne kroki
Dowiedz się, jak opracowywać, testować i publikować funkcje platformy Azure przy użyciu podstawowych narzędzi usługi Azure Functions. Podstawowe narzędzia usługi Azure Functions są typu open source i hostowane w usłudze GitHub. Aby zgłosić usterkę lub żądanie funkcji, otwórz problem z usługą GitHub.