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 dados e aplicativos AI com o Databricks Apps, 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?
Na barra lateral, clique em Novo e selecione Aplicativo no menu.
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.
Clique em Avançar.
No campo Nome do aplicativo, insira um nome para o aplicativo e, opcionalmente, insira uma descrição.
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 incluir informações confidenciais ao nomear seus aplicativos Databricks.
O nome deve ser exclusivo no site Databricks workspace que hospeda o aplicativo e deve conter apenas letras minúsculas, números e hífens.
Se você selecionou Personalizado, clique em Criar aplicativo. 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 .
A página de detalhes do aplicativo é exibida depois que o senhor clica em Criar e implantar aplicativo ou Criar aplicativo. Se o senhor selecionou o padrão, o Databricks Apps cria seu aplicativo e, em seguida, implanta o aplicativo, incluindo o código de exemplo do padrão e a configuração necessária para o aplicativo. A página de detalhes do aplicativo mostra:
O status da criação e implantação do aplicativo.
Os passos que o senhor pode usar para continuar o desenvolvimento do aplicativo localmente, incluindo a cópia dos artefatos do aplicativo para o seu ambiente local e a sincronização das alterações locais com o site Databricks workspace.
Se o senhor selecionou Personalizado, a Databricks Apps cria o aplicativo. Como o senhor precisa adicionar o código e os artefatos ao seu aplicativo, deve implantá-lo como um passo separado. A página de detalhes do aplicativo mostra:
O status da criação do aplicativo.
Os passos que o senhor pode usar para sincronizar o código e os artefatos do aplicativo do seu ambiente de desenvolvimento local para o seu Databricks workspace e implantar o aplicativo.
Para saber como configurar um ambiente de desenvolvimento local, criar ou atualizar o código e a configuração de seu aplicativo localmente e sincronizar e implantar o aplicativo em seu Databricks workspace, consulte Get começar with Databricks Apps.
Se o senhor selecionou o padrão e deseja copiar os artefatos do aplicativo do site workspace para o ambiente de desenvolvimento local, poderá usar o site Databricks CLI:
databricks 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.
No cartão Criar novo aplicativo ou Editar aplicativo, clique em Configurações avançadas > + Adicionar recurso e selecione o tipo de recurso.
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.
Clique em Salvar.
Adicione uma entrada para o recurso no arquivo de configuração
app.yaml
usando o recurso SQL warehouse key. Como isso faz referência à origem do valor do parâmetro e não ao valor real, usevalueFrom
em vez devalue
.env: - name: "DATABRICKS_WAREHOUSE_ID" valueFrom: "sql-warehouse"
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 .
Exibir os detalhes de um aplicativo da Databricks
Para view a página de detalhes de um aplicativo Databricks:
Clique em Calcular na barra lateral.
Vá para Apps tab.
Na coluna Nome, clique no nome do aplicativo.
A Visão geral tab é exibida com detalhes do aplicativo, incluindo o status, o local de implantação e qualquer recurso associado.
Para acessar o histórico de implementação do aplicativo, vá para Deployments tab.
Para acessar view o logs do aplicativo, vá para os registros tab.
Para view o ambiente de tempo de execução do aplicativo, incluindo a variável de ambiente e o pacote instalado, acesse Environment tab.
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
.
Na página de detalhes do aplicativo, clique em Permissões.
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.
Selecione uma permissão no dropdown de permissões.
Clique em Adicionar e, em seguida, 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. Consulte Exibir os detalhes de um aplicativo Databricks.
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
. Para encontrar o URL do aplicativo, acesse a 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 |
---|---|
|
O host ou domínio original solicitado pelo cliente. |
|
O nome de usuário fornecido pelo IdP. |
|
O identificador de usuário fornecido pelo IdP. |
|
O usuário email fornecido pelo IdP. |
|
O endereço IP do cliente que fez a solicitação original. |
|
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 o uso de segredos, consulte gerenciar segredos.
Para usar um segredo com seu aplicativo:
Configure o segredo como um recurso de aplicativo.
Adicione uma entrada para o segredo no arquivo de configuração
app.yaml
do aplicativo.env: - name: "API_TOKEN" valueFrom: "api-token-value"
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 umSIGTERM
, portanto, os aplicativos devem ser encerrados graciosamente no máximo 15 segundos após o recebimento do sinalSIGTERM
. Se um aplicativo não sair após 15 segundos, um sinalSIGKILL
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 ambienteDATABRICKS_APP_PORT
. Ver variável de ambiente.