Zarządzanie aplikacją funkcji

W usłudze 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.

ciągi Połączenie ion, zmienne środowiskowe i inne ustawienia aplikacji są definiowane oddzielnie dla każdej aplikacji funkcji. Wszystkie dane, które muszą być współużytkowane przez aplikacje funkcji, powinny być przechowywane zewnętrznie w utrwalonej magazynie.

Rozpocznij pracę w witrynie Azure Portal

Uwaga

Ze względu na ograniczenia dotyczące edytowania kodu funkcji w witrynie Azure Portal należy opracowywać funkcje lokalnie i publikować projekt kodu w aplikacji funkcji na platformie Azure. Aby uzyskać więcej informacji, zobacz Ograniczenia programistyczne w witrynie Azure Portal

  1. Aby rozpocząć, zaloguj się do witryny Azure Portal przy użyciu 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 do 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 usługi Azure Functions.

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

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

Aby znaleźć ustawienia aplikacji, zobacz Rozpoczynanie pracy w witrynie 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.

Ustawienia wdrażania usługi FTPS

Usługa Azure Functions obsługuje wdrażanie kodu projektu w aplikacji funkcji przy użyciu protokołu FTPS. Ponieważ ta metoda wdrażania wymaga synchronizacji wyzwalaczy, ta metoda nie jest zalecana. Aby bezpiecznie przesyłać pliki projektu, zawsze używaj protokołów FTPS, a nie FTP.

Poświadczenia wymagane do wdrożenia usługi FTPS można uzyskać przy użyciu jednej z następujących metod:

Poświadczenia publikowania FTPS można pobrać w witrynie Azure Portal, pobierając profil publikowania dla aplikacji funkcji.

Ważne

Profil publikowania zawiera ważne poświadczenia zabezpieczeń. Zawsze należy zabezpieczyć pobrany plik na komputerze lokalnym.

Aby pobrać profil publikowania aplikacji funkcji:

  1. Wybierz stronę Przegląd aplikacji funkcji, a następnie wybierz pozycję Pobierz profil publikowania.

    Download publish profile

  2. Zapisz i skopiuj zawartość pliku.

  1. W pliku znajdź publishProfile element z atrybutem publishMethod="FTP". W tym elemecie publishUrlatrybuty , userNamei userPWD zawierają docelowy adres URL i poświadczenia publikowania FTPS.

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. Funkcje, skalowanie i cennik funkcji zależą od typu planu. Aby dowiedzieć się więcej, zobacz Opcje hostingu usługi Azure Functions.

Typ planu używanego przez aplikację funkcji można określić w witrynie Azure Portal lub przy użyciu interfejsu wiersza polecenia platformy Azure lub interfejsów API programu 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óżne Różne

Aby określić typ planu używanego przez aplikację funkcji, zobacz Plan usługi App Service na karcie Przegląd aplikacji funkcji w witrynie Azure Portal. Aby wyświetlić warstwę cenową, wybierz nazwę planu usługi 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 witryny Azure Portal lub interfejsu wiersza polecenia platformy Azure umożliwiają migrowanie aplikacji funkcji między planem Zużycie i planem Premium w systemie Windows. Podczas migracji między planami należy pamiętać o następujących kwestiach:

  • Bezpośrednia migracja do dedykowanego planu (App Service) nie jest obecnie obsługiwana.
  • Migracja nie jest obsługiwana w systemie Linux.
  • Plan źródłowy i plan docelowy muszą znajdować się w tej samej grupie zasobów i regionie geograficznym. Aby uzyskać więcej informacji, zobacz Przenoszenie aplikacji do innego planu usługi App Service.
  • Określone polecenia interfejsu wiersza polecenia zależą od kierunku migracji.
  • Przestój w wykonaniach funkcji występuje, gdy aplikacja funkcji jest migrowana między planami.
  • Stan i inna zawartość specyficzna dla aplikacji jest utrzymywana, ponieważ ten sam udział usługi Azure Files jest używany przez aplikację zarówno przed migracją, jak i po migracji.

Migracja w portalu

W witrynie Azure Portal przejdź do aplikacji Zużycie lub Plan Premium i wybierz pozycję Zmień plan usługi App Service w obszarze Plan usługi App Service. Wybierz inny typ planu, utwórz nowy plan usługi App Service nowego typu i wybierz przycisk OK. Aby uzyskać więcej informacji, zobacz Przenoszenie aplikacji do innego planu usługi App Service.

Zużycie do warstwy Premium

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

  1. Uruchom polecenie az functionapp plan create w następujący sposób, aby utworzyć nowy plan usługi 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 Consumption, 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 zerowymi lokacjami, czyli z poziomu zmigrowanych lokacji.

  4. Uruchom polecenie az functionapp plan delete w następujący sposób, aby usunąć plan zużycie, z którego przeprowadzono migrację.

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

