Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Använd notebookutils.notebook för att hantera notebook-objekt programmatiskt i Microsoft Fabric. Du kan skapa, hämta, uppdatera, ta bort och lista notebook-artefakter för att automatisera distribution, livscykelhantering och CI/CD-arbetsflöden.
Anmärkning
Dessa API:er stöds endast i Fabric-notebook-filer, inte i Azure Synapse. Du måste ha rätt behörigheter på målarbetsytan för varje åtgärd.
I följande tabell visas de tillgängliga metoderna för hantering av notebook-filer:
| Metod | Signature | Beskrivning |
|---|---|---|
create |
create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact |
Skapar en ny anteckningsbok. |
get |
get(name, workspaceId): Artifact |
Hämtar en anteckningsbok efter namn eller ID. |
getDefinition |
getDefinition(name, workspaceId, format): String |
Hämtar notebook-definitionen (innehåll). |
update |
update(name, newName, description, workspaceId): Artifact |
Uppdaterar metadata för notebook-filer. |
updateDefinition |
updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool |
Uppdaterar notebook-definitionen och lakehouse. |
delete |
delete(name, workspaceId): Boolean |
Tar bort en notebook. |
list |
list(workspaceId, maxResults): Array[Artifact] |
Visar en lista över alla anteckningsböcker på en arbetsyta. |
Skapa en anteckningsbok
Använd notebookutils.notebook.create() för att skapa en ny notebook-artefakt på den aktuella arbetsytan eller en angiven arbetsyta.
Anmärkning
Arbetsflödesexempel i den här artikeln som läser eller skriver .ipynb filer använder Python för fil-I/O.
notebookutils.notebook Kärn-API:erna är tillgängliga i Python, PySpark, Scala och R om inget annat anges.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Visningsnamn för den nya anteckningsboken. Måste vara unik i arbetsytan. |
description |
String | No | Beskrivning av anteckningsboken. Standardvärdet är tomt. |
content |
Sträng, byte eller ordlista | Ja | Notebook-innehåll i giltigt .ipynb JSON-format. Kan också vara obearbetade byte eller ett ordboksobjekt.
Kan inte vara tom. |
defaultLakehouse |
String | No | Namn eller ID för standard lakehouse som ska bifogas. |
defaultLakehouseWorkspace |
String | No | Arbetsyte-ID för standard lakehouse. Lämna tom för den aktuella arbetsytan. |
workspaceId |
String | No | Målarbetsytans ID. Lämna tom för den aktuella arbetsytan. |
Viktigt!
Parametern content får inte vara tom. Du måste ange giltigt .ipynb formatinnehåll när du skapar en notebook-fil. Se till att tillhandahålla en giltig tom notebook-struktur åtminstone.
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}
Skapa en notebook-fil från en mall
# Read notebook template from a file
with open("/path/to/template.ipynb", "r") as f:
notebook_content = f.read()
# Create the notebook
notebook = notebookutils.notebook.create(
name="ProcessingNotebook",
description="Data processing notebook from template",
content=notebook_content
)
print(f"Created notebook: {notebook.displayName} (ID: {notebook.id})")
Skapa en notebook-fil med ett standard lakehouse
# Minimum valid notebook content - content cannot be empty
minimal_content = '''{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}'''
# Create notebook with default lakehouse configuration
notebook = notebookutils.notebook.create(
name="DataAnalysis",
description="Analysis notebook with lakehouse access",
content=minimal_content,
defaultLakehouse="MyLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Created notebook with lakehouse: {notebook.displayName}")
Returvärde
Metoden create() returnerar ett Artifact objekt med följande egenskaper:
-
displayName: Anteckningsbokens visningsnamn. -
id: Den unika identifieraren för den skapade notebook-filen. -
description: Anteckningsbokens beskrivning.
Skapa en notebook-fil på en annan arbetsyta
with open("/path/to/notebook.ipynb", "r") as f:
content = f.read()
notebook = notebookutils.notebook.create(
name="SharedNotebook",
description="Notebook for the shared workspace",
content=content,
workspaceId="bbbbbbbb-2222-3333-4444-cccccccccccc"
)
print(f"Created in remote workspace: {notebook.displayName}")
Skapa flera notebook-filer från en mall
# Load template content (must be valid .ipynb)
with open("/path/to/template.ipynb", "r") as f:
template_content = f.read()
regions = ["US", "EU", "Asia"]
created_notebooks = []
for region in regions:
notebook = notebookutils.notebook.create(
name=f"Process_{region}",
description=f"Processing notebook for {region} region",
content=template_content,
defaultLakehouse=f"Lakehouse_{region}"
)
created_notebooks.append(notebook)
print(f"Created: {notebook.displayName}")
print(f"\nCreated {len(created_notebooks)} notebooks")
Tips/Råd
Ange meningsfulla namn och beskrivningar för dina anteckningsböcker så att de blir enklare att hitta. Använd en konsekvent namngivningskonvention, till exempel <Project>_<Purpose>_<Region> för automatiserade distributioner.
Hämta en notebook
Använd notebookutils.notebook.get() för att hämta metadata för notebook-filer efter namn eller ID. Det returnerar ett Artifact objekt med egenskaper som displayName, idoch description.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Namn eller ID för anteckningsboken som ska hämtas. |
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
Hämta en notebook-fil från den aktuella arbetsytan
notebook = notebookutils.notebook.get("MyNotebook")
print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")
Hämta en notebook-fil från en annan arbetsyta
workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
notebook = notebookutils.notebook.get("SharedNotebook", workspaceId=workspace_id)
print(f"Retrieved: {notebook.displayName} from workspace {workspace_id}")
Returvärde
Metoden get() returnerar ett Artifact objekt med följande egenskaper:
-
displayName: Anteckningsbokens visningsnamn. -
id: Den unika identifieraren. -
description: Anteckningsbokens beskrivning.
Tips/Råd
Använd get() före uppdaterings- eller borttagningsåtgärder för att verifiera att målanteckningsboken finns. Du kan också använda det för att kontrollera om ett notebook-namn redan används innan du skapar ett nytt.
Hämta en notebook-definition
Använd notebookutils.notebook.getDefinition() för att hämta det fullständiga notebook-innehållet i .ipynb formatet. Använd den för säkerhetskopiering, migrering, versionskontroll eller innehållsanalys.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Namn eller ID på anteckningsboken. |
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
format |
String | No | Utdataformat. Standardinställningen är "ipynb". |
Hämta och spara en notebook-definition
# Retrieve notebook definition as .ipynb content
notebook_content = notebookutils.notebook.getDefinition("MyNotebook")
# Save to a file for backup
with open("/path/to/backup/MyNotebook.ipynb", "w") as f:
f.write(notebook_content)
print("Notebook definition retrieved and saved")
Hämta en notebook-definition från en annan arbetsyta
workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebook_content = notebookutils.notebook.getDefinition(
name="SharedNotebook",
workspaceId=workspace_id,
format="ipynb"
)
print(f"Retrieved definition from workspace {workspace_id}")
Returvärde
Metoden getDefinition() returnerar en sträng som innehåller notebook-innehållet i .ipynb JSON-format.
Exportera alla notebook-filer för säkerhetskopiering
import os
from datetime import datetime
def export_all_notebooks(backup_dir="/path/to/backups"):
"""Export all notebooks in the workspace for backup."""
timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
export_dir = f"{backup_dir}/backup_{timestamp}"
os.makedirs(export_dir, exist_ok=True)
notebooks = notebookutils.notebook.list()
print(f"Exporting {len(notebooks)} notebooks to {export_dir}")
exported_count = 0
for nb in notebooks:
try:
content = notebookutils.notebook.getDefinition(nb.displayName)
filename = f"{export_dir}/{nb.displayName}.ipynb"
with open(filename, "w") as f:
f.write(content)
exported_count += 1
print(f"Exported: {nb.displayName}")
except Exception as e:
print(f"Failed to export {nb.displayName}: {e}")
print(f"\nExported {exported_count} of {len(notebooks)} notebooks")
return export_dir
backup_location = export_all_notebooks()
Uppdatera en notebook
Använd notebookutils.notebook.update() för att ändra metadata för notebook-filer, till exempel visningsnamn och beskrivning. Det ändrar inte notebook-innehåll eller lakehouse-konfiguration.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Aktuellt namn eller ID för anteckningsboken. |
newName |
String | Ja | Nytt visningsnamn för anteckningsboken. |
description |
String | No | Uppdaterad beskrivning. |
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
Byta namn på en anteckningsbok
updated_notebook = notebookutils.notebook.update(
name="OldNotebookName",
newName="NewNotebookName",
description="Updated description with more details"
)
print(f"Updated notebook: {updated_notebook.displayName}")
Returvärde
Metoden update() returnerar ett Artifact objekt med de uppdaterade egenskaperna.
Uppdatera en notebook-definition
Använd notebookutils.notebook.updateDefinition() för att ändra innehållet i notebook, det förvalda lakehouset, eller båda. Använd den när du behöver ändra notebook-definitionen i stället för dess metadata.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Namn eller ID för anteckningsboken som ska uppdateras. |
content |
String | No | Nytt anteckningsboksinnehåll i .ipynb-format. |
defaultLakehouse |
String | No | Nytt standardnamn för lakehouse. |
defaultLakehouseWorkspace |
String | No | Arbetsyte-ID för det nya standardsjöhuset. Lämna tom för den aktuella arbetsytan. |
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
environmentId |
String | No | Miljö-ID som ska kopplas till notebook-filen. |
environmentWorkspaceId |
String | No | Arbetsområdes-ID för miljön. Lämna tom för den aktuella arbetsytan. |
Anmärkning
Parametrarna environmentId och environmentWorkspaceId är endast tillgängliga i Spark Notebook-körningen. Python-notebook-filer stöder inte dessa parametrar.
Uppdatera notebook-innehåll
# Load new content
with open("/path/to/updated_notebook.ipynb", "r") as f:
new_content = f.read()
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
content=new_content
)
print(f"Notebook definition updated: {is_updated}")
Ändra standardinställningen för lakehouse
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
defaultLakehouse="NewLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Default lakehouse updated: {is_updated}")
Uppdatera både innehåll och lakehouse
with open("/path/to/new_version.ipynb", "r") as f:
new_content = f.read()
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
content=new_content,
defaultLakehouse="ProductionLakehouse",
defaultLakehouseWorkspace=""
)
print(f"Notebook fully updated: {is_updated}")
Returvärde
Metoden updateDefinition() returnerar True om uppdateringen lyckas eller False om den misslyckas.
Tips/Råd
Använd update() för ändringar av metadata (namn, beskrivning) och updateDefinition() för ändringar i innehåll och lakehouse. När du behöver en fullständig uppdatering av både metadata och innehåll anropar du båda metoderna i följd.
Ta bort en anteckningsbok
Använd notebookutils.notebook.delete() för att permanent ta bort en notebook-fil från en arbetsyta. Den returnerar True om borttagningen lyckas. Annars returneras False.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
name |
String | Ja | Namn eller ID för anteckningsboken som ska tas bort. |
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
Viktigt!
Borttagningen är permanent. Det går inte att återställa borttagna anteckningsböcker. Kontrollera alltid notebook-namnet innan du tar bort och överväg att säkerhetskopiera notebook-definitionen med getDefinition() först.
Returvärde
Metoden delete() returnerar True om borttagningen lyckas eller False om den misslyckas.
Ta bort en anteckningsbok
is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")
if is_deleted:
print("Notebook deleted successfully")
else:
print("Failed to delete notebook")
Rensa notebook-filer på ett säkert sätt efter mönster
def cleanup_notebooks(name_pattern, dry_run=True):
"""Delete notebooks matching a name pattern."""
notebooks = notebookutils.notebook.list()
to_delete = [nb for nb in notebooks if name_pattern in nb.displayName]
print(f"Found {len(to_delete)} notebooks matching '{name_pattern}':")
for nb in to_delete:
print(f" - {nb.displayName}")
if dry_run:
print("\nDRY RUN - No notebooks deleted")
return
deleted_count = 0
for nb in to_delete:
if notebookutils.notebook.delete(nb.displayName):
deleted_count += 1
print(f"Deleted: {nb.displayName}")
else:
print(f"Failed to delete: {nb.displayName}")
print(f"\nDeleted {deleted_count} of {len(to_delete)} notebooks")
# Always run with dry_run=True first to preview
cleanup_notebooks("temp_", dry_run=True)
Tips/Råd
För säker massborttagning kör du alltid med dry_run=True först för att förhandsgranska vilka anteckningsböcker som kommer att tas bort. Överväg att byta namn på notebook-filer med ett _TO_DELETE prefix i stället för att ta bort dem omedelbart, så att du kan återställa dem om det behövs.
Lista anteckningsböcker
Använd notebookutils.notebook.list() för att räkna upp anteckningsböcker på en arbetsyta. Den returnerar en matris med Artifact objekt.
Parameters
| Parameter | Type | Obligatoriskt | Beskrivning |
|---|---|---|---|
workspaceId |
String | No | Arbetsyte-ID. Lämna tom för den aktuella arbetsytan. |
maxResults |
Int | No | Maximalt antal resultat som ska returneras. Standardinställningen är 1000. |
Visa en lista över alla anteckningsböcker i den aktuella arbetsytan
notebooks = notebookutils.notebook.list()
print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
print(f" - {nb.displayName} (ID: {nb.id})")
Visa en lista över anteckningsböcker på en annan arbetsyta
workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebooks = notebookutils.notebook.list(workspaceId=workspace_id)
print(f"Found {len(notebooks)} notebooks in workspace {workspace_id}")
Returvärde
Metoden list() returnerar en matris med Artifact objekt. Varje objekt innehåller displayNameegenskaperna , idoch description .
Filtrera notebook-filer efter namnmönster
all_notebooks = notebookutils.notebook.list()
# Filter for notebooks that start with a specific prefix
processing_notebooks = [nb for nb in all_notebooks if nb.displayName.startswith("Process_")]
print(f"Found {len(processing_notebooks)} processing notebooks:")
for nb in processing_notebooks:
print(f" - {nb.displayName}")
Klona en notebook
Använd list() och getDefinition() tillsammans för att klona en notebook-fil på samma arbetsyta eller till en annan arbetsyta.
def clone_notebook(source_name, target_name, target_workspace=""):
"""Clone a notebook by retrieving its content and creating a copy."""
source = notebookutils.notebook.get(source_name)
content = notebookutils.notebook.getDefinition(source_name)
cloned = notebookutils.notebook.create(
name=target_name,
description=f"Clone of {source_name}",
content=content,
workspaceId=target_workspace
)
print(f"Cloned {source_name} to {cloned.displayName}")
return cloned
cloned_notebook = clone_notebook("TemplateNotebook", "NewInstance")
Migrera en notebook-fil till en annan arbetsyta
def migrate_notebook(name, target_workspace_id, new_name=None):
"""Migrate a notebook from the current workspace to another workspace."""
content = notebookutils.notebook.getDefinition(name)
target_name = new_name if new_name else name
migrated = notebookutils.notebook.create(
name=target_name,
description=f"Migrated from {name}",
content=content,
workspaceId=target_workspace_id
)
print(f"Migrated {name} to workspace {target_workspace_id} as {target_name}")
return migrated
target_ws = "dddddddd-4444-5555-6666-eeeeeeeeeeee"
migrated_nb = migrate_notebook("DataPipeline", target_ws, "DataPipeline_v2")