Zarządzanie aplikacją funkcji

W Azure Functions aplikacja funkcji udostępnia kontekst wykonywania poszczególnych funkcji. Zachowania aplikacji funkcji mają zastosowanie do wszystkich funkcji hostowanych przez daną aplikację funkcji. Wszystkie funkcje w aplikacji funkcji muszą być w tym samym języku.

Poszczególne funkcje w aplikacji funkcji są wdrażane razem i są skalowane razem. Wszystkie funkcje w tej samej aplikacji funkcji współdzielą zasoby na wystąpienie, co aplikacja funkcji skaluje.

Parametry połączenia, zmienne środowiskowe i inne ustawienia aplikacji są definiowane oddzielnie dla każdej aplikacji funkcji. Wszystkie dane, które muszą być współużytkowane między aplikacjami funkcji, powinny być przechowywane zewnętrznie w trwałym magazynie.

Rozpoczęcie pracy w witrynie Azure portal

  1. Aby rozpocząć, przejdź do Azure Portal i zaloguj się do konta platformy Azure. Na pasku wyszukiwania w górnej części portalu wprowadź nazwę aplikacji funkcji i wybierz ją z listy.

  2. W obszarze Ustawienia w okienku po lewej stronie wybierz pozycję Konfiguracja.

    Function app overview in the Azure portal

Możesz przejść do wszystkich elementów potrzebnych do zarządzania aplikacją funkcji na stronie przeglądu, w szczególności ustawień aplikacji i funkcji platformy.

Praca z ustawieniami aplikacji

Możesz utworzyć dowolną liczbę ustawień aplikacji wymaganych przez kod funkcji. Istnieją również wstępnie zdefiniowane ustawienia aplikacji używane przez funkcje. Aby dowiedzieć się więcej, zobacz dokumentację ustawień aplikacji dla Azure Functions.

Te ustawienia są przechowywane zaszyfrowane. Aby dowiedzieć się więcej, zobacz Zabezpieczenia ustawień aplikacji.

Ustawienia aplikacji można zarządzać za pomocą Azure Portal i przy użyciu interfejsu wiersza polecenia platformy Azure i Azure PowerShell. Możesz również zarządzać ustawieniami aplikacji z Visual Studio Code i z Visual Studio.

Aby znaleźć ustawienia aplikacji, zobacz Wprowadzenie w Azure Portal.

Karta Ustawienia aplikacji obsługuje ustawienia używane przez aplikację funkcji. Musisz wybrać pozycję Pokaż wartości , aby wyświetlić wartości w portalu. Aby dodać ustawienie w portalu, wybierz pozycję Nowe ustawienie aplikacji i dodaj nową parę klucz-wartość.

Function app settings in the Azure portal.

Korzystanie z ustawień aplikacji

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

Podczas lokalnego tworzenia aplikacji funkcji należy zachować lokalne kopie tych wartości w pliku projektu local.settings.json. Aby dowiedzieć się więcej, zobacz Plik ustawień lokalnych.

Typ planu hostingu

Podczas tworzenia aplikacji funkcji utworzysz również plan hostingu, w którym działa aplikacja. Plan może mieć co najmniej jedną aplikację funkcji. Funkcjonalność, skalowanie i cennik funkcji zależą od typu planu. Aby dowiedzieć się więcej, zobacz Azure Functions opcje hostingu.

Możesz określić typ planu używanego przez aplikację funkcji z poziomu Azure Portal lub przy użyciu interfejsu wiersza polecenia platformy Azure lub interfejsów API Azure PowerShell.

Następujące wartości wskazują typ planu:

Typ planu Portal Interfejs wiersza polecenia platformy Azure/program PowerShell
Zużycie Zużycie Dynamic
Premium ElasticPremium ElasticPremium
Dedykowane (App Service) Różnych Różnych

Aby określić typ planu używanego przez aplikację funkcji, zobacz App Service plan na karcie Przegląd aplikacji funkcji w Azure Portal. Aby wyświetlić warstwę cenową, wybierz nazwę planu App Service, a następnie wybierz pozycję Właściwości w okienku po lewej stronie.

View scaling plan in the portal

Planowanie migracji

Polecenia interfejsu wiersza polecenia platformy Azure umożliwiają migrowanie aplikacji funkcji między planem Zużycie a planem Premium w Windows. Określone polecenia zależą od kierunku migracji. Bezpośrednia migracja do planu dedykowanego (App Service) nie jest obecnie obsługiwana.

Ta migracja nie jest obsługiwana w systemie Linux.

