Wdrożenie oparte na pakietach dla Azure Functions

Ten artykuł opisuje, jak stworzyć gotowy do uruchomienia pakiet wdrożenia .zip, wdrożyć go na Azure oraz skonfigurować aplikację funkcjonalną tak, aby działała bezpośrednio z tego pakietu. Możesz wdrażać za pomocą narzędzi Azure Functions Core, Azure CLI lub API REST do wdrożenia.

Wdrażanie na pakietach jest domyślnym dla aplikacji funkcyjnych działających na podstawie kodu. Technologia wdrożenia i konfiguracja pakietu zależą od planu hostingowego. Wybierz swój plan hostingowy na górze tego artykułu.

Azure Functions oferuje pełen zakres opcji ciągłego wdrażania i integracji, które oferuje Azure App Service. Aby uzyskać więcej informacji, zobacz Ciągłe wdrażanie dla usługi Azure Functions.

Wdrażanie pakietu według planu hostingowego

Poniższa tabela podsumowuje proces wdrażania oraz konfigurację pakietów dla każdego planu hostingowego:

Plan hostingu Proces wdrażania Konfiguracja pakietu
Elastyczny Plan Konsumpcji Wdrażanie zarządzanych pakietów Domyślnie uruchamia się z wdrożonego pakietu. Nie ustawiaj wartości WEBSITE_RUN_FROM_PACKAGE.
Plan Premium Wdrożenie ZIP Ustaw WEBSITE_RUN_FROM_PACKAGE na 1, aby uruchamiać z wdrożonego pakietu.
Plan dedykowany (App Service) Wdrożenie ZIP Ustaw WEBSITE_RUN_FROM_PACKAGE na 1, aby uruchamiać z wdrożonego pakietu.
Plan konsumpcji na Windows Wdrożenie ZIP Ustaw WEBSITE_RUN_FROM_PACKAGE na 1, aby uruchamiać z wdrożonego pakietu.
Plan konsumpcji na Linuksie Zdalne kompilowanie lub zewnętrzny adres URL pakietu Użyj zewnętrznego adresu URL dla pakietu zbudowanego lokalnie.
Azure Container Apps Wdrażanie obrazów kontenera Wdrażanie kodu opartego na pakietach nie ma zastosowania.

Note

Treść zawarta w tym artykule nie jest istotna dla obecnie wybranego planu hostingu. Aby wybrać inny plan, użyj selektora na górze tego artykułu. Aby porównać wszystkie plany hostingu, zobacz Opcje hostingu usługi Azure Functions.

Aplikacje funkcji hostowane w usłudze Azure Container Apps są wdrażane jako obrazy kontenerów, a nie pakiety .zip. Aby stworzyć i wdrożyć aplikację funkcyjną opartą na obrazach, zobacz: Stwórz aplikację funkcyjną w Azure Container Apps z użyciem kodu.

Stwórz pakiet wdrożeniowy

W większości przypadków nie musisz samodzielnie tworzyć pakietu wdrożenia. Te metody wdrożenia oparte na narzędziach tworzą pakiet jako część procesu publikowania:

Dla Azure Pipelines wdrożenia kroki budowy pipeline tworzą archiwum .zip i przekazują je do zadania wdrożeniowegoAzureFunctionApp.

Gdy musisz pracować bezpośrednio z gotowym do uruchomienia pakietem wdrożeniowym, stwórz go za pomocą func pack. Na przykład, utworz pakiet samodzielnie podczas wdrożenia, używając zewnętrznego adresu URL pakietu.

Możesz też ręcznie utworzyć archiwum .zip. Tworząc archiwum ręcznie, należy przestrzegać tych wymagań dotyczących struktury pakietu.

Wymagania dotyczące pakietów wdrożenia

Wdrożone archiwum zip musi zawierać wszystkie pliki potrzebne do uruchomienia aplikacji funkcji. Możesz ręcznie utworzyć archiwum zip z zawartości folderu projektu Funkcji przy użyciu wbudowanych funkcji kompresji .zip lub narzędzi innych niż Microsoft.

Archiwum musi zawierać plik host.json w katalogu głównym wyodrębnionego folderu. Wybrany stos języka dla aplikacji funkcji tworzy inne wymagania:

Ważne

