Desenvolver aplicativos do Databricks
Importante
O Databricks Apps está em Visualização Pública.
Observação
Para implantar e executar aplicativos em seu workspace do Databricks, você deve garantir que seu firewall não bloqueie o domínio *.databricksapps.com
.
Este artigo tem detalhes sobre como criar dados e aplicativos de IA com o Databricks Apps, incluindo como criar e editar aplicativos na interface do usuário, como usar recursos da plataforma Databricks, como SQL warehouses, segredos e trabalhos do Databricks, práticas recomendadas para desenvolver seus aplicativos e informações importantes para desenvolver aplicativos usando estruturas com suporte.
Como criar um aplicativo na interface do usuário do Databricks Apps?
Na barra lateral, clique em Novo e selecione Aplicativo no menu.
Você pode começar com um aplicativo de exemplo completo e pré-criado ou usar seu código-fonte e artefatos.
- Para começar com um aplicativo de exemplo, selecione Modelo, clique na guia da estrutura de sua preferência 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 do Databricks não pode ser alterado após a criação do aplicativo, e qualquer usuário com acesso a um workspace do Azure Databricks pode ver os nomes e o histórico de implantação de todos os aplicativos do Databricks no workspace. Além disso, o nome do aplicativo é incluído nos registros gravados nas tabelas do sistema. Devido a essa visibilidade, você não deve incluir informações confidenciais ao nomear seus aplicativos do Databricks.
- O nome deve ser exclusivo no workspace do Azure Databricks 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 você selecionou Modelo, configure os recursos necessários e clique em Criar e implantar aplicativo. Confira Atribuir recursos da plataforma Databricks a um aplicativo Databricks.
A página de detalhes do aplicativo aparece depois que você clica em Criar e implantar aplicativo ou Criar aplicativo. Se você selecionou Modelo, o Databricks Apps criará seu aplicativo e, em seguida, implantará o aplicativo, incluindo o código de exemplo do modelo 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.
- As etapas que você pode usar para continuar o desenvolvimento do aplicativo localmente, incluindo copiar os artefatos do aplicativo para o ambiente local e sincronizar as alterações locais de volta para o workspace do Azure Databricks.
Se você selecionou Personalizado, os Aplicativos do Databricks criarão seu aplicativo. Como você deve adicionar o código e os artefatos para seu aplicativo, você deve implantar o aplicativo como uma etapa separada. A página de detalhes do aplicativo mostra:
- O status da criação do aplicativo.
- As etapas que você pode usar para sincronizar o código e os artefatos do aplicativo do ambiente de desenvolvimento local com o workspace do Azure Databricks e implantar o aplicativo.
Para saber como configurar um ambiente de desenvolvimento local, criar ou atualizar o código e a configuração do seu aplicativo localmente e sincronizar e implantar o aplicativo no workspace do Azure Databricks, confira Introdução aos Aplicativos do Databricks.
Se você selecionou Modelo e deseja copiar os artefatos do aplicativo do workspace para o ambiente de desenvolvimento local, poderá usar a CLI do Databricks:
databricks workspace export-dir <workspace-path> <target-path>
Substitua:
<workspace-path>
com o caminho para o diretório de arquivos do workspace que contém o código e os artefatos do aplicativo.<target-path>
com um caminho em seu ambiente local para o qual copiar os arquivos.
Atribuir recursos da plataforma Databricks a um aplicativo Databricks
Observação
Para usar o Databricks SQL, as entidades de serviço exigem acesso a um SQL warehouse e a todas as tabelas acessadas por consultas.
Para usar recursos da plataforma Databricks, como Databricks SQL, Trabalhos do Databricks, Mosaic AI Model Serving e segredos do Databricks, adicione esses recursos ao seu aplicativo como recursos. Você pode adicionar recursos 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, incluindo o campo Chave do recurso. Essa chave é usada posteriormente para fazer referência ao recurso.
Clique em Save (Salvar).
Adicione uma entrada para o recurso no arquivo de
app.yaml
configuração usando a chave de recurso do SQL warehouse. Como isso está fazendo 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
name
valor do campo (DATABRICKS_WAREHOUSE_ID
neste exemplo) para se referir ao valor da chave configurada.import os os.getenv('DATABRICKS_WAREHOUSE_ID')
Para ver mais exemplos de uso de recursos com aplicativos, incluindo SQL warehouses e pontos de extremidade de serviço de modelo, consulte os exemplos de modelo ao criar um aplicativo e Prática recomendada: usar segredos para armazenar informações confidenciais para um aplicativo Databricks.
Exibir os detalhes de um aplicativo do Databricks
Para exibir a página de detalhes de um aplicativo do Databricks:
- Clique em Computação na barra lateral.
- Vá para a guia Aplicativos .
- Na coluna Nome, clique no nome do aplicativo.
- A guia Visão geral é exibida com detalhes do aplicativo, incluindo seu status, local de implantação e todos os recursos associados.
- Para acessar o histórico de implantação do aplicativo, vá para a guia Implantações .
- Para exibir os logs do aplicativo, vá para a guia Logs .
- Para exibir o ambiente de tempo de execução do aplicativo, incluindo variáveis de ambiente e pacotes instalados, vá para a guia Ambiente .
Configurar permissões para seu aplicativo Databricks
Para gerenciar as permissões do aplicativo, você deve ter a CAN MANAGE
permissão ou IS OWNER
.
- Na página de detalhes do aplicativo, clique em Permissões.
- Em Configurações de Permissões, selecione o menu suspenso Selecionar Usuário, Grupo ou Entidade de Serviço... e selecione um usuário, grupo, entidade de serviço ou todos os usuários do workspace.
- Selecione uma permissão no menu suspenso de permissão.
- Clique em Adicionar e, em seguida, clique em Salvar.
Mantendo o estado do seu aplicativo Databricks
Qualquer estado que seu aplicativo mantém na memória é perdido quando ele é reiniciado. Se o 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 workspace ou volumes do Catálogo do Unity para manter o estado.
Registro em log do seu aplicativo Databricks
Observação
Para exibir logs na interface do usuário do Databricks Apps ou com a URL do aplicativo, seu aplicativo deve fazer logon em stdout
e stderr
.
Para exibir a saída padrão e o erro padrão de um aplicativo, na página de detalhes do aplicativo, clique na guia Logs . Consulte Exibir os detalhes de um aplicativo Databricks.
Você também pode visualizar a saída padrão e os logs de erros padrão no <appurl>/logz
link. Por exemplo, se a URL do seu aplicativo for https://my-app-1234567890.my-instance.databricksapps.com
, você poderá exibir os logs em https://my-app-1234567890.my-instance.databricksapps.com/logz
. Para encontrar o URL do aplicativo, vá para a página de detalhes do aplicativo.
Especificando dependências de biblioteca para seu aplicativo Databricks
Se o aplicativo exigir bibliotecas do Python diferentes dos pacotes instalados automaticamente com a implantação, use um requirements.txt
arquivo para definir essas bibliotecas. Se um pacote em seu requirements.txt
arquivo 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 implantação do aplicativo, consulte Bibliotecas do Python instaladas.
Quais cabeçalhos HTTP são passados para aplicativos do Databricks?
Os seguintes X-Forwarded-*
cabeçalhos são passados do proxy reverso dos Aplicativos do Databricks para os aplicativos:
parâmetro | 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 e-mail do usuário 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 os Aplicativos Databricks?
Você 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 de modelo ao criar um novo aplicativo na interface do usuário. Confira Como criar um aplicativo na interface do usuário do Databricks Apps?.
Para variáveis específicas do Streamlit definidas no ambiente de runtime do Databricks Apps, consulte Variáveis de ambiente padrão para o Streamlit.
Melhor prática: usar segredos para armazenar informações confidenciais para um aplicativo Databricks
O Databricks recomenda o uso de segredos para armazenar informações confidenciais, como credenciais de autenticação. Para saber mais sobre como usar 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
app.yaml
configuração do aplicativo.env: - name: "API_TOKEN" valueFrom: "api-token-value"
Para fazer referência ao segredo no código do aplicativo, use o
name
valor do campo (API_TOKEN
neste exemplo) para se referir ao valor da chave configurada.
token = os.getenv('API_TOKEN')
Melhor prática: usar recursos do Azure Databricks para processamento de dados
A computação dos Aplicativos do Databricks foi projetada para atender à interface do usuário. Para garantir que seus aplicativos possam dar suporte a vários usuários com eficiência, você deve usar os recursos do Databricks para executar qualquer coisa diferente do processamento de dados simples. Por exemplo, use o Databricks SQL para processamento de consultas e armazenamento de conjuntos de dados, trabalhos do Databricks para processamento de dados ou serviços de modelo para consultar modelos de IA.
Melhor prática: siga as práticas recomendadas de codificação segura
O Databricks recomenda seguir práticas de codificação seguras ao desenvolver seus aplicativos, incluindo consultas de parametrização para evitar ataques de injeção de SQL. Consulte a API de execução de instrução.
Diretrizes importantes para implementar aplicativos do Databricks
- Os aplicativos do Databricks enviam um
SIGKILL
sinal 15 segundos após umSIGTERM
, portanto, os aplicativos devem ser desligados normalmente não mais do que 15 segundos após receber oSIGTERM
sinal. Se um aplicativo não for encerrado após 15 segundos, umSIGKILL
sinal será enviado para encerrar o processo e todos os processos filho. - Como os aplicativos do Databricks são executados como um usuário do sistema sem privilégios, eles não podem executar operações que exigem execução em um contexto de segurança privilegiado, como operações que exigem permissões de usuário raiz.
- As solicitações são encaminhadas de um proxy reverso, portanto, os aplicativos não devem depender das origens das solicitações. O ambiente de Aplicativos do Databricks define os parâmetros de configuração necessários para estruturas com suporte.
- 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 HTTP/2 (H2C).
- Os aplicativos do Databricks devem hospedar servidores HTTP e
0.0.0.0
usar oDATABRICKS_APP_PORT
número da porta especificado na variável de ambiente. Consulte variáveis de ambiente.