Desenvolver aplicativos da Databricks

Prévia

O Databricks Apps está em visualização pública.

Observação

Para implantar e executar aplicativos em seu Databricks workspace, o senhor deve garantir que o firewall não bloqueie o domínio *.databricksapps.com.

Este artigo contém detalhes sobre a criação de aplicativos de dados e IA, incluindo como criar e editar aplicativos na interface do usuário, como usar os recursos da plataforma Databricks, como SQL warehouse, secrets e Databricks Jobs, práticas recomendadas para o desenvolvimento de aplicativos e informações importantes para o desenvolvimento de aplicativos usando estruturas compatíveis.

Como faço para criar um aplicativo na interface do usuário de aplicativos da Databricks?

Observação

  • O nome atribuído a um aplicativo Databricks não pode ser alterado após a criação do aplicativo, e qualquer usuário com acesso a um Databricks workspace pode ver os nomes e o histórico de implantação de todos os aplicativos Databricks no workspace. Além disso, o nome do aplicativo é incluído nos registros gravados nas tabelas do sistema. Devido a essa visibilidade, o senhor não deve usar informações confidenciais ao nomear seus aplicativos Databricks.

  • Como o nome de um aplicativo Databricks é usado para construir o link para o aplicativo implantado, o nome deve usar apenas caracteres válidos em um URL.

  1. Na barra lateral, clique em Novo ícone Novo e selecione Aplicativo no menu.

  2. O senhor pode começar com um aplicativo de exemplo completo e pré-construído ou usar seu código-fonte e artefatos.

    • Para começar com um aplicativo de exemplo, selecione o padrão, clique em tab para sua estrutura preferida e selecione na lista de aplicativos.

    • Para criar um aplicativo usando seu código, selecione Personalizado.

  3. Clique em Avançar.

  4. No campo Nome do aplicativo, insira um nome para o aplicativo.

  5. (Opcional) Insira uma descrição para o aplicativo.

  6. Se o senhor selecionou o padrão, configure o recurso necessário e clique em Create and implantado app. Consulte Atribuir recurso da plataforma Databricks a um aplicativo Databricks . Se você selecionou Personalizado, clique em Criar aplicativo.

A página de detalhes do aplicativo aparece depois que você clica em Criar e mostra o status de criação e implantação do aplicativo. A página de detalhes também inclui os passos para o desenvolvimento local do aplicativo, incluindo a sincronização do código local com o site Databricks workspace.

Para copiar os artefatos do aplicativo do workspace para o ambiente de desenvolvimento local, o senhor pode usar o Databricks CLI:

workspace export-dir <workspace-path> <target-path>

Substituir:

  • <workspace-path> com o caminho para o diretório de arquivos workspace que contém o código e os artefatos do seu aplicativo.

  • <target-path> com um caminho em seu ambiente local para copiar os arquivos.

Atribua o recurso da plataforma Databricks a um aplicativo Databricks

Observação

Para usar o Databricks SQL, a entidade de serviço precisa ter acesso a um SQL warehouse e a todas as tabelas acessadas por consultas.

Para usar os recursos da plataforma Databricks, como Databricks SQL, Databricks Jobs, Mosaic AI Model Serving e Databricks secrets, adicione esses recursos ao seu aplicativo como recurso. O senhor pode adicionar recurso ao criar ou editar um aplicativo.

  1. No cartão Criar novo aplicativo ou Editar aplicativo, clique em Configurações avançadas > + Adicionar recurso e selecione o tipo de recurso.

    Adicionar um SQL warehouse como um recurso de aplicativo na interface do usuário
  2. Dependendo do tipo de recurso, preencha os campos necessários para configurar o recurso, inclusive o campo recurso key. Esse key é usado posteriormente para fazer referência ao recurso.

  3. Clique em Salvar.

  4. Adicione uma entrada para o recurso no`app.yaml` do aplicativo arquivo de configuração. Use uma entrada como a seguinte para o recurso SQL warehouse key neste exemplo. Como isso faz referência à origem do valor do parâmetro e não ao valor real, use valueFrom em vez de value.

    env:
      - name: "DATABRICKS_WAREHOUSE_ID"
        valueFrom: "sql-warehouse"
    
  5. Para fazer referência ao recurso no código do aplicativo, use o valor do campo name (DATABRICKS_WAREHOUSE_ID neste exemplo) para fazer referência ao valor configurado em key.

    import os
    
    os.getenv('DATABRICKS_WAREHOUSE_ID')
    

Para ver mais exemplos de uso de recurso com aplicativos, incluindo SQL warehouse e servindo modelo de endpoint, consulte os exemplos de padrão quando o senhor cria um aplicativo e Melhores práticas: Use segredos para armazenar informações confidenciais em um aplicativo Databricks .

Configurar permissões para seu aplicativo Databricks

Para gerenciar as permissões do aplicativo, o senhor deve ter a permissão CAN MANAGE ou IS OWNER.

  1. Na página de detalhes do aplicativo, clique em Permissões.

  2. Em Permissions Settings (Configurações de permissões), selecione o menu suspenso Select User, Group or entidade de serviço e, em seguida, selecione um usuário, grupo, entidade de serviço ou todos os usuários do site workspace.

  3. Selecione uma permissão no dropdown de permissões.

  4. Clique em Adicionar.

  5. Clique em Salvar.

Como manter o estado do seu aplicativo Databricks