W przypadku języków, które wygenerowały skompilowane dane wyjściowe do wdrożenia, upewnij się, że skompresowano zawartość folderu wyjściowego, który planujesz opublikować, a nie cały folder projektu. Gdy funkcja wyodrębnia zawartość archiwum zip, host.json plik musi istnieć w katalogu głównym pakietu.

Proces wdrażania zip rozpakowuje pliki i foldery archiwum .zip w katalogu wwwroot . Jeśli podczas tworzenia archiwum dołączysz katalog nadrzędny, system nie znajduje plików, które powinien znaleźć w wwwroot.

Wdrożenie pakietu

Flex Consumption wykorzystuje wdrażanie pakietów do przechowywania gotowego do uruchomienia pakietu w kontenerze pamięci wdrożeniowej aplikacji. Aplikacja działa bezpośrednio z tego pakietu. Nie ustawiaj WEBSITE_RUN_FROM_PACKAGE ustawień aplikacji.

Wdroż pakiet, korzystając z Core Tools, Visual Studio Code lub Azure CLI. Narzędzia te automatycznie wybierają właściwe zachowanie wdrażania pakietów dla aplikacji Flex Consumption.

Narzędzia te wykonują wdrożenie push, wysyłając pakiet do punktu końcowego aplikacji. W przypadku Flex Consumption ci klienci wysyłają pakiet do /api/publish na hoście scm aplikacji. Gdy punkt wdrożenia jest dostępny tylko przez prywatny punkt końcowy, komputer, runner lub agent wykonujący wdrożenie musi mieć łączność sieciową oraz rozdzielanie DNS dla prywatnego endpointu wdrożenia. Usługa wdrożenia przechowuje przetworzony pakiet w skonfigurowanym kontenerze wdrożenia; bezpośrednie przesłanie pakietu do tego kontenera nie powoduje jego wdrożenia. Aby wdrożyć bez wysyłania z klienta inicjującego do punktu końcowego wdrożenia, użyj szablonu wdrożenia Bicep lub ARM z adresem pakietu, do którego usługa wdrożeniowa ma dostęp.

Wdrażanie przy użyciu interfejsu wiersza polecenia platformy Azure

Użyj az functionapp deployment source config-zip polecenia do wdrożenia pakietu:

az functionapp deployment source config-zip --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> --src <ZIP_FILE_PATH>

Dodaj --build-remote true, gdy projekt źródłowy wymaga zdalnego kompilowania. Nie żądaj zdalnego kompilowania pakietu, który func pack został już zbudowany do postaci gotowej do uruchomienia, na przykład pakietu wdrożeniowego Go.

Aby skonfigurować pamięć wdrożenia lub odzyskać wcześniejsze wdrożenie, zobacz Tworzenie i zarządzanie aplikacjami funkcjonalnymi w planie Flex Consumption.

Wdrożenie pakietu

Aplikacje w planach Premium, Dedykowanym i Zużyciowym korzystają z interfejsu API wdrażania ZIP. Usługa wdrożenia wykonuje następujące działania:

  • Usuń pliki, które pozostały z wcześniejszych wdrożeń.
  • Uruchamiaj skrypty wdrożeniowe i inne modyfikacje wdrożenia.
  • Zapisuj logi wdrożeń.
  • Funkcja synchronizacji się uruchamia.

Ważne

W wdrożeniu zip pliki z poprzedniego wdrożenia są usuwane lub aktualizowane, gdy były częścią tego wdrożenia. Proces wdrożenia zachowuje inne pliki i katalogi w aplikacji Function, które nie były częścią poprzedniego wdrożenia. Szczegółowe informacje o implementacji można znaleźć w dokumentacji wdrażania ZIP.

Wdrażanie przy użyciu interfejsu wiersza polecenia platformy Azure

Użyj Azure CLI, aby wywołać wdrożenie push. Aby wypchnąć plik .zip do aplikacji funkcji, użyj polecenia az functionapp deployment source config-zip. Aby użyć tego polecenia, musisz użyć interfejsu wiersza polecenia platformy Azure w wersji 2.0.21 lub nowszej. Aby zobaczyć, której wersji Azure CLI używasz, skorzystaj z polecenia az --version.

W poniższym poleceniu zastąp <zip_file_path> symbol zastępczy ścieżką do lokalizacji pliku .zip. Również zastąp <app_name> unikatową nazwą swojej aplikacji funkcji i zastąp <resource_group> nazwą swojej grupy zasobów.

