Implantar o construtor de API de Dados para Serviço de Aplicativo do Azure

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.

Diagrama da arquitetura geral após a implantação em Serviço de Aplicativo do Azure é concluído.

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

Criar o arquivo de configuração

Crie um arquivo de configuração do DAB para se conectar ao banco de dados existente.

  1. Crie um diretório vazio no computador local para armazenar o arquivo de configuração e os artefatos de implantação.

  2. Inicializar um novo arquivo de configuração base usando dab init. Use a @env() função para fazer referência à DATABASE_CONNECTION_STRING variá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, como mssql, postgresql, mysqlou cosmosdb_nosql. Alguns tipos de banco de dados exigem configurações adicionais na inicialização.

  3. Adicione pelo menos uma entidade de banco de dados à configuração. Use o dab add comando para configurar uma entidade. Repita dab add quantas vezes precisar para suas entidades.

    dab add "<entity-name>" --source "<schema>.<table>" --permissions "anonymous:*"
    
  4. Abra e examine o conteúdo do arquivo dab-config.json . Verifique se:

    • data-source.connection-string usa @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.

  1. Crie um manifesto de ferramenta local .NET no diretório do projeto.

    dotnet new tool-manifest
    
  2. Instale o Construtor de API de Dados como uma ferramenta local.

    dotnet tool install microsoft.dataapibuilder --prerelease
    
  3. Verifique se o manifesto existe em .config/dotnet-tools.json.

    Note

    O --prerelease sinalizador 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.

  1. Defina o cadeia de conexão como uma variável de ambiente local.

    $env:DATABASE_CONNECTION_STRING = "<your-connection-string>"
    
  2. Inicie o runtime do DAB localmente.

    dab start
    
  3. Teste o endpoint REST navegando até o Swagger UI ou fazendo uma solicitação para /api/<entity-name>.

  4. Teste o ponto de extremidade do GraphQL em /graphql.

  5. 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.

  1. 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.

  2. Criar um plano do Serviço de Aplicativo.

    az appservice plan create \
      --name <plan-name> \
      --resource-group <resource-group-name> \
      --sku B1 \
      --is-linux
    

    Note

    Este guia usa a camada B1 (Básica) no Linux.

  3. 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.

  1. 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 AppService
    
  2. Defina 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.

  3. Crie um script de inicialização que restaure o manifesto da ferramenta local e inicie o DAB. Crie um arquivo nomeado startup.sh no diretório do projeto.

    #!/bin/sh
    dotnet tool restore
    dotnet tool run dab start
    

    Importante

    Verifique se startup.sh usa 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.

  4. 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.

  1. Crie um pacote de implantação que contenha seus arquivos de projeto. No mínimo, inclua:

    • dab-config.json
    • .config/dotnet-tools.json
    • startup.sh
    Compress-Archive -Path dab-config.json, .config, startup.sh -DestinationPath deploy.zip -Force
    

    Importante

    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/e startup.sh diretamente.

  2. 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.

  1. Abra a URL do Serviço de Aplicativo.

    https://<app-name>.azurewebsites.net
    
  2. Verifique o endpoint de saúde.

    https://<app-name>.azurewebsites.net/health
    
  3. Teste 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.

  4. 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