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:

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.

func init MyProjFolder --worker-runtime javascript --model V4

To polecenie tworzy projekt JavaScript, który używa żądanej wersji modelu programowania.

func init MyProjFolder --worker-runtime typescript --model V4

To polecenie tworzy projekt TypeScript, który używa żądanej wersji modelu programowania.

func init MyProjFolder --worker-runtime powershell
func init MyProjFolder --worker-runtime python --model V2

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ę 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.

@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.

Przykładowe powiązanie dla modelu Node.js w wersji 4 nie jest jeszcze dostępne.

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.

Przykładowe powiązanie dla modelu Node.js w wersji 4 nie jest jeszcze dostępne.

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 Połączenie funkcje do usług 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 artykuł powiązania HTTP. 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.

  • Po dołączeniu informacji o połączeniu aplikacji Szczegółowe informacje w pliku local.settings.json lokalne dane dziennika są zapisywane w określonym wystąpieniu usługi Application Szczegółowe informacje. Aby dane telemetryczne lokalne były oddzielone od danych produkcyjnych, rozważ użycie oddzielnego wystąpienia usługi Application Szczegółowe informacje 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 cURL, Fiddler, Postman lub podobnego narzędzia do testowania HTTP, które obsługuje żądania POST.

  • 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 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 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:

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ązanie zostało 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.