az functionapp deployment source config-zip -g <resource_group> -n \
<app_name> --src <zip_file_path>

To polecenie wdraża pliki projektowe z pliku .zip do aplikacji Function w Azure i restartuje aplikację.

Kiedy używasz interfejsu wiersza polecenia platformy Azure na swoim lokalnym komputerze, <zip_file_path> jest ścieżką do pliku .zip na komputerze. Możesz również uruchomić interfejs wiersza polecenia platformy Azure w usłudze Azure Cloud Shell. W przypadku korzystania z usługi Cloud Shell należy najpierw przekazać plik wdrożenia .zip do konta usługi Azure Files skojarzonego z usługą Cloud Shell. W takim przypadku lokalizacja magazynu używana przez konto usługi Cloud Shell to <zip_file_path>. Aby uzyskać więcej informacji, zobacz Utrwalanie plików w usłudze Azure Cloud Shell.

Wdrażanie pliku ZIP przy użyciu interfejsów API REST

Możesz użyć interfejsów API REST usługi wdrażania, aby wdrożyć plik .zip w swojej aplikacji na platformie Azure. Aby wdrożyć, wyślij żądanie POST do https://<app_name>.scm.azurewebsites.net/api/zipdeploy. Żądanie POST musi zawierać plik .zip w treści wiadomości. Poświadczenia wdrażania dla aplikacji są podawane w żądaniu za pomocą podstawowego uwierzytelniania HTTP. Aby uzyskać więcej informacji, zobacz dokumentację wdrażania push .zip.

Do uwierzytelniania HTTP BASIC potrzebne są poświadczenia wdrożenia usługi App Service. Aby zobaczyć, jak ustawić poświadczenia wdrożenia, zobacz Ustawianie i resetowanie poświadczeń na poziomie użytkownika.

Za pomocą biblioteki cURL

W poniższym przykładzie użyto narzędzia cURL do wdrożenia pliku .zip. Zastąp zastępniki <deployment_user>, <zip_file_path> i <app_name>. Po wyświetleniu monitu przez cURL, wpisz hasło.

curl -X POST -u <deployment_user> --data-binary "@<zip_file_path>" https://<app_name>.scm.azurewebsites.net/api/zipdeploy

To żądanie wyzwala wdrożenie wypychane z przekazanego pliku .zip. Bieżące i wcześniejsze wdrożenia można przejrzeć przy użyciu punktu końcowego https://<app_name>.scm.azurewebsites.net/api/deployments, jak pokazano w poniższym przykładzie cURL. Ponownie zastąp <app_name> nazwą aplikacji i <deployment_user> nazwą użytkownika poświadczeń wdrożenia.

curl -u <deployment_user> https://<app_name>.scm.azurewebsites.net/api/deployments

Wdrożenie pliku zip asynchronicznego

Podczas wdrażania synchronicznego mogą wystąpić błędy związane z przekroczeniami limitu czasu połączenia. Dodaj ?isAsync=true do adresu URL, aby wdrożyć asynchronicznie. Natychmiast po przekazaniu pliku zip otrzymasz odpowiedź z nagłówkiem Location wskazującym adres URL stanu wdrożenia z możliwością sprawdzenia. Podczas sondowania adresu URL podanego w nagłówku Location otrzymasz odpowiedź HTTP 202 (Zaakceptowana), gdy proces jest w toku, a odpowiedź HTTP 200 (OK) po rozwinięciu archiwum i pomyślnym zakończeniu wdrażania.

Uwierzytelnianie Microsoft Entra

Alternatywą dla użycia uwierzytelniania HTTP BASIC we wdrożeniu zip jest zastosowanie tożsamości Microsoft Entra. Jeśli uwierzytelnianie HTTP BASIC jest wyłączone dla witryny SCM, tożsamość firmy Microsoft Entra może być potrzebna.

Wymagany jest prawidłowy token dostępu firmy Microsoft dla użytkownika lub jednostki usługi wykonującej wdrożenie. Token dostępu można pobrać przy użyciu polecenia Azure CLI az account get-access-token. Token dostępu jest używany w nagłówku autoryzacji w żądaniu HTTP POST.

curl -X POST \
    --data-binary "@<zip_file_path>" \
    -H "Authorization: Bearer <access_token>" \
    "https://<app_name>.scm.azurewebsites.net/api/zipdeploy"

Przy użyciu programu PowerShell

