Udostępnij za pośrednictwem


Wdrażanie plików w usłudze Azure App Service

W tym artykule pokazano, jak udostępnić kod jako pakiet ZIP, WAR, JAR lub EAR w usłudze Azure App Service. Pokazano również, jak wdrożyć poszczególne pliki w usłudze App Service, niezależnie od pakietu aplikacji.

Wymagania wstępne

Aby wykonać kroki opisane w tym artykule, utwórz aplikację usługi App Service lub użyj aplikacji utworzonej na potrzeby innego samouczka.

Jeśli nie masz jeszcze konta platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

Tworzenie pakietu ZIP projektu

Ważne

Podczas tworzenia pakietu ZIP do wdrożenia nie dołączaj katalogu głównego. Uwzględnij tylko pliki i katalogi w katalogu głównym. Jeśli pobierzesz repozytorium GitHub jako plik ZIP, nie możesz wdrożyć tego pliku w obecnej postaci w usłudze App Service. Usługa GitHub dodaje zagnieżdżone katalogi na najwyższym poziomie, co nie działa z usługą App Service.

W lokalnym oknie terminalu przejdź do katalogu głównego projektu aplikacji.

Ten katalog powinien zawierać plik wpisu w aplikacji internetowej, taki jak index.html, index.phpi app.js. Może również zawierać pliki zarządzania pakietami, takie jak project.json, , composer.jsonpackage.json, bower.jsoni requirements.txt.

Jeśli nie chcesz, aby usługa App Service uruchamiała automatyzację wdrażania, uruchom wszystkie zadania kompilacji. Na przykład: npm, bower, gulp, composer i pip. Upewnij się, że masz wszystkie pliki potrzebne do uruchomienia aplikacji. Ten krok jest wymagany, jeśli chcesz bezpośrednio uruchomić pakiet.

Utwórz archiwum ZIP z wszystkimi elementami w projekcie. W przypadku projektów dotnet, dodaj wszystkie elementy znajdujące się w katalogu wyjściowym, utworzonym przez polecenie dotnet publish, z wyłączeniem samego katalogu wyjściowego. Na przykład wprowadź następujące polecenie w terminalu, aby utworzyć pakiet ZIP zawierający zawartość bieżącego katalogu:

# Bash
zip -r <file-name>.zip .

# PowerShell
Compress-Archive -Path * -DestinationPath <file-name>.zip

Wdrażanie pakietu ZIP

Podczas wdrażania pakietu ZIP usługa App Service rozpakuje jego zawartość w domyślnej ścieżce aplikacji: D:\home\site\wwwroot dla systemu Windows i /home/site/wwwroot linux.

To wdrożenie pakietu ZIP korzysta z tej samej usługi Kudu, która obsługuje ciągłe wdrożenia oparte na integracji. Usługa Kudu obsługuje następujące funkcje wdrażania pakietów ZIP:

  • Usuwanie plików pozostawionych z poprzedniego wdrożenia
  • Opcja włączenia domyślnego procesu kompilacji, który obejmuje przywracanie pakietów
  • Dostosowywanie wdrożenia, w tym uruchamianie skryptów wdrażania
  • Dzienniki wdrażania
  • Limit rozmiaru pakietu 2048 megabajtów

Uwaga

Pliki w pakiecie ZIP są kopiowane tylko wtedy, gdy ich znaczniki czasu nie są zgodne z tym, co zostało już wdrożone.

Wdrażanie za pomocą interfejsu ZIP deploy w usłudze Kudu

  1. Otwórz swoją aplikację w portalu Azure i wybierz Narzędzia programistyczne>Zaawansowane narzędzia, a następnie wybierz Przejdź.
  2. W usłudze Kudu wybierz pozycję Narzędzia>Zip Push Deploy.
  3. Przekaż pakiet ZIP utworzony w sekcji Tworzenie pakietu ZIP projektu. Przeciągnij go do obszaru Eksploratora plików na stronie internetowej.

Gdy wdrażanie jest w toku, w prawym górnym rogu zostanie wyświetlona ikona procentu postępu. Na stronie są również wyświetlane komunikaty dotyczące operacji poniżej obszaru Eksploratora plików . Po zakończeniu wdrażania ostatni komunikat powinien mieć komunikat "Wdrożenie powiodło się".

