Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A proteção de acesso de saída do workspace permite um controle preciso sobre comunicações externas de workspaces do Microsoft Fabric. Quando esse recurso está habilitado, os itens do espaço de trabalho de engenharia de dados, como notebooks, definições de trabalhos do Spark e lakehouses, são impedidos de fazer conexões de saída com pontos de extremidade públicos, a menos que o acesso seja explicitamente concedido por meio de pontos de extremidade privados aprovados e gerenciados. Essa funcionalidade é crucial para organizações em ambientes seguros ou regulamentados, pois ajuda a impedir a exfiltração de dados e impõe limites de rede organizacional.
Noções básicas sobre a proteção de acesso de saída com engenharia de dados
Quando a proteção de acesso de saída está habilitada, todas as conexões de saída do workspace são bloqueadas por padrão. Os administradores do workspace podem criar exceções para conceder acesso apenas a destinos aprovados configurando pontos de extremidade privados gerenciados:
Configurando a proteção de acesso externo para engenharia de dados
Para configurar a proteção de acesso de saída na área de engenharia de dados:
Siga as etapas para habilitar a proteção de acesso de saída.
Depois de habilitar a proteção de acesso de saída, você pode configurar pontos de extremidade privados gerenciados para permitir o acesso de saída a outros espaços de trabalho ou recursos externos, conforme necessário.
Depois de configurados, os itens de engenharia de dados só podem se conectar aos pontos de extremidade privados gerenciados aprovados, enquanto todas as outras conexões de saída permanecem bloqueadas.
Tipos de item de engenharia de dados com suporte
Os seguintes tipos de itens de engenharia de dados são compatíveis com a proteção de acesso de saída:
- Casas de lago
- Notebooks
- Definições de trabalho do Spark
- Environments
As seções a seguir explicam como a proteção de acesso de saída afeta tipos de item de engenharia de dados específicos em seu workspace.
Notebooks
Quando a proteção de acesso de saída está habilitada em um workspace, os notebooks só podem fazer referência a um destino se um ponto de extremidade privado gerenciado estiver configurado do workspace para o destino.
| Source | Destino | Um ponto de extremidade privado gerenciado está configurado? | O notebook ou a tarefa do Spark podem se conectar ao destino? |
|---|---|---|---|
| Caderno (Espaço de Trabalho A) | Lakehouse (Workspace B) | Sim, um ponto de extremidade privado gerenciado entre workspaces de A para B é configurado em A | Yes |
| Caderno (Espaço de Trabalho A) | Lakehouse (Workspace B) | Não | Não |
| Caderno (Espaço de Trabalho A) | ADLS (Azure Data Lake Storage) G2/outra fonte de dados externa | Sim, um ponto de extremidade privado gerenciado é configurado de A para a fonte de dados externa | Yes |
| Caderno (Espaço de Trabalho A) | Fonte de dados externa do ADLS G2/outra | Não | Não |
Noções básicas sobre o comportamento do caminho do arquivo em notebooks do Fabric
Ao acessar dados em seu Lakehouse a partir de um notebook do Fabric, você pode usar caminhos relativos ou caminhos totalmente qualificados (absolutos) para referenciar arquivos. Entender as diferenças é importante para um acesso bem-sucedido a dados, especialmente ao trabalhar entre diferentes espaços de trabalho.
Caminhos relativos
Caminhos relativos são a maneira mais simples e comum de referenciar arquivos no seu Lakehouse atual. Quando você arrasta e solta um arquivo do Lakehouse Explorer para uma célula de notebook, um caminho relativo é usado automaticamente.
Example:
Files/people.csv
Código do Spark:
df = spark.read.format("csv").option("header", "true").load("Files/people.csv")
Caminhos relativos funcionam fora da caixa e não exigem nenhuma configuração adicional.
Caminhos totalmente qualificados (absolutos)
Caminhos totalmente qualificados especificam o local completo de um arquivo, incluindo informações do workspace e do Lakehouse. No entanto, o uso de nomes de exibição nesses caminhos pode causar erros, como tempos limite de soquete, porque a sessão do Spark não pode resolvê-los por padrão.
Exemplo incorreto (falhará):
abfss://your_workspace@onelake.dfs.fabric.microsoft.com/your_lakehouse.Lakehouse/Files/people.csv
Acessando dados entre espaços de trabalho
Para acessar arquivos em um Lakehouse localizado em um workspace diferente, use um caminho totalmente qualificado que inclui a ID do Workspace e a ID do Lakehouse (não seus nomes de exibição). Isso garante que o Spark possa resolver o caminho e acessar os dados.
Formato de URI correto:
abfss://<workspace_id>@onelake.dfs.fabric.microsoft.com/<lakehouse_id>/Files/people.csv
Exemplo de código do Spark:
df = spark.read.format("csv").option("header", "true").load("abfss://4c8efb42-7d2a-4a87-b1b1-e7e98bea053d@onelake.dfs.fabric.microsoft.com/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/Files/people.csv")
Como localizar IDs do Workspace e Lakehouse
-
ID do workspace: O GUID depois de
/groups/na URL do workspace do Fabric. -
ID do Lakehouse: O GUID depois de
/lakehouses/na URL.
URL de exemplo:
https://app.fabric.microsoft.com/groups/4c8efb42-7d2a-4a87-b1b1-e7e98bea053d/lakehouses/5a0ffa3d-80b9-49ce-acd2-2c9302cce6b8/...
Observação
Sempre use o Workspace ID e o Lakehouse ID no URI ao acessar dados em diferentes workspaces.
Trabalhos do Spark
Quando a proteção de acesso de saída do espaço de trabalho está habilitada, os clusters Spark são impedidos de estabelecer conexões de saída com a internet pública. Isso inclui:
- Instalando pacotes do Python diretamente do PyPI usando
pip install - Acessando domínios públicos, como
https://login.microsoftonline.com - Conectando-se a APIs ou websites externos
O Microsoft Fabric impõe essa restrição por meio de VNETs (Redes Virtuais Gerenciadas), que isolam clusters Spark de redes externas, a menos que o acesso explícito seja concedido.
Conectividade segura com pontos de extremidade privados gerenciados
Para permitir que os clusters Spark se conectem a recursos externos, mantendo a segurança, você deve usar pontos de extremidade privados gerenciados. Esses pontos finais permitem conexões seguras e autorizadas para:
- Serviços externos (por exemplo, Banco de Dados SQL do Azure, Armazenamento de Blobs do Azure)
- Outros workspaces do Fabric no mesmo locatário
Somente conexões estabelecidas por meio de pontos de extremidade privados gerenciados e aprovados são permitidas. Todas as outras tentativas de acesso de saída são bloqueadas por padrão.
Instalando bibliotecas com segurança em workspaces protegidos de acesso de saída
Como o Fabric bloqueia o tráfego público da Internet, os clusters Spark não podem instalar diretamente pacotes do PyPI usando pip install.
Você tem duas opções seguras para instalar bibliotecas em um workspace com a proteção de acesso de saída habilitada:
Carregar e usar arquivos de roda: Prepare manualmente os arquivos de roda do pacote python necessários em um recurso de computação confiável e carregue-os no ambiente do Fabric. Esse método garante que apenas os pacotes aprovados sejam instalados e evite o acesso público à Internet.
Hospede um espelho PyPI privado: Configure um repositório PyPI privado no Armazenamento do Azure e sincronize-o com pacotes selecionados do índice PyPI público. Configure seu ambiente do Fabric para instalar pacotes desse espelho privado usando pontos de extremidade privados gerenciados, mantendo a conformidade com as políticas de segurança de rede.
Escolha a abordagem que melhor atende aos requisitos da sua organização para gerenciamento e segurança de pacotes.
Opção 1: Carregar e usar arquivos de roda
Identifique os pacotes ausentes não incluídos no Fabric Spark Runtime.
Execute o script a seguir no recurso de computação para configurar um ambiente python local que seja o mesmo que o runtime do Microsoft Fabric Spark 1.3. Esse script requer um arquivo YAML que contém uma lista de todas as bibliotecas incluídas no ambiente pré-configurado.
Certifique-se de que as bibliotecas privadas hospedadas pela Microsoft sejam removidas desse YAML.
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ export PATH="/usr/lib/miniforge3/bin:$PATH" sudo apt-get update sudo apt-get -yq install gcc g++ conda env create -n <custom-env-name> -f Python<version>-CPU.yml source activate <custom-env-name>O script pode ser usado para passar seu arquivo requirements.txt, que tem todos os pacotes e versões que você pretende instalar no runtime do Spark. Ele imprime os nomes dos novos arquivos/dependências de roda para seus requisitos de biblioteca de entrada.
pip install -r <input-user-req.txt> > pip_output.txt cat pip_output.txt | grep "Using cached *"Baixe
.whlarquivos manualmente.Use o Artefato de Ambiente para carregar todas as rodas necessárias.
Anexe o ambiente a notebooks ou trabalhos.
Opção 2: hospedar um espelho de PyPI privado no Armazenamento do Azure
Pré-requisitos
- Recursos de computação, como um computador de desenvolvimento do Linux, O Subsistema do Windows para Linux (WSL) ou uma VM (máquina virtual) do Azure.
- Conta de Armazenamento do Azure para armazenar os pacotes espelhados.
- Utilidades:
- Bandersnatch: ferramenta de espelhamento PyPI para sincronização de repositório. Consulte a documentação do Bandersnatch.
- CLI do Azure, Blobfuse2 ou AzCopy: utilitários para carregar e sincronizar arquivos com o Armazenamento do Azure.
Sincronização inicial do repositório PyPI
Como uma etapa inicial, você precisa executar uma sincronização do repositório PyPI. O repositório PyPI completo contém um grande número de pacotes e está se expandindo continuamente, portanto, o download inicial pode levar de 8 a 48 horas, dependendo do hardware e da rede. Para obter o tamanho do repositório atual e as contagens de pacotes, consulte Estatísticas · PyPI.
Maintenance
O monitoramento periódico e as atualizações são necessárias para manter o espelho em sincronia. Os seguintes fatores afetam a velocidade de sincronização:
- Velocidade da rede.
- Recursos de servidor, como CPU, memória e E/S de disco no recurso de computação que executa o Bandersnatch.
- A velocidade do disco (SSD vs. HDD) afeta a rapidez com que o Bandersnatch grava dados.
- Configuração inicial versus sincronização de manutenção: a sincronização inicial baixa todo o repositório e pode levar de 8 a 48 horas, mas as sincronizações subsequentes são mais rápidas porque só atualizam pacotes novos ou alterados.
Etapas de instalação
Configure uma máquina de desenvolvimento de VM do Linux ou do Subsistema do Windows para Linux (WSL).
wget https://repo.anaconda.com/miniconda/Miniconda3-py310_24.1.2-0-Linux-x86_64.sh bash Miniconda3-py310_24.1.2-0-Linux-x86_64.sh chmod 755 -R /usr/lib/miniforge3/ # Add Python executable to PATH export PATH="/usr/lib/miniforge3/bin:$PATH"Instale o Bandersnatch para espelhar o PyPI. Bandersnatch é uma ferramenta de espelhamento PyPI que baixa todo o repositório PyPI e arquivos de índice associados no sistema de arquivos local.
# Install Bandersnatch pip install bandersnatchConfigurar Bandersnatch: criar um arquivo bandersnatch.conf com as configurações especificadas no exemplo no GitHub em bandersnatch/src/bandersnatch/example.conf.
Execute um comando espelho para executar uma sincronização única com o servidor primário PyPI.
bandersnatch --config <path-to-bandersnatch.conf> mirrorEsse comando cria os seguintes subdiretórios em seu diretório espelho no sistema de arquivos local.
Observação
A sincronização inicial leva tempo para ser executada (consulte Estatísticas · PyPI). O Bandersnatch também dá suporte ao espelhamento seletivo usando plug-ins de lista de permissões e de lista de bloqueios, permitindo um gerenciamento mais eficiente de dependências. Ao filtrar pacotes desnecessários, você pode reduzir o tamanho do espelho, minimizando o custo e o esforço de manutenção. Por exemplo, se o espelho for destinado exclusivamente ao Fabric, você poderá excluir binários do Windows para otimizar o armazenamento. Recomendamos avaliar essas opções de filtragem com base em seu caso de uso.
Veja também a filtragem de espelho — documentação do Bandersnatch.
Para verificar a configuração do espelho, você pode usar um servidor HTTP para atender ao espelho PyPI local. Esse comando inicia um servidor HTTP simples na porta 8000 que atende ao conteúdo do diretório espelho:
cd <directory-to-mirror> python -m http.server 8000Configure o pip para usar o espelho PyPI local:
pip install <package> -index-url http://localhost:8000/simpleCarregue o Espelho na conta de armazenamento e selecione Habilitar Site Estático em sua conta de armazenamento do Azure. Essa configuração permite que você hospede conteúdo estático como PyPI na página de índice. Habilitar essa configuração gera automaticamente um contêiner chamado $web.
Você pode usar a CLI do Azure ou o AzCopy do blobfuse2 para carregar o espelho local do computador de desenvolvimento para sua conta de armazenamento do Azure.
- Carregue a pasta de pacotes no contêiner escolhido no contêiner da conta de armazenamento.
- Carregue pastas simples, PyPI, estatísticas locais e JSON para $web contêiner de sua conta de armazenamento.
Para usar esse espelho no item de ambiente do Fabric, crie dois pontos de extremidade privados gerenciados no Fabric:
- Um para o contêiner de blob (pacotes)
- Um para o site estático (índice)
Use o Artefato do Ambiente para especificar um arquivo yml para instalar o gerenciamento de biblioteca em ambientes do Fabric.
dependencies: - pip - pip: - pytest==8.2.2 - --index-url https://<storage-account-name>.z5.web.core.windows.net/simpleOu você pode instalar pacotes diretamente em um notebook usando o
%pip installcomando:
%pip install pytest --index-url https://<storage-account-name>.z5.web.core.windows.net/simple
Esquemas lakehouse e proteção de acesso de saída
Os lakehouses que usam esquemas têm suporte total quando acessados de itens dentro do mesmo workspace, inclusive quando a proteção de acesso de saída está habilitada.
Em cenários de acesso entre espaços de trabalho, o comportamento difere dependendo de como o Lakehouse é acessado quando a proteção para acesso de saída é habilitada no espaço de trabalho consumidor.
Cenários com suporte
- Os itens de produtor e consumidor estão no mesmo espaço de trabalho
- O Lakehouse usa esquemas
- O acesso é executado usando APIs baseadas em DataFrame do Spark
Nesses cenários, as operações de esquema Lakehouse funcionam conforme o esperado.
Comportamento entre espaços de trabalho com proteção do acesso de saída habilitada
Quando a proteção de acesso de saída é habilitada em um workspace e um Lakehouse habilitado para esquema é acessado de um workspace diferente, o seguinte comportamento se aplica:
- ✅ O acesso usando APIs de DataFrame do Spark (por exemplo, leitura de tabelas em DataFrames) continua funcionando
- ❌ O acesso usando instruções SQL do Spark pode falhar.
Por exemplo,
spark.read.table()é bem-sucedido, enquantoSELECT * FROM tablepode falhar em cenários entre espaços de trabalho quando a proteção de acesso de saída está habilitada.
Noções básicas sobre o comportamento dos caminhos de arquivo
Ao trabalhar com dados em seu Lakehouse usando um bloco de anotações do Fabric, você pode referenciar arquivos de duas maneiras principais:
Se o workspace tiver a proteção de acesso de saída habilitada, ele usará VNETs (redes virtuais gerenciadas) para Spark. Nesse caso, os pools de início estão desabilitados e você deve esperar que as sessões do Spark levem de 3 a 5 minutos para serem iniciadas.
Com a proteção de acesso de saída, todo o acesso público do Spark é bloqueado. Essa restrição impede que os usuários baixem bibliotecas diretamente de canais públicos, como PyPI usando pip. Para instalar bibliotecas para seus trabalhos de Engenharia de Dados, os usuários têm duas opções (para obter detalhes, consulte Instalar bibliotecas com segurança em workspaces protegidos de acesso de saída):
Referencie pacotes de biblioteca de uma fonte de dados conectada ao workspace do Fabric por meio de um ponto de extremidade privado gerenciado.
Carregue arquivos de roda para suas dependências e bibliotecas necessárias (que ainda não estão incluídas no runtime pré-configurado).
Habilitar a proteção de acesso de saída bloqueia todo o acesso público do seu workspace. Portanto, para consultar um Lakehouse de outro workspace, você deve criar um ponto de extremidade privado gerenciado entre workspaces para permitir que os trabalhos do Spark estabeleçam uma conexão.
Usar caminhos totalmente qualificados com nomes de workspace e lakehouse pode causar uma exceção de tempo limite do soquete. Para acessar arquivos, use caminhos relativos para o Lakehouse atual ou utilize um caminho totalmente qualificado que inclua a ID do workspace e a ID do Lakehouse (não seus nomes de exibição). Essa abordagem garante que a sessão do Spark possa resolver o caminho corretamente e evita erros de tempo limite do soquete. Saiba mais.