Tworzenie aplikacji App Service aplikacji w usłudze Azure Arc (wersja zapoznawcza)

W tym przewodniku Szybki start utworzysz aplikację usługi App Service w klastrze Kubernetes z obsługą usługi Azure Arc (wersja zapoznawcza). Ten scenariusz obsługuje tylko aplikacje systemu Linux i można użyć wbudowanego stosu językowego lub niestandardowego kontenera.

Wymagania wstępne

Dodawanie rozszerzeń interfejsu wiersza polecenia platformy Azure

Uruchom środowisko powłoki Bash w usłudze Azure Cloud Shell.

Ponieważ te polecenia interfejsu wiersza polecenia nie są jeszcze częścią podstawowego zestawu interfejsu wiersza polecenia, dodaj je za pomocą następujących poleceń:

az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube

1. Tworzenie grupy zasobów

Uruchom następujące polecenie:

az group create --name myResourceGroup --location eastus 

2. Pobieranie lokalizacji niestandardowej

Uzyskaj następujące informacje o lokalizacji niestandardowej od administratora klastra (zobacz Tworzenie lokalizacji niestandardowej).

customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"

Pobierz identyfikator lokalizacji niestandardowej dla następnego kroku.

customLocationId=$(az customlocation show \
    --resource-group $customLocationGroup \
    --name $customLocationName \
    --query id \
    --output tsv)

3. Tworzenie aplikacji

Poniższy przykład tworzy aplikację Node.js. Zastąp <app-name> ciąg nazwą unikatową w klastrze (prawidłowe znaki to a-z, 0-9i -).

Obsługiwane środowiska uruchomieniowe:

opis Wartość środowiska uruchomieniowego dla interfejsu wiersza polecenia
.NET Core 3.1 DOTNETCORE|3.1
.NET 5.0 DOTNETCORE|6.0
Węzeł JS 12 NODE|12-lts
Węzeł JS 14 NODE|14-lts
Python 3.6 PYTHON|3.6
Python 3.7 PYTHON|3.7
Python 3.8 PYTHON|3.8
PHP 7.3 PHP|7.3
PHP 7.4 PHP|7.4
Java 8 JAVA|8-jre8
Java 11 JAVA|11-java11
Tomcat 8.5 TOMCAT|8.5-jre8
Tomcat 8.5 TOMCAT|8.5-java11
Tomcat 9.0 TOMCAT|9.0-jre8
Tomcat 9.0 TOMCAT|9.0-java11
 az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --runtime 'NODE|14-lts'

4. Wdrażanie kodu

Uwaga

az webapp up nie jest obsługiwany w publicznej wersji zapoznawczej.

Pobierz przykładową aplikację Node.js przy użyciu narzędzia Git i wdróż ją przy użyciu narzędzia ZIP deploy. Zastąp <app-name> ciąg nazwą swojej aplikacji internetowej.

git clone https://github.com/Azure-Samples/nodejs-docs-hello-world
cd nodejs-docs-hello-world
zip -r package.zip .
az webapp config appsettings set --resource-group myResourceGroup --name <app-name> --settings SCM_DO_BUILD_DURING_DEPLOYMENT=true
az webapp deployment source config-zip --resource-group myResourceGroup --name <app-name> --src package.zip

5. Pobieranie dzienników diagnostycznych przy użyciu usługi Log Analytics

Uwaga

Aby korzystać z usługi Log Analytics, należy ją wcześniej włączyć podczas instalowania rozszerzenia usługi App Service. Jeśli rozszerzenie zainstalowano bez usługi Log Analytics, pomiń ten krok.

Przejdź do obszaru roboczego usługi Log Analytics skonfigurowanego przy użyciu rozszerzenia usługi App Service, a następnie kliknij pozycję Dzienniki w obszarze nawigacji po lewej stronie. Uruchom następujące przykładowe zapytanie, aby wyświetlić dzienniki w ciągu ostatnich 72 godzin. Zastąp <app-name> ciąg nazwą swojej aplikacji internetowej. Jeśli podczas uruchamiania zapytania wystąpi błąd, spróbuj ponownie w ciągu 10–15 minut (może wystąpić opóźnienie, aby usługa Log Analytics zaczęła odbierać dzienniki z aplikacji).

let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"

Dzienniki aplikacji dla wszystkich aplikacji hostowanych w klastrze Kubernetes są rejestrowane w obszarze roboczym usługi Log Analytics w niestandardowej tabeli dzienników o nazwie AppServiceConsoleLogs_CL.

Log_s zawiera dzienniki aplikacji dla danej usługi App Service, a AppName_s zawiera nazwę aplikacji usługi App Service. Oprócz dzienników zapisywanych za pośrednictwem kodu aplikacji kolumna Log_s zawiera również dzienniki dotyczące uruchamiania, zamykania i aplikacji funkcji.

Więcej informacji na temat zapytań dzienników można dowiedzieć się na temat rozpoczynania pracy z usługą Kusto.

(Opcjonalnie) Wdrażanie kontenera niestandardowego

Aby utworzyć niestandardową aplikację konteneryzowaną, uruchom polecenie az webapp create za pomocą polecenia --deployment-container-image-name. W przypadku repozytorium prywatnego dodaj --docker-registry-server-user i --docker-registry-server-password.

Spróbuj na przykład:

az webapp create \
    --resource-group myResourceGroup \
    --name <app-name> \
    --custom-location $customLocationId \
    --deployment-container-image-name mcr.microsoft.com/appsvc/node:14-lts

Aby zaktualizować obraz po utworzeniu aplikacji, zobacz Zmienianie obrazu platformy Docker niestandardowego kontenera

Następne kroki