Ten punkt końcowy nie działa obecnie w usłudze App Service w systemie Linux. Rozważ użycie protokołu FTP lub interfejsu API wdrażania pliku ZIP.

Wdrażanie bez interfejsu wdrażania ZIP w usłudze Kudu

Wdróż pakiet ZIP w aplikacji internetowej przy użyciu az webapp deploy polecenia . Polecenie wiersza polecenia (CLI) używa Kudu publish API do wdrażania plików i może być całkowicie dostosowane.

Poniższy przykład przesyła pakiet ZIP do witryny. Określ ścieżkę do lokalnego pakietu ZIP dla --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path <zip-package-path>

To polecenie uruchamia ponownie aplikację po wdrożeniu pakietu ZIP.

Włącz automatyzację kompilacji dla wdrażania pliku ZIP

Domyślnie mechanizm wdrażania zakłada, że pakiet ZIP jest gotowy do użycia i nie uruchamia automatyzacji kompilacji. Aby włączyć tę samą automatyzację kompilacji używaną we wdrożeniuSCM_DO_BUILD_DURING_DEPLOYMENT usługi Git, ustaw ustawienie aplikacji. Uruchom następujące polecenie w usłudze Azure Cloud Shell:

az webapp config appsettings set --resource-group <group-name> --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true

Więcej informacji znajduje się w dokumentacji Kudu.

Wdrażanie pakietów WAR, JAR lub EAR

Pakiet WAR, JAR lub EAR można wdrożyć w usłudze App Service, aby uruchomić aplikację internetową Java przy użyciu interfejsu wiersza polecenia platformy Azure, programu PowerShell lub interfejsu API publikowania Kudu.

Przedstawiony tutaj proces wdrażania umieszcza pakiet w katalogu zawartości aplikacji zgodnie z właściwą konwencją nazewnictwa i strukturą katalogów. Aby uzyskać więcej informacji, zobacz Referencja interfejsu API publikowania w usłudze Kudu. Zalecamy takie podejście. W przypadku wdrażania pakietów WAR, JAR lub EAR przy użyciu protokołu FTP lub Web Deploy mogą wystąpić nieznane błędy z powodu błędów w nazewnictwie lub strukturze.

Wdróż pakiet WAR przy użyciu polecenia az webapp deploy na serwerze Tomcat lub JBoss EAP. Określ ścieżkę do lokalnego pakietu Java dla elementu --src-path.

az webapp deploy --resource-group <group-name> --name <app-name> --src-path ./<package-name>.war

Polecenie CLI używa API publikowania Kudu do wdrożenia pakietu i można je w pełni dostosować.

Wdrażanie pojedynczych plików

Wdróż skrypt uruchamiania, bibliotekę i plik statyczny w aplikacji internetowej przy użyciu az webapp deploy polecenia z parametrem --type .

W przypadku wdrażania skryptu uruchamiania w ten sposób usługa App Service automatycznie używa skryptu do uruchamiania aplikacji.

Polecenie CLI używa interfejsu API publikowania Kudu do wdrażania plików. Polecenie można w pełni dostosować.

Wdrażanie skryptu uruchamiania

az webapp deploy --resource-group <group-name> --name <app-name> --src-path scripts/startup.sh --type=startup

Wdrażanie pliku biblioteki

az webapp deploy --resource-group <group-name> --name <app-name> --src-path driver.jar --type=lib

Wdrażanie pliku statycznego

az webapp deploy --resource-group <group-name> --name <app-name> --src-path config.json --type=static

Wdrażanie w aplikacjach zabezpieczonych przez sieć

W zależności od konfiguracji sieci aplikacji internetowej bezpośredni dostęp do aplikacji ze środowiska deweloperskiego może być zablokowany. (Zobacz Wdrażanie w lokacjach zabezpieczonych sieciami i Wdrażanie w lokacjach zabezpieczonych siecią, część 2). Zamiast wypychać pakiet lub plik bezpośrednio do aplikacji internetowej, możesz opublikować go w systemie magazynu dostępnym z poziomu aplikacji internetowej i wyzwolić aplikację w celu ściągnięcia pliku ZIP z lokalizacji magazynu.

