Skapa en App Service app on Azure Arc (förhandsversion)
I den här snabbstarten skapar du en App Service-app till ett Azure Arc-aktiverat Kubernetes-kluster (förhandsversion). Det här scenariot stöder endast Linux-appar och du kan använda en inbyggd språkstack eller en anpassad container.
Förutsättningar
Lägga till Azure CLI-tillägg
Starta Bash-miljön i Azure Cloud Shell.
Eftersom dessa CLI-kommandon ännu inte är en del av cli-kärnuppsättningen lägger du till dem med följande kommandon:
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
1. Skapa en resursgrupp
Kör följande kommando.
az group create --name myResourceGroup --location eastus
2. Hämta den anpassade platsen
Hämta följande information om den anpassade platsen från klusteradministratören (se Skapa en anpassad plats).
customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"
Hämta det anpassade plats-ID:t för nästa steg.
customLocationId=$(az customlocation show \
--resource-group $customLocationGroup \
--name $customLocationName \
--query id \
--output tsv)
3. Skapa en app
I följande exempel skapas en Node.js app. Ersätt <app-name>
med ett namn som är unikt i klustret (giltiga tecken är a-z
, 0-9
och -
).
Körning som stöds:
beskrivning | Körningsvärde för CLI |
---|---|
.NET Core 3.1 | DOTNETCORE|3.1 |
.NET 5.0 | DOTNETCORE|6.0 |
Node JS 12 | NODE|12-lts |
Nod 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. Distribuera lite kod
Kommentar
az webapp up
stöds inte under den offentliga förhandsversionen.
Hämta ett exempel Node.js app med Git och distribuera den med hjälp av ZIP-distribution. Ersätt <app-name>
med webbappens namn.
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. Hämta diagnostikloggar med Log Analytics
Kommentar
Om du vill använda Log Analytics bör du tidigare ha aktiverat det när du installerade App Service-tillägget. Om du har installerat tillägget utan Log Analytics hoppar du över det här steget.
Gå till Log Analytics-arbetsytan som har konfigurerats med apptjänsttillägget och klicka sedan på Loggar i det vänstra navigeringsfältet. Kör följande exempelfråga för att visa loggar under de senaste 72 timmarna. Ersätt <app-name>
med webbappens namn. Om det uppstår ett fel när du kör en fråga kan du försöka igen om 10–15 minuter (det kan uppstå en fördröjning för Log Analytics att börja ta emot loggar från ditt program).
let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"
Programloggarna för alla appar som finns i kubernetes-klustret loggas till Log Analytics-arbetsytan i den anpassade loggtabellen med namnet AppServiceConsoleLogs_CL
.
Log_s innehåller programloggar för en viss App Service och AppName_s innehåller App Service-appnamnet. Förutom loggar som du skriver via programkoden innehåller kolumnen Log_s även loggar för start, avstängning och funktionsappar för containrar.
Du kan lära dig mer om loggfrågor när du kommer igång med Kusto.
(Valfritt) Distribuera en anpassad container
Om du vill skapa en anpassad containerbaserad app kör du az webapp create med --deployment-container-image-name
. För en privat lagringsplats lägger du till --docker-registry-server-user
och --docker-registry-server-password
.
Prova till exempel:
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--deployment-container-image-name mcr.microsoft.com/appsvc/staticsite:latest
Information om hur du uppdaterar avbildningen när appen har skapats finns i Ändra Docker-avbildningen av en anpassad container