Użycie do Premium

Wykonaj następującą procedurę, aby przeprowadzić migrację z planu Zużycie do planu Premium w Windows:

  1. Uruchom polecenie az functionapp plan create w następujący sposób, aby utworzyć nowy plan App Service (elastic Premium) w tym samym regionie i grupie zasobów co istniejąca aplikacja funkcji:

    az functionapp plan create --name <NEW_PREMIUM_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP> --location <REGION> --sku EP1
    
  2. Uruchom polecenie az functionapp update w następujący sposób, aby przeprowadzić migrację istniejącej aplikacji funkcji do nowego planu Premium:

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_PREMIUM_PLAN>
    
  3. Jeśli nie potrzebujesz już poprzedniego planu aplikacji funkcji Zużycie, usuń oryginalny plan aplikacji funkcji po pomyślnym przeprowadzeniu migracji do nowego. Uruchom polecenie az functionapp plan list w następujący sposób, aby uzyskać listę wszystkich planów zużycie w grupie zasobów:

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='Y'].{PlanName:name,Sites:numberOfSites}" -o table
    

    Możesz bezpiecznie usunąć plan z lokacjami zerowymi, z których jest migrowana.

  4. Uruchom polecenie az functionapp plan delete w następujący sposób, aby usunąć zmigrowany plan użycia.

    az functionapp plan delete --name <CONSUMPTION_PLAN_NAME> --resource-group <MY_RESOURCE_GROUP>
    

Premium do użycia

Wykonaj następującą procedurę, aby przeprowadzić migrację z planu Premium do planu Zużycie w Windows:

  1. Uruchom polecenie az functionapp plan create w następujący sposób, aby utworzyć nową aplikację funkcji (Zużycie) w tym samym regionie i grupie zasobów co istniejąca aplikacja funkcji. To polecenie tworzy również nowy plan zużycie, w którym działa aplikacja funkcji.

    az functionapp create --resource-group <MY_RESOURCE_GROUP> --name <NEW_CONSUMPTION_APP_NAME> --consumption-plan-location <REGION> --runtime dotnet --functions-version 3 --storage-account <STORAGE_NAME>
    
  2. Uruchom polecenie az functionapp update w następujący sposób, aby przeprowadzić migrację istniejącej aplikacji funkcji do nowego planu Zużycie.

    az functionapp update --name <MY_APP_NAME> --resource-group <MY_RESOURCE_GROUP> --plan <NEW_CONSUMPTION_PLAN> --force
    
  3. Uruchom polecenie az functionapp delete w następujący sposób, aby usunąć aplikację funkcji utworzoną w kroku 1, ponieważ potrzebny jest tylko plan, który został utworzony do uruchomienia istniejącej aplikacji funkcji.

    az functionapp delete --name <NEW_CONSUMPTION_APP_NAME> --resource-group <MY_RESOURCE_GROUP>
    
  4. Jeśli nie potrzebujesz już poprzedniego planu aplikacji funkcji Premium, usuń oryginalny plan aplikacji funkcji po potwierdzeniu pomyślnej migracji do nowego. Jeśli plan nie zostanie usunięty, nadal będą naliczane opłaty za plan Premium. Uruchom polecenie az functionapp plan list w następujący sposób, aby uzyskać listę wszystkich planów Premium w grupie zasobów.

    az functionapp plan list --resource-group <MY_RESOURCE_GROUP> --query "[?sku.family=='EP'].{PlanName:name,Sites:numberOfSites}" -o table
    
  5. Uruchom polecenie az functionapp plan delete w następujący sposób, aby usunąć plan Premium, z którego przeprowadzono migrację.

    az functionapp plan delete --name <PREMIUM_PLAN> --resource-group <MY_RESOURCE_GROUP>
    

Uzyskiwanie kluczy dostępu do funkcji

Funkcje wyzwalane przez protokół HTTP zazwyczaj mogą być wywoływane przy użyciu adresu URL w formacie: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Gdy autoryzacja funkcji jest ustawiona wartość inną niż anonymous, należy również podać klucz dostępu w żądaniu. Klucz dostępu można podać w adresie URL przy użyciu ?code= ciągu zapytania lub nagłówka żądania. Aby dowiedzieć się więcej, zobacz Klucze dostępu funkcji. Istnieje kilka sposobów uzyskiwania kluczy dostępu.

  1. Zaloguj się do Azure Portal, a następnie wyszukaj i wybierz pozycję Aplikacja funkcji.

  2. Wybierz funkcję, którą chcesz zweryfikować.

  3. W obszarze nawigacji po lewej stronie w obszarze Funkcje wybierz pozycję Klucze aplikacji.

    Spowoduje to zwrócenie kluczy hosta, których można użyć do uzyskania dostępu do dowolnej funkcji w aplikacji. Zwraca również klucz systemowy, który zapewnia każdemu użytkownikowi dostęp na poziomie administratora do wszystkich interfejsów API aplikacji funkcji.