Zdalny adres URL może być dowolną publicznie dostępną lokalizacją, ale najlepiej użyć kontenera magazynu obiektów blob z kluczem sygnatury dostępu współdzielonego (SAS), aby go chronić.

Użyj polecenia , az webapp deploy jak w innych sekcjach, ale użyj polecenia --src-url zamiast --src-path. W poniższym przykładzie użyto parametru --src-url , aby określić adres URL pliku ZIP hostowanego na koncie usługi Azure Storage.

az webapp deploy --resource-group <group-name> --name <app-name> --src-url "https://storagesample.blob.core.windows.net/sample-container/myapp.zip?sv=2021-10-01&sb&sig=slk22f3UrS823n4kSh8Skjpa7Naj4CG3 --type zip

Dokumentacja interfejsu API publikowania Kudu

Interfejs publish API Kudu umożliwia określenie tych samych parametrów co w poleceniu CLI jako parametrów zapytania w adresie URL. Aby uwierzytelnić się za pomocą interfejsu API REST Kudu, zalecamy uwierzytelnianie za pomocą tokenów, ale możesz również użyć uwierzytelniania podstawowego z poświadczeniami wdrożenia aplikacji.

W poniższej tabeli przedstawiono dostępne parametry zapytania, dozwolone wartości i opisy.

Klucz Dozwolone wartości Opis Wymagane Typ
type war|jar|ear|lib|startup|static|zip Jest to typ wdrażanego artefaktu. Ustawia domyślną ścieżkę docelową i informuje aplikację internetową o sposobie obsługi wdrożenia.

type=zip: Wdróż pakiet ZIP, rozpakowując zawartość do /home/site/wwwroot. target-path parametr jest opcjonalny.

type=war: Wdróż pakiet WAR. Domyślnie pakiet WAR jest wdrażany w /home/site/wwwroot/app.war. Ścieżkę docelową można określić za pomocą target-path.

type=jar: Wdróż pakiet JAR do /home/site/wwwroot/app.jar. Parametr target-path jest ignorowany.

type=ear: Wdróż pakiet EAR na /home/site/wwwroot/app.ear. Parametr target-path jest ignorowany.

type=lib: Wdróż plik biblioteki JAR. Domyślnie plik jest wdrażany do /home/site/libs. Ścieżkę docelową można określić za pomocą target-path.

type=static: Wdróż plik statyczny, taki jak skrypt. Domyślnie plik jest wdrażany do /home/site/wwwroot.

type=startup: Wdróż skrypt, który usługa App Service automatycznie używa jako skryptu uruchamiania aplikacji. Domyślnie skrypt jest wdrażany do D:\home\site\scripts\<name-of-source> dla systemów Windows i do home/site/wwwroot/startup.sh dla systemów Linux. Ścieżkę docelową można określić za pomocą target-path.
Tak Sznurek
restart true|false Domyślnie interfejs API uruchamia ponownie aplikację po operacji wdrażania (restart=true). Podczas wdrażania wielu artefaktów można zapobiec ponownym uruchomieniom we wszystkich wdrożeniach z wyjątkiem ostatniego, ustawiając wartość restart=false. Nie. Boolowski
clean true|false Określa, czy przed wdrożeniem artefaktu należy wyczyścić (usunąć) wdrożenie docelowe. Nie. Boolowski
ignorestack true|false Interfejs API publikowania używa zmiennej środowiskowej WEBSITE_STACK do wybierania bezpiecznych wartości domyślnych w zależności od stosu języka witryny. Ustawienie tego parametru na false wyłącza wszystkie domyślne ustawienia specyficzne dla języka. Nie. Boolowski
target-path Ścieżka bezwzględna Ścieżka bezwzględna, na której należy umieścić artefakt. Na przykład: /home/site/deployments/tools/driver.jar lub /home/site/scripts/helper.sh. Nie. Sznurek

Aby uzyskać bardziej zaawansowane scenariusze wdrażania, spróbuj wdrożyć na platformie Azure przy użyciu usługi Git. Wdrożenie oparte na usłudze Git na platformie Azure umożliwia kontrolę wersji, przywracanie pakietów, program MSBuild i nie tylko.