Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Pode usar um pipeline para estabelecer comunicação transversal entre espaços de trabalho entre um espaço de trabalho aberto e um espaço de trabalho que restrinja a entrada pública. Por exemplo, é possível criar um pipeline num espaço de trabalho aberto para aceder a um lakehouse num espaço de trabalho com entradas restritas. Esta configuração permite que o notebook no Workspace 1 aceda de forma segura ao Lakehouse e leia as tabelas Delta Lake no Workspace 2 sem as expor ao acesso público.
Etapa 1: Criar os espaços de trabalho
Você precisa de um espaço de trabalho aberto e um espaço de trabalho restrito. Este artigo refere-se aos espaços de trabalho da seguinte forma:
- O espaço de trabalho de origem é o espaço de trabalho aberto sem restrições de acesso público. É onde se cria um pipeline.
- O espaço de trabalho alvo é o espaço de trabalho restrito com restrição de acesso público de entrada. É onde se cria a casa do lago.
Para criar os espaços de trabalho, siga estas etapas:
Crie dois espaços de trabalho no Microsoft Fabric. Para obter detalhes, consulte Criar um espaço de trabalho.
Nas configurações do arrendatário, habilite a proteção de acesso de entrada ao nível do espaço de trabalho.
Para o espaço de trabalho de destino, configure links privados no nível do espaço de trabalho.
Etapa 2: Criar uma casa de lago no espaço de trabalho restrito
Crie um lakehouse no espaço de trabalho de destino (restrito) usando a seguinte Create Lakehouse API:
POST https://{workspaceid}.z{xy}.w.api.fabric.microsoft.com/workspaces/{workspaceID}/lakehouses
Etapa 3: Criar um ponto de extremidade privado gerenciado
Crie um endpoint privado gerido no espaço de trabalho de origem (aberto). Use a definição Workspace no portal ou a seguinte API:
POST https://{workspaceFQDN}/v1/workspaces/{workspaceID}/managedPrivateEndpoints
Nesse código, {workspaceFQDN} é {workspaceID}.z{xy}.w.api.fabric.microsoft.com.
Por exemplo: POST https://aaaaaaaa000011112222bbbbbbbbbbbb.zaa.w.api.fabric.microsoft.com/v1/workspaces/aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb/managedPrivateEndpoints.
O targetPrivateLinkResourceId parâmetro é o ID de recurso do serviço Azure Private Link no espaço de trabalho restrito. Para criar um endpoint privado gerido para o workspace alvo, precisa deste ID de recurso.
Pode encontrar este ID de recurso no Azure visualizando o JSON do recurso para o espaço de trabalho. Verifique se o ID do espaço de trabalho no JSON corresponde ao espaço de trabalho de destino pretendido.
O proprietário do serviço de ligação privada para o Workspace 2 precisa de aprovar o pedido de um endpoint privado gerido no centro >Ligações pendentes.
Passo 4: Carregar uma tabela Delta Lake para o lakehouse
Use o Azure Storage Explorer para carregar a pasta da sua tabela Delta Lake para o armazenamento gerido da casa do lago restrito:
Vai ao Explorador de Armazenamento, seleciona o ícone de ligação no menu esquerdo e depois seleciona contentor ou diretório ADLS Gen2.
Inicia sessão usando o OAuth.
Introduza um nome de exibição para o armazenamento e introduza o URL do contentor blob no seguinte formato:
https://{workspaceID}.z{xy}.onelake.fabric.microsoft.com/{workspaceID}/{lakehouseID}Nesse código,
workspaceIDé o ID do espaço de trabalho sem traços, e{xy}são os dois primeiros caracteres do ID do espaço de trabalho.Selecione Conectar. O armazenamento deve agora aparecer na vista de explorador.
Na pasta Tabelas , carrega a tabela Delta Lake que queres usar. Este exemplo usa a tabela customers .
Passo 5: Crie um caderno no espaço de trabalho restrito
Crie um bloco de notas que leia a partir da tabela e escreva numa nova tabela. Para isso, crie um caderno num espaço de trabalho aberto usando a interface:
No espaço de trabalho aberto, cria uma casa do lago com a mesma mesa e um caderno semelhante usando a interface.
Liga a casa do lago no caderno e executa o script para criar uma nova tabela:
df = spark("SELECT * FROM Lakehouse_Open.customers") display(df) df.write.mode("overwrite").saveAsTable("Lakehouse_Open.customersnew")Guarda o caderno.
Recupere a definição do notebook via API e obtenha o resultado da localização:
Get Notebook Definition API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks/getDefinition Get location API: GET {location}/resultConverte
notebook-content.pyde Base64 para JSON, copia o conteúdo convertido e depois converte o conteúdo de volta de JSON para Base64 depois de atualizares os valores seguintes com os valores do lakehouse restrito.Crie um caderno com a definição usando o corpo do pedido atualizado:
Create Notebook API: GET https://{WorkspaceID w/o (-)}.zxy.w.api.fabric.microsoft.com/{WorkspaceID}/notebooks Get location API: GET {location}/result
Passo 6: Crie um pipeline no espaço de trabalho aberto
No espaço de trabalho aberto, crie um pipeline usando o portal Fabric ou API.
Adiciona uma atividade de caderno.
Nas Definições, cria uma ligação.
Selecione o espaço de trabalho restrito.
Adicione o ID do caderno como parâmetro:
@pipeline().parameters.notebookIdNos parâmetros do pipeline, introduza o ID real do notebook do espaço de trabalho restrito.
Guardar o pipeline e copiar o ID do pipeline.
Passo 7: Executar o pipeline via API
Ative o pipeline usando a API. Por exemplo, usa o Bruno.
Aqui está o formato do endpoint API para a execução do pipeline:
https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{openWsId}/items/{pipelineId}/jobs/instances?jobType=Pipeline` Get location API: GET {location}Aguarde que o estado da execução termine. Podes verificar o estado na página do Monitor no portal do Fabric.
Passo 8: Verificar a criação da tabela
Abra o Storage Explorer no lakehouse do espaço de trabalho restrito.
Confirme se a nova tabela foi criada.
Usar a API List Tables para obter as tabelas do lakehouse:
List Tables API: GET https://{openWsIdWithoutDashes}.zxy.w.api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{lakehouseId}/tables