Qualquer estado que seu aplicativo mantenha na memória é perdido quando ele é reiniciado. Se seu aplicativo exigir a manutenção do estado entre as reinicializações, armazene o estado externamente. Por exemplo, seu aplicativo pode usar o Databricks SQL, arquivos de espaço de trabalho ou volumes do Unity Catalog para manter o estado.

Registro em log do seu aplicativo Databricks

Observação

Para view fazer login na UI do Databricks Apps ou com o URL do aplicativo, seu aplicativo deve log para stdout e stderr.

Para view a saída padrão e o erro padrão de um aplicativo, na página de detalhes do aplicativo, clique em logs tab.

O senhor também pode acessar view a saída padrão e o erro padrão logs no link <appurl>/logz. Por exemplo, se o URL do seu aplicativo for https://my-app-1234567890.my-instance.databricksapps.com, o senhor poderá acessar view o logs em https://my-app-1234567890.my-instance.databricksapps.com/logz.

Você pode encontrar o URL do aplicativo na página de detalhes do aplicativo.

Especificando dependências de biblioteca para seu aplicativo Databricks

Se o seu aplicativo exigir Python biblioteca diferente do pacote instalado automaticamente com a implantação, use um arquivo requirements.txt para definir essa biblioteca. Se um pacote em seu arquivo requirements.txt duplicar um dos pacotes instalados automaticamente, a versão em seu requirements.txt substituirá o pacote instalado automaticamente.

Para obter a lista de pacotes e versões instalados como parte da implementação do aplicativo, consulte Python biblioteca instalada.

Quais cabeçalhos HTTP são passados para os aplicativos da Databricks?

Os seguintes cabeçalhos X-Forwarded-* são passados do proxy reverso do Databricks Apps para os aplicativos:

cabeçalho

Descrição

X-Forwarded-Host

O host ou domínio original solicitado pelo cliente.

X-Forwarded-Preferred-Username

O nome de usuário fornecido pelo IdP.

X-Forwarded-User

O identificador de usuário fornecido pelo IdP.

X-Forwarded-Email

O usuário email fornecido pelo IdP.

X-Real-Ip

O endereço IP do cliente que fez a solicitação original.

X-Request-Id

O UUID da solicitação.

Quais estruturas são compatíveis com o Databricks Apps?

O senhor pode usar a maioria das estruturas Python para desenvolver seus aplicativos. Para ver exemplos de uso de estruturas específicas, incluindo Dash, Gradio e Streamlit, selecione na biblioteca de aplicativos padrão ao criar um novo aplicativo na interface do usuário. Consulte Como faço para criar um aplicativo na interface do usuário de aplicativos da Databricks?

Para as variáveis específicas do Streamlit que são definidas no ambiente de tempo de execução do Databricks Apps, consulte variável de ambiente padrão para o Streamlit.

Melhores práticas: Use segredos para armazenar informações confidenciais em um aplicativo Databricks

Databricks recomenda o uso de segredos para armazenar informações confidenciais, como credenciais de autenticação. Para saber mais sobre como usar segredos, consulte Segredos.

Para usar um segredo com seu aplicativo:

  1. Configure o segredo como um recurso de aplicativo.

    Adicionar um segredo como um recurso do aplicativo na interface do usuário
  2. Adicione uma entrada para o segredo no arquivo de configuração app.yaml do aplicativo.

    env:
      - name: "API_TOKEN"
        valueFrom: "api-token-value"
    
  3. Para fazer referência ao segredo no código do aplicativo, use o valor do campo name (API_TOKEN neste exemplo) para se referir ao valor configurado em key.

token = os.getenv('API_TOKEN')

Melhores práticas: Usar Databricks recurso para processamento de dados

Databricks O Apps compute foi projetado para atender à UI. Para garantir que seus aplicativos possam oferecer suporte eficiente a vários usuários, o senhor deve usar o recurso Databricks para executar qualquer coisa que não seja o simples processamento de dados. Por exemplo, use Databricks SQL para processamento de consultas e armazenamento de conjunto de dados, Databricks Job para processamento de dados ou servindo modelo para consultar modelos de IA.

Prática recomendada: siga as melhores práticas de codificação segura

A Databricks recomenda seguir práticas de codificação seguras ao desenvolver seus aplicativos, incluindo a parametrização de consultas para evitar ataques de injeção de SQL. Consulte a API de execução de instruções.

Diretrizes importantes para a implementação de aplicativos da Databricks

  • Os aplicativos do Databricks enviam um sinal SIGKILL 15 segundos após um SIGTERM, portanto, os aplicativos devem ser encerrados graciosamente no máximo 15 segundos após o recebimento do sinal SIGTERM. Se um aplicativo não sair após 15 segundos, um sinal SIGKILL será enviado para encerrar o processo e todos os processos secundários.

  • Como os aplicativos Databricks são executados como um usuário de sistema não privilegiado, eles não podem executar operações que exijam execução em um contexto de segurança privilegiado, como operações que exijam permissões de usuário root.

  • As solicitações são encaminhadas por um proxy reverso, portanto, os aplicativos não devem depender das origens das solicitações. O ambiente do Databricks Apps define os parâmetros de configuração necessários para as estruturas compatíveis.

  • Como a estrutura do aplicativo Databricks gerencia conexões TLS (Transport Layer Security), seus aplicativos não devem executar nenhuma conexão TLS ou operações de handshake.

  • Seus aplicativos devem ser implementados para lidar com solicitações no formato de texto não criptografado (H2C) HTTP/2.

  • Os aplicativos Databricks devem hospedar servidores HTTP em 0.0.0.0 e usar o número da porta especificado na variável de ambiente DATABRICKS_APP_PORT. Ver variável de ambiente.