Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.php
i app.js
. Może również zawierać pliki zarządzania pakietami, takie jak project.json
, , composer.json
package.json
, bower.json
i 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
- Otwórz swoją aplikację w portalu Azure i wybierz Narzędzia programistyczne>Zaawansowane narzędzia, a następnie wybierz Przejdź.
- W usłudze Kudu wybierz pozycję Narzędzia>Zip Push Deploy.
- 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 |
Powiązana zawartość
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.