Criar um aplicativo do Serviço de Aplicativo no Azure Arc (versão prévia)
Neste guia de início rápido, você criará um aplicativo do Serviço de Aplicativo para um cluster do Kubernetes habilitado para Azure Arc (versão prévia). Esse cenário dá suporte apenas a aplicativos Linux e você pode usar uma pilha de linguagens internas ou um contêiner personalizado.
Pré-requisitos
Adicionar extensões da CLI do Azure
Inicie o ambiente Bash no Azure Cloud Shell.
Como esses comandos da CLI ainda não fazem parte do conjunto da CLI principal, adicione-os com os comandos a seguir:
az extension add --upgrade --yes --name customlocation
az extension remove --name appservice-kube
az extension add --upgrade --yes --name appservice-kube
1. Criar um grupo de recursos
Execute o comando a seguir.
az group create --name myResourceGroup --location eastus
2. Obter um local personalizado
Obtenha as seguintes informações sobre o local personalizado do administrador do cluster (consulte Criar um local personalizado).
customLocationGroup="<resource-group-containing-custom-location>"
customLocationName="<name-of-custom-location>"
Obtenha a ID de localização personalizada para a próxima etapa.
customLocationId=$(az customlocation show \
--resource-group $customLocationGroup \
--name $customLocationName \
--query id \
--output tsv)
3. Criar um aplicativo
O exemplo a seguir cria um aplicativo Node.js. Substitua <app-name>
por um nome que seja exclusivo no cluster (os caracteres válidos são a-z
, 0-9
e -
).
Runtimes com suporte:
Descrição | Valor de runtime da CLI |
---|---|
.NET Core 3.1 | DOTNETCORE|3.1 |
.NET 5.0 | DOTNETCORE|6.0 |
Node JS 12 | NODE|12-lts |
Node 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. Implantar um código
Observação
az webapp up
não tem suporte durante a versão prévia pública.
Obtenha um aplicativo Node.js de exemplo usando Git e implante-o usando a implantação ZIP. Substitua <app-name>
pelo nome do aplicativo Web.
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. Obter logs de diagnóstico usando o Log Analytics
Observação
Para usar o Log Analytics, é preciso ter habilitado-o anteriormente ao instalar a extensão do Serviço de Aplicativo. Se você instalou a extensão sem o Log Analytics, ignore esta etapa.
Navegue até o workspace do Log Analytics configurado com a extensão do Serviço de Aplicativo e clique em Logs no painel de navegação esquerdo. Execute a consulta de exemplo a seguir para mostrar logs das últimas 72 horas. Substitua <app-name>
pelo nome do aplicativo Web. Em caso de erro ao executar uma consulta, tente novamente em 10 a 15 minutos (pode haver um atraso para o Log Analytics começar a receber os logs do aplicativo).
let StartTime = ago(72h);
let EndTime = now();
AppServiceConsoleLogs_CL
| where TimeGenerated between (StartTime .. EndTime)
| where AppName_s =~ "<app-name>"
Os logs do aplicativo para todos os aplicativos hospedados no cluster do Kubernetes são registrados no workspace do Log Analytics, na tabela de log personalizada chamada AppServiceConsoleLogs_CL
.
Log_s contém logs do aplicativo para um determinado Serviço de Aplicativo e AppName_s contém o nome do aplicativo do Serviço de Aplicativo. Além dos logs que você escreve por meio do código do aplicativo, a coluna Log_s também contém logs sobre inicialização, desligamento e Aplicativos de Funções do contêiner.
Você pode saber mais sobre consultas de log em Introdução ao Kusto.
(Opcional) Implantar um contêiner personalizado
Para criar um aplicativo conteinerizado personalizado, execute az webapp create com --deployment-container-image-name
. Para um repositório privado, adicione --docker-registry-server-user
e --docker-registry-server-password
.
Por exemplo, tente:
az webapp create \
--resource-group myResourceGroup \
--name <app-name> \
--custom-location $customLocationId \
--deployment-container-image-name mcr.microsoft.com/appsvc/staticsite:latest
Para atualizar a imagem após a criação do aplicativo, confira Alterar a imagem Docker de um contêiner personalizado