Premium do użycia

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

  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 zmigrować istniejącą aplikację 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 pomyślnym przeprowadzeniu migracji do nowego. Dopóki plan Premium nie zostanie usunięty, opłaty będą nadal naliczane. 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ąć zmigrowany plan Premium.

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

Uzyskiwanie kluczy dostępu do funkcji

Funkcje wyzwalane przez protokół HTTP mogą być zwykle wywoływane przy użyciu adresu URL w formacie: https://<APP_NAME>.azurewebsites.net/api/<FUNCTION_NAME>. Gdy autoryzacja funkcji jest ustawiona na wartość inną niż anonymous, musisz 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 do funkcji. Istnieje kilka sposobów uzyskiwania kluczy dostępu.

  1. Zaloguj się do witryny 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óre mogą służyć do uzyskiwania 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ć najmniejsze uprawnienia, używając klucza tylko dla określonego klucza funkcji, wybierając pozycję Klucze funkcji w obszarze Deweloper w funkcji wyzwalanej przez protokół HTTP.

Ograniczenia programistyczne w witrynie Azure Portal

Podczas opracowywania funkcji w witrynie Azure Portal należy wziąć pod uwagę następujące ograniczenia:

  • Edytowanie w portalu jest obsługiwane tylko w przypadku funkcji JavaScript, PowerShell, Python i C# Script.
  • Edytowanie w portalu języka Python jest obsługiwane tylko w przypadku uruchamiania w planie Zużycie.
  • Edytowanie w portalu jest obecnie obsługiwane tylko w przypadku funkcji, które zostały utworzone lub ostatnio zmodyfikowane w portalu.
  • Podczas wdrażania kodu w aplikacji funkcji spoza portalu nie można już edytować żadnego kodu dla tej aplikacji funkcji w portalu. W tym przypadku po prostu kontynuuj korzystanie z lokalnego programowania.
  • W przypadku skompilowanych funkcji języka C#, funkcji Języka Java i niektórych funkcji języka Python można utworzyć aplikację funkcji i powiązane zasoby w portalu. Należy jednak utworzyć projekt kodu funkcji lokalnie, a następnie opublikować go na platformie Azure.

Jeśli to możliwe, należy opracowywać funkcje lokalnie i publikować projekt kodu w aplikacji funkcji na platformie Azure. Aby uzyskać więcej informacji, zobacz Kod i testowanie usługi Azure Functions lokalnie.

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# należy użyć pakietów rozszerzeń. Jeśli musisz ręcznie zainstalować rozszerzenia, możesz to zrobić przy użyciu narzędzi Azure Functions Core Tools lokalnie. Jeśli nie możesz używać pakietów rozszerzeń i nie 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 witrynę Azure Portal umożliwia aktualizowanie kodu funkcji i plików konfiguracji 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ą zostać utworzone 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>zaawansowane Przejdź.

  2. Jeśli zostanie wyświetlony monit, 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 działają w systemie i są obsługiwane przez platformę usługi aplikacja systemu Azure 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 witrynie Azure Portal lewe okienko to miejsce, w którym uzyskujesz dostęp do wielu funkcji platformy App Service, których można używać w aplikacjach funkcji.

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

Funkcja Plan Zużycie Plan Premium Dedykowany plan
Narzędzia zaawansowane (Kudu) Windows: ✔
Linux: X
Edytor usługi 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 sposobu pracy z ustawieniami usługi App Service, zobacz Konfigurowanie Ustawienia usługi aplikacja systemu Azure Service.

Edytor usługi App Service

The App Service editor

Edytor usługi 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 lokalnego i publikowania na platformie Azure pliki projektu są tylko do odczytu w portalu. Aby dowiedzieć się więcej, zobacz Kod i testowanie usługi Azure Functions lokalnie.

Konsola

Function app console

Konsola w portalu to idealne narzędzie deweloperskie, 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 opracowywania lokalnego 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 usługi App Service (znanej 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 obsługi kodu funkcji, Centrum wdrażania umożliwia kompilowanie i wdrażanie z 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 usłudze Azure Functions.

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

Aby zapobiec złośliwemu wykonywaniu kodu na kliencie, nowoczesne przeglądarki blokują żądania z 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

Symbol wieloznaczny (*) jest ignorowany, jeśli istnieje inny wpis domeny.

Użyj polecenia , az functionapp cors add 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ł.

Uwierzytelnianie

Configure authentication for a function app

Gdy funkcje używają wyzwalacza HTTP, można wymagać, aby wywołania najpierw mogły zostać uwierzytelnione. Usługa App Service obsługuje uwierzytelnianie i logowanie firmy Microsoft przy użyciu 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 usługi aplikacja systemu Azure Service.

Następne kroki