Możesz również ćwiczyć najniższych uprawnień, używając klucza tylko dla określonego klucza funkcji, wybierając pozycję Klucze funkcji w obszarze Deweloper w funkcji wyzwalanej przez protokół HTTP.

Ręczne instalowanie rozszerzeń

Funkcje biblioteki klas języka C# mogą zawierać pakiety NuGet dla rozszerzeń powiązań bezpośrednio w projekcie biblioteki klas. W przypadku innych języków non-.NET i skryptu języka C# zalecanym sposobem instalowania rozszerzeń jest użycie pakietów rozszerzeń lub użycie Azure Functions Core Tools lokalnie. Jeśli nie możesz używać pakietów rozszerzeń i możesz pracować tylko w portalu, musisz użyć narzędzi zaawansowanych (Kudu), aby ręcznie utworzyć plik extensions.csproj bezpośrednio w witrynie. Najpierw usuń extensionBundle element z pliku host.json.

Ten sam proces działa w przypadku każdego innego pliku, który należy dodać do aplikacji.

Ważne

Jeśli to możliwe, nie należy edytować plików bezpośrednio w aplikacji funkcji na platformie Azure. Zalecamy lokalne pobieranie plików aplikacji przy użyciu narzędzi Core Tools do instalowania rozszerzeń i innych pakietów, weryfikowania zmian, a następnie ponownego publikowania aplikacji przy użyciu narzędzi Core Tools lub jednej z innych obsługiwanych metod wdrażania.

Edytor usługi Functions wbudowany w Azure Portal umożliwia aktualizowanie plików kodu funkcji i konfiguracji (function.json) bezpośrednio w portalu.

  1. Wybierz aplikację funkcji, a następnie w obszarze Funkcje wybierz pozycję Funkcje.
  2. Wybierz funkcję i wybierz pozycję Kod i test w obszarze Deweloper.
  3. Wybierz plik do edycji i wybierz pozycję Zapisz po zakończeniu.

Pliki w katalogu głównym aplikacji, takie jak function.proj lub extensions.csproj, muszą być tworzone i edytowane przy użyciu narzędzi zaawansowanych (Kudu).

  1. Wybierz aplikację funkcji, a następnie w obszarze Narzędzia programistyczne wybierz pozycję Narzędzia>zaawansowaneGo.

  2. W przypadku podwyższenia poziomu zaloguj się do witryny SCM przy użyciu poświadczeń platformy Azure.

  3. W menu Konsola debugowania wybierz pozycję CMD.

  4. Przejdź do .\site\wwwrootpozycji , wybierz przycisk plus (+) u góry, a następnie wybierz pozycję Nowy plik.

  5. Nadaj plikowi nazwę , na przykład extensions.csproj i naciśnij klawisz Enter.

  6. Wybierz przycisk edytuj obok nowego pliku, dodaj lub zaktualizuj kod w pliku, a następnie wybierz pozycję Zapisz.

  7. W przypadku pliku projektu, takiego jak extensions.csproj, uruchom następujące polecenie, aby ponownie skompilować projekt rozszerzeń:

    dotnet build extensions.csproj
    

Funkcje platformy

Aplikacje funkcji są uruchamiane i obsługiwane przez platformę Azure App Service. W związku z tym aplikacje funkcji mają dostęp do większości funkcji podstawowej platformy hostingu internetowego platformy Azure. Podczas pracy w Azure Portal w okienku po lewej stronie uzyskujesz dostęp do wielu funkcji platformy App Service, której można używać w aplikacjach funkcji.

Poniższa macierz wskazuje obsługę funkcji portalu przez plan hostingu i system operacyjny:

Cecha Plan Zużycie Plan Premium Dedykowany plan
Narzędzia zaawansowane (Kudu) Windows: ✔
Linux: X
Edytor App Service Windows: ✔
Linux: X
Windows: ✔
Linux: X
Windows: ✔
Linux: X
Tworzenie kopii zapasowych X X
Konsola Windows: wiersz polecenia
Linux: X
Windows: wiersz polecenia
Linux: SSH
Windows: wiersz polecenia
Linux: SSH

