Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este guia mostra como implantar o DAB (Construtor de API de Dados) para Serviço de Aplicativo do Azure usando um modelo de implantação baseado em código, sem criar ou gerenciar imagens de contêiner. O Serviço de Aplicativo fornece suporte interno para TLS, domínios personalizados, dimensionamento, monitoramento e autenticação Microsoft Entra.
Dica
Se o ambiente usar contêineres, consulte Deploy para Aplicativos de Contêiner do Azure ou Deploy para Serviço de Kubernetes do Azure em vez disso.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Crie uma conta gratuitamente.
- CLI do construtor de API de Dados. Instale a CLI.
- CLI do Azure. Instale a CLI do Azure.
- .NET 8 ou posterior instalado localmente.
- Banco de dados existente com suporte acessível a partir do Azure.
Criar o arquivo de configuração
Crie um arquivo de configuração do DAB para se conectar ao banco de dados existente.
Crie um diretório vazio no computador local para armazenar o arquivo de configuração e os artefatos de implantação.
Inicializar um novo arquivo de configuração base usando
dab init. Use a@env()função para fazer referência àDATABASE_CONNECTION_STRINGvariável de ambiente para que as credenciais não sejam armazenadas no arquivo de configuração.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Importante
Substitua por
<database-type>um tipo de banco de dados com suporte, comomssql,postgresql,mysqloucosmosdb_nosql. Alguns tipos de banco de dados exigem configurações adicionais na inicialização.Adicione pelo menos uma entidade de banco de dados à configuração. Use o
dab addcomando para configurar uma entidade. Repitadab addquantas vezes precisar para suas entidades.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Abra e examine o conteúdo do arquivo dab-config.json . Verifique se:
-
data-source.connection-stringusa@env('DATABASE_CONNECTION_STRING') - Suas entidades e permissões estão corretas
Importante
Não insira cadeias de conexão literais ou segredos em
dab-config.json. Use a@env()função para que os valores sejam resolvidos a partir de variáveis de ambiente em runtime.-
Criar um manifesto de ferramenta local
Use um manifesto de ferramenta de .NET local para que o pacote de implantação inclua o DAB como uma dependência de projeto. Essa abordagem evita depender de uma ferramenta instalada globalmente dentro do Serviço de Aplicativo.
Crie um manifesto de ferramenta local .NET no diretório do projeto.
dotnet new tool-manifestInstale o Construtor de API de Dados como uma ferramenta local.
dotnet tool install microsoft.dataapibuilder --prereleaseVerifique se o manifesto existe em
.config/dotnet-tools.json.Note
O
--prereleasesinalizador instala a versão de pré-lançamento mais recente do Construtor de API de Dados. Remova o sinalizador para instalar a versão estável mais recente.
Testar localmente
Antes de implantar no Azure, confirme se o runtime é iniciado e os pontos de extremidade funcionam.
Defina o cadeia de conexão como uma variável de ambiente local.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Inicie o runtime do DAB localmente.
dab startTeste o endpoint REST navegando até o Swagger UI ou fazendo uma solicitação para
/api/<entity-name>.Teste o ponto de extremidade do GraphQL em
/graphql.Pare o ambiente de execução depois de verificar todos os endpoints.
Criar os recursos do Serviço de Aplicativo
Crie os recursos de Azure necessários para hospedar o DAB no Serviço de Aplicativo.
Crie um novo grupo de recursos. Você utiliza este grupo de recursos para todos os novos recursos deste guia.
az group create \ --name <resource-group-name> \ --location <location>Dica
Considere nomear o grupo de recursos msdocs-dab-appservice.
Criar um plano do Serviço de Aplicativo.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxNote
Este guia usa a camada B1 (Básica) no Linux.
Crie o aplicativo Web com o runtime do .NET 8.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Dica
Valide os tempos de execução disponíveis para o seu plano com
az webapp list-runtimes --os linux.
Definir configurações do Serviço de Aplicativo
Configure as variáveis de ambiente e o comando de inicialização que o Serviço de Aplicativo precisa para executar o DAB.
Configure o provedor de autenticação para o Serviço de Aplicativo. Essa configuração instrui o DAB a confiar na autenticação interna do App Service (Easy Auth) para informações de identidade.
dab configure --runtime.host.authentication.provider AppServiceDefina a string de conexão do banco de dados como uma configuração de aplicativo do App Service.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Dica
Use um cadeia de conexão que não inclua segredos. Em vez disso, use identidades gerenciadas e autenticação Microsoft Entra para gerenciar o acesso entre seu banco de dados e o Serviço de Aplicativo. Para obter mais informações, consulte serviços do Azure que usam identidades gerenciadas.
Crie um script de inicialização que restaure o manifesto da ferramenta local e inicie o DAB. Crie um arquivo nomeado
startup.shno diretório do projeto.#!/bin/sh dotnet tool restore dotnet tool run dab startImportante
Verifique se
startup.shusa terminações de linha LF (Unix), não CRLF. Editores do Windows podem salvar com CRLF por padrão, o que faz com que o script falhe no host do Serviço de Aplicativo Linux.Defina o comando de inicialização no Serviço de Aplicativo.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Implantar no Serviço de Aplicativo
Empacote os arquivos do seu projeto e implante-os no App Service utilizando a implantação ZIP.
Crie um pacote de implantação que contenha seus arquivos de projeto. No mínimo, inclua:
dab-config.json.config/dotnet-tools.jsonstartup.sh
Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -ForceImportante
O ZIP deve conter arquivos no nível raiz. Não compacte uma pasta pai contendo os arquivos. A raiz do arquivo deve incluir
dab-config.json,.config/estartup.shdiretamente.Implante o pacote ZIP no Serviço de Aplicativo.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Verificar a implantação
Após a implantação, confirme se o DAB começa com êxito no Serviço de Aplicativo.
Abra a URL do Serviço de Aplicativo.
https://<app-name>.azurewebsites.netVerifique o endpoint de saúde.
https://<app-name>.azurewebsites.net/healthTeste os endpoints REST e GraphQL usando os mesmos caminhos de entidade que foram testados localmente. O aplicativo implantado usa o mesmo
dab-config.json, portanto, o comportamento do ponto de extremidade deve corresponder ao runtime local.Se qualquer ponto de extremidade retornar um erro inesperado, habilite o registro em log do aplicativo e examine os logs.
az webapp log config \ --name <app-name> \ --resource-group <resource-group-name> \ --application-logging filesystem \ --level information az webapp log tail \ --name <app-name> \ --resource-group <resource-group-name>
Configurar a autenticação (opcional)
Proteja o endpoint do App Service com Microsoft Entra ID para uso em produção.
Para obter etapas detalhadas, consulte Configurar a autenticação do Serviço de Aplicativo.
Importante
O provedor de autenticação em dab-config.json confia nos cabeçalhos injetados pela autenticação do Serviço de Aplicativo. Verifique se a autenticação do Serviço de Aplicativo está habilitada ao usar esse provedor em produção. Para obter mais informações, consulte Easy Auth (Serviço de Aplicativo).
Note
A autenticação do App Service protege o acesso ao seu ponto de extremidade. As permissões de entidade DAB ainda regem quais operações o runtime permite. Se você quiser acesso baseado em função, atualize as permissões de entidade para usar funções específicas em vez de anonymous:*.
Limpar os recursos
Quando você não precisar mais do aplicativo de exemplo ou dos recursos, remova a implantação correspondente e todos os recursos.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait