Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Este guia mostra-lhe como implementar o Data API Builder (DAB) para o Serviço de Aplicações do Azure usando um modelo de implementação baseado em código, sem ter de construir ou gerir imagens de contentores. O App Service oferece suporte incorporado para TLS, domínios personalizados, escalabilidade, monitorização e autenticação Microsoft Entra.
Tip
Se o seu ambiente usar contentores, em vez disso, implemente nos Azure Container Apps ou no Azure Kubernetes Service.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa. Cria uma conta gratuitamente.
- CLI do construtor de API de dados. Instale a CLI.
- CLI do Azure. Instale o CLI do Azure.
- .NET 8 ou posteriormente instalado localmente.
- Base de dados existente endereçável pelo Azure.
Criar o arquivo de configuração
Constrói um ficheiro de configuração DAB para ligar à tua base de dados existente.
Crie um diretório vazio na sua máquina local para armazenar o ficheiro de configuração e os artefactos de implementação.
Inicialize um novo arquivo de configuração base usando
dab inito . Use a@env()função para referenciar aDATABASE_CONNECTION_STRINGvariável de ambiente para que as credenciais não fiquem armazenadas no ficheiro de configuração.dab init --database-type "<database-type>" --connection-string "@env('DATABASE_CONNECTION_STRING')"Importante
Substitua
<database-type>por um tipo de base de dados suportado, comomssql,postgresql,mysql, oucosmosdb_nosql. Alguns tipos de bases de dados exigem definições de configuração adicionais na inicialização.Adicione pelo menos uma entidade de banco de dados à configuração. Use o
dab addcomando para configurar uma entidade. Repetedab addquantas vezes precisares para as tuas entidades.dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"Abra e revise o conteúdo do arquivo dab-config.json . Verifique que:
-
data-source.connection-stringusa@env('DATABASE_CONNECTION_STRING') - As tuas entidades e permissões estão corretas
Importante
Não incorpore cadeias de ligação literais ou segredos em
dab-config.json. Use a@env()função para que os valores sejam resolvidos a partir das variáveis de ambiente em tempo de execução.-
Criar um manifesto local de ferramentas
Use um manifesto local de ferramenta .NET para que o pacote de implementação inclua o DAB como dependência do projeto. Esta abordagem evita depender de uma ferramenta instalada globalmente dentro do App Service.
Crie um manifesto local de ferramenta .NET no diretório do seu projeto.
dotnet new tool-manifestInstale o Data API Builder como uma ferramenta local.
dotnet tool install microsoft.dataapibuilder --prereleaseVerifique se o manifesto existe em
.config/dotnet-tools.json.Observação
O
--prereleaseflag instala a versão mais recente de pré-lançamento do Data API builder. Remova a flag e instale em vez disso a versão estável mais recente.
Testar localmente
Antes de implementares no Azure, confirma que o runtime começa e que os teus endpoints funcionam.
Defina a cadeia de ligação como uma variável local de ambiente.
$env:DATABASE_CONNECTION_STRING = "<your-connection-string>"Inicia o runtime do DAB localmente.
dab startTeste o endpoint REST navegando até à interface Swagger ou fazendo um pedido para
/api/<entity-name>.Teste o endpoint GraphQL em
/graphql.Pare o tempo de execução depois de verificar todos os endpoints.
Recursos para criar o Serviço de Aplicação
Crie os recursos do Azure necessários para alojar o DAB no App Service.
Criar um novo grupo de recursos. Utiliza este grupo de recursos para todos os novos recursos neste guia.
az group create \ --name <resource-group-name> \ --location <location>Tip
Considere nomear o grupo de recursos msdocs-dab-appservice.
Crie um plano do Serviço de Aplicativo.
az appservice plan create \ --name <plan-name> \ --resource-group <resource-group-name> \ --sku B1 \ --is-linuxObservação
Este guia utiliza o nível B1 (Basic) no Linux.
Crie a aplicação web com o runtime .NET 8.
az webapp create \ --name <app-name> \ --resource-group <resource-group-name> \ --plan <plan-name> \ --runtime "DOTNETCORE:8.0"Tip
Valide os tempos de execução disponíveis para o seu plano com
az webapp list-runtimes --os linux.
Configurar as definições do Serviço de Aplicação
Configure as variáveis de ambiente e o comando de arranque que o App Service precisa para executar o DAB.
Configure o fornecedor de autenticação para o App Service. Esta configuração instrui o DAB a confiar na autenticação integrada do App Service (Easy Auth) para obter informações de identidade.
dab configure --runtime.host.authentication.provider AppServiceDefina a cadeia de ligação da base de dados como uma definição da aplicação no App Service.
az webapp config appsettings set \ --name <app-name> \ --resource-group <resource-group-name> \ --settings DATABASE_CONNECTION_STRING="<your-connection-string>"Tip
Usa uma cadeia de ligação que não inclua segredos. Em vez disso, utilize identidades geridas e autenticação Microsoft Entra para gerir o acesso entre a sua base de dados e o Serviço de Aplicações. Para obter mais informações, consulte Serviços do Azure que usam identidades gerenciadas.
Crie um script de arranque que restaure o manifesto local da ferramenta e inicie o DAB. Crie um ficheiro nomeado
startup.shno diretório do seu projeto.#!/bin/sh dotnet tool restore dotnet tool run dab startImportante
Assegure que
startup.shutiliza terminações de linha LF (Unix), e não CRLF. Os editores do Windows podem guardar com CRLF por defeito, o que faz com que o script falhe no host do Serviço de Aplicações Linux.Define o comando de arranque no App Service.
az webapp config set \ --name <app-name> \ --resource-group <resource-group-name> \ --startup-file "startup.sh"
Implantar no Serviço de Aplicações
Empacota os ficheiros do teu projeto e implementa-os no App Service usando o deploy ZIP.
Crie um pacote de deployment que contenha os ficheiros do seu projeto. No mínimo, incluir:
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 ficheiros ao nível raiz. Não compactes a pasta pai que contém os ficheiros. A raiz do arquivo deve incluir
dab-config.json,.config/, estartup.shdiretamente.Implemente o pacote ZIP para o App Service.
az webapp deploy \ --resource-group <resource-group-name> \ --name <app-name> \ --src-path deploy.zip \ --type zip
Verificar a implantação
Após a implementação, confirme que o DAB inicia com sucesso no App Service.
Abra o URL do Serviço de Aplicações.
https://<app-name>.azurewebsites.netVerifica o endpoint de saúde.
https://<app-name>.azurewebsites.net/healthTeste os endpoints REST e GraphQL usando os mesmos caminhos das entidades que testou localmente. A aplicação implementada usa o mesmo
dab-config.json, por isso o comportamento do endpoint deve corresponder ao seu runtime local.Se algum endpoint devolver um erro inesperado, ative o registo de aplicações e reveja 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 autenticação (opcional)
Proteja o seu endpoint de Serviço de Aplicações com o Microsoft Entra ID para uso em produção.
Para passos detalhados, consulte Configurar autenticação de Serviços de Aplicações.
Importante
O fornecedor de autenticação AppService em dab-config.json confia nos cabeçalhos injetados pela autenticação do Serviço de Aplicações. Certifique-se de que a autenticação de Serviços de Aplicações está ativada ao usar este fornecedor em produção. Para mais informações, consulte Autenticação Fácil (Serviço de Aplicação).
Observação
A autenticação por Serviço de Aplicações protege a entrada no seu endpoint. As permissões das entidades DAB continuam a governar quais operações o tempo de execução permite. Se quiser acesso baseado em funções, atualize as permissões da sua entidade para usar funções específicas em vez de anonymous:*.
Limpeza de recursos
Quando já não precisar da aplicação de exemplo ou dos respetivos recursos, remova a implementação correspondente e todos os recursos.
az group delete \
--name <resource-group-name> \
--yes \
--no-wait
Conteúdo relacionado
- Autenticação Easy Auth (Serviço de Aplicação)
- Referência de ficheiro de configuração
- Configuração do host e autenticação em tempo de execução
- Implantar em Aplicativos de Contêiner do Azure
- Integre com o Application Insights