W pozostałej części tego artykułu skupiono się na następujących funkcjach w portalu, które są przydatne w aplikacjach funkcji:

Aby uzyskać więcej informacji na temat pracy z ustawieniami App Service, zobacz Konfigurowanie Azure App Service Ustawienia.

Edytor App Service

The App Service editor

Edytor App Service to zaawansowany edytor w portalu, którego można użyć do modyfikowania plików konfiguracji JSON i plików kodu. Wybranie tej opcji powoduje uruchomienie oddzielnej karty przeglądarki z edytorem podstawowym. Umożliwia to integrację z repozytorium Git, uruchamianie i debugowanie kodu oraz modyfikowanie ustawień aplikacji funkcji. Ten edytor udostępnia ulepszone środowisko programistyczne dla funkcji w porównaniu z wbudowanym edytorem funkcji.

Zalecamy rozważenie opracowywania funkcji na komputerze lokalnym. Podczas tworzenia aplikacji lokalnie i publikowania na platformie Azure pliki projektu są tylko do odczytu w portalu. Aby dowiedzieć się więcej, zobacz Kodowanie i testowanie Azure Functions lokalnie.

Konsola

Function app console

Konsola portalu jest idealnym narzędziem dewelopera, jeśli wolisz korzystać z aplikacji funkcji z poziomu wiersza polecenia. Typowe polecenia obejmują tworzenie katalogów i plików oraz nawigację, a także wykonywanie plików wsadowych i skryptów.

Podczas tworzenia aplikacji lokalnie zalecamy używanie narzędzi Azure Functions Core Tools i interfejsu wiersza polecenia platformy Azure.

Narzędzia zaawansowane (Kudu)

Configure Kudu

Zaawansowane narzędzia dla App Service (znane również jako Kudu) zapewniają dostęp do zaawansowanych funkcji administracyjnych aplikacji funkcji. W usłudze Kudu można zarządzać informacjami systemowymi, ustawieniami aplikacji, zmiennymi środowiskowymi, rozszerzeniami witryny, nagłówkami HTTP i zmiennymi serwera. Możesz również uruchomić narzędzie Kudu , przechodząc do punktu końcowego SCM dla aplikacji funkcji, na przykład https://<myfunctionapp>.scm.azurewebsites.net/

Centrum wdrażania

Gdy używasz rozwiązania kontroli źródła do tworzenia i utrzymywania kodu funkcji, Centrum wdrażania umożliwia kompilowanie i wdrażanie z poziomu kontroli źródła. Projekt jest kompilowany i wdrażany na platformie Azure podczas wprowadzania aktualizacji. Aby uzyskać więcej informacji, zobacz Technologie wdrażania w Azure Functions.

Współużytkowanie zasobów między źródłami

Aby zapobiec złośliwemu wykonaniu kodu na kliencie, nowoczesne przeglądarki blokują żądania od aplikacji internetowych do zasobów uruchomionych w oddzielnej domenie. Współużytkowanie zasobów między źródłami (CORS) umożliwia Access-Control-Allow-Origin nagłówkowi deklarowanie źródeł, które źródła mogą wywoływać punkty końcowe w aplikacji funkcji.

Portal

Po skonfigurowaniu listy Dozwolone źródła dla aplikacji Access-Control-Allow-Origin funkcji nagłówek jest automatycznie dodawany do wszystkich odpowiedzi z punktów końcowych HTTP w aplikacji funkcji.

Configure function app's CORS list

Gdy jest używany symbol wieloznaczny (*), wszystkie inne domeny są ignorowane.

az functionapp cors add Użyj polecenia , aby dodać domenę do listy dozwolonych źródeł. Poniższy przykład dodaje domenę contoso.com:

az functionapp cors add --name <FUNCTION_APP_NAME> \
--resource-group <RESOURCE_GROUP_NAME> \
--allowed-origins https://contoso.com

Użyj polecenia , az functionapp cors show aby wyświetlić listę bieżących dozwolonych źródeł.

Authentication

Configure authentication for a function app

Gdy funkcje używają wyzwalacza HTTP, można wymagać uwierzytelnienia wywołań. App Service obsługuje uwierzytelnianie Azure Active Directory i logowanie za pomocą dostawców społecznościowych, takich jak Facebook, Microsoft i Twitter. Aby uzyskać szczegółowe informacje na temat konfigurowania określonych dostawców uwierzytelniania, zobacz omówienie uwierzytelniania Azure App Service.

Następne kroki