W poniższym przykładzie użyto polecenia Publish-AzWebapp do przesłania pliku .zip. Zastąp zastępniki <group-name>, <app-name> i <zip-file-path>.

Publish-AzWebapp -ResourceGroupName <group-name> -Name <app-name> -ArchivePath <zip-file-path>

To żądanie wyzwala wdrożenie wypychane z przekazanego pliku .zip.

Aby przejrzeć bieżące i wcześniejsze wdrożenia, uruchom następujące polecenia. Ponownie zastąp <deployment-user>symbole zastępcze , <deployment-password>i <app-name> .

$username = "<deployment-user>"
$password = "<deployment-password>"
$apiUrl = "https://<app-name>.scm.azurewebsites.net/api/deployments"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username, $password)))
$userAgent = "powershell/1.0"
Invoke-RestMethod -Uri $apiUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -UserAgent $userAgent -Method GET

Wdrażaj za pomocą Bicep lub szablonu Azure Resource Manager

Możesz wdrożyć pakiet do aplikacji Flex Consumption jako część wdrożenia szablonu Bicep lub Azure Resource Manager (ARM). Zdefiniuj zasób Microsoft.Web/sites/extensions, który korzysta z rozszerzenia /onedeploy i określa zdalny adres URL pakietu we właściwości packageUri.

Musisz nazwać plik pakietu released-package.zip. Host usługi Functions musi mieć możliwość uzyskania dostępu zarówno do zdalnego adresu URL pakietu, jak i do kontenera magazynu wdrożenia. Bezpośrednie przesłanie pakietu do kontenera wdrożenia go nie uruchamia.

Przykłady szablonów Bicep i ARM znajdziesz w artykule Definiuj pakiet wdrożenia Flex Consumption.

Wdrażaj za pomocą szablonu Azure Resource Manager

Możesz użyć szablonu Azure Resource Manager (ARM) rozszerzenia ZipDeploy, aby przesłać plik .zip do aplikacji funkcyjnej.

Przykładowy szablon ZipDeploy ARM

Ten szablon zawiera zarówno slot produkcyjny, jak i testowy, a wdraża się w jedno lub drugie środowisko. Zazwyczaj używasz tego szablonu do wdrożenia w slocie przejściowym, a następnie zamieniasz sloty, aby uruchomić nowy pakiet ZIP w slocie produkcyjnym.

{
  "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
  "contentVersion": "1.0.0.0",
  "parameters": {
    "appServiceName": {
      "type": "string"
    },
    "deployToProduction": {
      "type": "bool",
      "defaultValue": false
    },
    "slot": {
      "type": "string",
      "defaultValue": "staging"
    },
    "packageUri": {
      "type": "secureString"
    }
  },
  "resources": [
    {
      "condition": "[parameters('deployToProduction')]",
      "type": "Microsoft.Web/sites/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/ZipDeploy', parameters('appServiceName'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    },
    {
      "condition": "[not(parameters('deployToProduction'))]",
      "type": "Microsoft.Web/sites/slots/extensions",
      "apiVersion": "2021-02-01",
      "name": "[format('{0}/{1}/ZipDeploy', parameters('appServiceName'), parameters('slot'))]",
      "properties": {
        "packageUri": "[parameters('packageUri')]",
        "appOffline": true
      }
    }
  ]
}

W przypadku wdrożenia początkowego wdrażasz bezpośrednio do slotu produkcyjnego. Aby uzyskać więcej informacji, zobacz Wdrożenia slotów.

Uruchamianie funkcji z pakietu wdrożeniowego

Uruchamianie bezpośrednio z pakietu wdrożenia pomija kopiowanie plików do katalogu wwwroot . Zamiast tego środowisko uruchomieniowe Functions montuje pakiet jako katalog wwwroot tylko do odczytu. Takie podejście:

  • Zmniejsza to problemy z blokowaniem kopii plików.
  • Sprawdza pliki, które są uruchomione w aplikacji.
  • Poprawia wydajność wdrożeń Azure Resource Manager.
  • Może skrócić czas zimnego startu, szczególnie dla aplikacji JavaScript z dużymi drzewami pakietów npm.

Konfiguracja pakietu Flex Consumption

Aplikacje Flex Consumption działają domyślnie z pakietu. Nie dodawaj WEBSITE_RUN_FROM_PACKAGE ustawień aplikacji. Ustawienia wdrożenia, w tym kontener pamięci i jego metoda uwierzytelniania, są właściwościami zasobu aplikacji funkcyjnej. Aby uzyskać więcej informacji, zobacz Opcje wdrażania.

Konfiguracja pakietów Premium i dedykowanych

Ustaw WEBSITE_RUN_FROM_PACKAGE na 1, aby uruchamiać bezpośrednio z lokalnie wdrożonego pakietu. Runtime przechowuje pakiet w folderze c:\home\data\SitePackages na Windows lub /home/data/SitePackages w folderze na Linuksie.

Konfiguracja pakietu konsumpcyjnego

Wartość obsługiwana WEBSITE_RUN_FROM_PACKAGE zależy od systemu operacyjnego:

System operacyjny Wartość Behavior
Windows 1 Aplikacja działa z pakietu w folderze c:\home\data\SitePackages .
Linux <URL> Aplikacja działa z pakietu pod podanym adresem URL. Użyj prywatnego kontenera Azure Blob Storage, do którego dostęp należy uzyskać za pomocą tożsamości zarządzanej.

Ważne

Aplikacje funkcjonalne, które nadal uruchamiają wycofane z użytku środowisko uruchomieniowe w wersji 3 w systemie Linux w planie konsumpcyjnym, przestaną działać po 30 września 2026 r. Aby uniknąć przerw w działaniu usługi, przeprowadź migrację aplikacji do środowiska uruchomieniowego w wersji 4.

Opcja hostowania aplikacji funkcji w systemie Linux w planie konsumpcyjnym zostanie wycofana 30 września 2028 r. Plan Konsumpcji systemu Linux nie będzie otrzymywał nowych funkcji ani wersji językowych. Aplikacje działające w systemie Windows w planie Zużycie nie są obecnie dotknięte. Przeprowadź migrację aplikacji do planu Flex Consumption przed datą wycofania.

Rozważania dotyczące wdrażania pakietów

Miej na uwadze te wymagania i ograniczenia, wdrażając i uruchamiając aplikację funkcjonalną z pakietu:

  • Pakiet musi używać .zip formatu. Formaty tar i gzip nie są obsługiwane.
  • Maksymalny rozmiar pakietu to 1 GB. Wdrożenie wykorzystuje tymczasową pamięć podczas rozpakowywania plików projektowych, więc aplikacja musi mieć również wystarczającą ilość tymczasowej pamięci. Plan Zużycie udostępnia 500 MB tymczasowej przestrzeni dyskowej w ramach planu.
  • Gdy uruchamiasz z pakietu, pliki w wwwroot są tylko do odczytu, również w portalu Azure.
  • Nie możesz używać lokalnej pamięci podręcznej podczas uruchamiania z pakietu.
  • Nie ustawiaj WEBSITE_RUN_FROM_PACKAGE , gdy prosisz o zdalną budowę. Zamiast tego ustaw SCM_DO_BUILD_DURING_DEPLOYMENT=true. Na Linuksie również ustaw ENABLE_ORYX_BUILD=true.
  • WEBSITE_RUN_FROM_PACKAGE nie działa z MSDeploy. Zamiast tego użyj wdrażania z pliku ZIP.

Dodaj ustawienie WEBSITE_RUN_FROM_PACKAGE

Istnieje kilka sposobów dodawania, aktualizowania i usuwania ustawień aplikacji funkcji:

Zmiany ustawień aplikacji funkcji wymagają ponownego uruchomienia aplikacji funkcji.

Uruchom z pakietu przesłanego przez zip deployment

Ustaw WEBSITE_RUN_FROM_PACKAGE na 1 przed wdrożeniem pakietu. API wdrażania zip kopiuje pakiet do folderu SitePackages zamiast rozpakowywać jego zawartość do wwwroot. Wdrożenie tworzy także plik packagename.txt , który identyfikuje pakiet do zamontowania. Po ponownym uruchomieniu aplikacji pakiet jest montowany jako katalog wwwroot tylko do odczytu. Aplikacje Linux Consumption nie obsługują tej wartości ustawienia i muszą działać z zewnętrznego adresu URL pakietu.

Po ponownym uruchomieniu aplikacji bieżąco wykonywane funkcje się kończą. Aby uzyskać informacje o pisaniu funkcji, które bezpiecznie obsługują ponowne uruchomienia, zobacz Jak pisać funkcje bezstanowe.

Uruchom z zewnętrznego adresu URL pakietu

Używaj zewnętrznego adresu URL, gdy musisz samodzielnie zarządzać przechowywaniem pakietów. Potrzebujesz tej opcji, aby uruchomić lokalnie zbudowany pakiet w aplikacji Linux Consumption. Nie jest wspierany w Flex Consumption.

Note

Nie można zmienić istniejącej aplikacji funkcji, która używa WEBSITE_RUN_FROM_PACKAGE=1, tak aby była uruchamiana z zewnętrznego adresu URL pakietu. Aby użyć zewnętrznego adresu URL pakietu, stwórz nową aplikację funkcyjną i ustaw WEBSITE_RUN_FROM_PACKAGE ją na adres URL pakietu.

Użyj prywatnego kontenera Blob Storage i przyznaj zarządzaną tożsamość aplikacji funkcjonalnej do pakietu. Używaj zarządzanej tożsamości, ponieważ tokeny SAS wygasają i wymagają konserwacji. Za każdym razem, gdy publikujesz zaktualizowany pakiet, musisz ręcznie synchronizować wyzwalacze. Jeśli zaktualizujesz pakiet na miejscu bez zmiany adresu URL, zrestartuj aplikację Function przed synchronizacją wyzwalaczy.

Ręcznie wgraj pakiet do Azure Blob Storage

  1. Stwórz pakiet wdrożenia .zip.

  2. W portalu Azure przejdź do swojego konta przechowywania.

  3. W sekcji Data storage wybierz Kontenery, a następnie utwórz lub wybierz prywatny kontener.

  4. Przeładuj paczkę do kontenera.

  5. Wybierz przesłany blob i skopiuj jego URL. Jeśli nie używasz zarządzanej tożsamości, wygeneruj zamiast tego adres URL SAS.

  6. W aplikacji funkcjonalnej rozwiń Ustawienia, wybierz zmienne środowiskowe, a następnie Dodaj na zakładce ustawień aplikacji .

  7. Dodaj ustawienie o nazwie WEBSITE_RUN_FROM_PACKAGE i ustaw jako jego wartość adres URL pakietu.

  8. Zastosuj zmiany, zrestartuj aplikację i ręcznie zsynchronizuj wyzwalacze.

Pobierz pakiet z usługi Azure Blob Storage przy użyciu tożsamości zarządzanej

Usługę Azure Blob Storage można skonfigurować tak, aby autoryzować żądania za pomocą identyfikatora Entra firmy Microsoft. Ta konfiguracja oznacza, że zamiast generować klucz SAS z datą wygaśnięcia, można polegać na tożsamości zarządzanej aplikacji.

Domyślnie jest używana tożsamość przypisana przez system aplikacji. Jeśli chcesz określić tożsamość przypisaną przez użytkownika, możesz ustawić ustawienie aplikacji WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID na identyfikator tej tożsamości. Ustawienie może również zaakceptować SystemAssigned jako wartość, która jest równoważna pomijaniu ustawienia.

Aby umożliwić pobranie pakietu przy użyciu tożsamości:

  1. Upewnij się, że obiekt blob jest skonfigurowany pod kątem dostępu prywatnego.

  2. Nadaj tożsamości rolę Czytelnik danych obiektu blob usługi Storage z zakresem obejmującym obiekt blob pakietu. Aby uzyskać szczegółowe informacje na temat tworzenia przypisania roli, zobacz Przypisanie roli Azure w celu uzyskania dostępu do danych obiektów blob.

  3. WEBSITE_RUN_FROM_PACKAGE Ustaw ustawienie aplikacji na adres URL obiektu blob pakietu. Ten adres URL jest zwykle w postaci https://<storage-account-name>.blob.core.windows.net/<container-name>/<path-to-package> lub podobnej.

  4. Jeśli chcesz określić tożsamość przypisaną przez użytkownika, możesz ustawić ustawienie aplikacji WEBSITE_RUN_FROM_PACKAGE_BLOB_MI_RESOURCE_ID na identyfikator tej tożsamości. Ustawienie może również akceptować wartość SystemAssigned jako wartość, chociaż jest to takie samo, jak całkowite pominięcie ustawienia. Identyfikator zasobu to standardowa reprezentacja zasobu na platformie Azure. W przypadku tożsamości zarządzanej przypisanej przez użytkownika będzie to /subscriptions/subid/resourcegroups/rg-name/providers/Microsoft.ManagedIdentity/userAssignedIdentities/identity-name. Identyfikator zasobu tożsamości zarządzanej przypisanej przez użytkownika można uzyskać w Ustawienia>Właściwościach>tożsamości zarządzanej przypisanej przez użytkownika.

Dostosowywanie wdrożenia

W procesie wdrażania przyjęto założenie, że wypchnięty plik .zip zawiera aplikację gotową do uruchomienia. Domyślnie nie są uruchamiane żadne dostosowania. Aby włączyć te same procesy kompilacji, które uzyskujesz z ciągłą integracją, dodaj następujące elementy do ustawień aplikacji:

SCM_DO_BUILD_DURING_DEPLOYMENT=true

Jeśli używasz wdrażania za pomocą .zip, to ustawienie jest domyślnie wyłączone. Domyślną wartością dla wdrożeń ciągłej integracji jest true. Gdy ustawisz wartość na true, ustawienia związane z wdrożeniem są używane podczas wdrażania. Te ustawienia można skonfigurować jako ustawienia aplikacji lub w pliku konfiguracji wdrożenia znajdującym się w katalogu głównym pliku .zip. Aby uzyskać więcej informacji, zobacz Ustawienia związane z repozytorium i wdrażaniem w dokumentacji wdrożenia.

Pobierz pliki aplikacji funkcjonalnej

Jeśli potrzebujesz dokładnie takiego pakietu, jaki obecnie działa w Twojej aplikacji, pobierz go z kontenera Blob Storage skonfigurowanego pod wdrożenia aplikacji:

  1. Na stronie aplikacji funkcjonalnej w portalu Azure rozwiń Ustawienia, a następnie wybierz Ustawienia wdrożenia.

  2. W sekcji lokalizacja pakietu aplikacji zwróć uwagę na konto pamięci oraz kontener używany do wdrożeń.

  3. Przejdź do tego konta pamięciowego, rozwiń pamięć danych, a następnie wybierz Kontenery.

  4. Wybierz kontener wdrożenia, wybierz aktualny pakiet, a następnie wybierz Pobierz.

Pobrany pakiet zawiera wbudowaną zawartość aplikacji, którą wdrożyłeś, a która może różnić się od Twojego projektu źródłowego. Każde wdrożenie nadpisuje aktualny pakiet, a kontener wdrożenia nie udostępnia historii wdrożeń.

W przypadku aplikacji wdrażanych z użyciem CI/CD przechowuj projekt źródłowy w systemie kontroli wersji i zachowuj gotowe do uruchomienia artefakty kompilacji zgodnie z zasadami przechowywania wydań. Użyj zachowanego artefaktu, aby ponownie wdrożyć określone wydanie. Używaj pakietu w kontenerze wdrożenia, gdy potrzebujesz dokładnie tego samego pakietu, na którym aplikacja obecnie działa lub gdy oryginalny artefakt nie jest już dostępny.

Pobierz pliki aplikacji funkcjonalnej

Jeśli funkcje zostały utworzone przy użyciu edytora w witrynie Azure Portal, możesz pobrać istniejący projekt aplikacji funkcji jako plik .zip w jeden z następujących sposobów:

  1. Zaloguj się do witryny Azure Portal, a następnie przejdź do aplikacji funkcji.

  2. Na karcie Przegląd wybierz pozycję Pobierz zawartość aplikacji. Wybierz opcje pobierania, a następnie wybierz pozycję Pobierz.

Zrzut ekranu pokazuje stronę portalu Azure do pobrania projektu aplikacji funkcji.

Pobrany plik .zip jest w poprawnym formacie, który może być ponownie opublikowany w aplikacji funkcji przy użyciu wdrożenia typu push w formacie .zip. Opcja pobierania portalu może również dodać pliki potrzebne do otwarcia aplikacji funkcji bezpośrednio w programie Visual Studio.

W przypadku aplikacji wdrażanych z użyciem CI/CD przechowuj projekt źródłowy w systemie kontroli wersji i zachowuj gotowe do uruchomienia artefakty kompilacji zgodnie z zasadami przechowywania wydań. Archiwum źródłowe pobrane z repozytorium nie jest pakietem wdrożenia. Użyj procesu wdrażania, aby skompilować i wdrożyć projekt.