Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Bruges notebookutils.notebook til at administrere notesbogselementer programmatisk i Microsoft Fabric. Du kan oprette, hente, opdatere, slette og liste notesbogsartefakter for at automatisere implementering, livscyklusstyring og CI/CD-arbejdsgange.
Bemærkning
Disse API'er understøttes kun i Fabric-notebooks, ikke i Azure Synapse. Du skal have passende tilladelser i målarbejdsområdet for hver operation.
Følgende tabel viser de tilgængelige metoder til notebook-administration:
| Metode | Signatur | Beskrivelse |
|---|---|---|
create |
create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact |
Opretter en ny notesbog. |
get |
get(name, workspaceId): Artifact |
Henter en notesbog med navn eller ID. |
getDefinition |
getDefinition(name, workspaceId, format): String |
Henter notesbogens definition (indhold). |
update |
update(name, newName, description, workspaceId): Artifact |
Opdaterer notesbogens metadata. |
updateDefinition |
updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool |
Opdaterer notesbogsdefinitionen og lakehouse. |
delete |
delete(name, workspaceId): Boolean |
Sletter en notesbog. |
list |
list(workspaceId, maxResults): Array[Artifact] |
Lister alle notesbøger i et arbejdsområde. |
Opret en notesbog
Brug notebookutils.notebook.create() til at oprette en ny notesbogsartefakt i det nuværende arbejdsområde eller et specificeret arbejdsområde.
Bemærkning
Eksempler på arbejdsgange i denne artikel, hvor filer læses eller skrives .ipynb , bruger Python til fil-I/O. Kerne-API'erne notebookutils.notebook er tilgængelige i Python, PySpark, Scala og R, medmindre andet er angivet.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Visningsnavn for den nye notesbog. Det skal være unikt inden for arbejdsområdet. |
description |
String | Nej | Beskrivelse af notesbogen. Som standard står den tom. |
content |
Streng, bytes eller dict | Ja | Notesbogsindhold i gyldigt .ipynb JSON-format. Det kan også være rå bytes eller et dict-objekt.
Kan ikke være tom. |
defaultLakehouse |
String | Nej | Navn eller ID på det standard søhus, der skal vedhæftes. |
defaultLakehouseWorkspace |
String | Nej | Workspace ID for standard lakehouse. Lad det stå tomt for det nuværende arbejdsområde. |
workspaceId |
String | Nej | Mål-arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
Vigtigt!
Parameteren content kan ikke være tom. Du skal levere gyldigt .ipynb formatindhold, når du opretter en notesbog. Som minimum skal du give en gyldig tom notesbogsstruktur:
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}
Opret en notesbog ud fra en skabelon
# 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})")
Opret en notesbog med et 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ærdi
Metoden create() returnerer et Artifact objekt med følgende egenskaber:
-
displayName: Notesbogens displaynavn. -
id: Den unikke identifikator for den oprettede notesbog. -
description: Notesbogens beskrivelse.
Opret en notesbog i et andet arbejdsområde
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}")
Opret flere notesbøger ud fra en skabelon
# 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
Giv meningsfulde navne og beskrivelser til dine notesbøger, så de bliver lettere at finde. Brug en ensartet navngivningskonvention, som <Project>_<Purpose>_<Region> for eksempel ved automatiserede udrulninger.
Få en notesbog
Brug notebookutils.notebook.get() til at hente notesbogsmetadata efter navn eller ID. Den returnerer et Artifact objekt med egenskaber som displayName, id, og description.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Navn eller ID på den notesbog, der skal hentes. |
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
Få en notesbog fra det nuværende arbejdsområde
notebook = notebookutils.notebook.get("MyNotebook")
print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")
Få en notesbog fra et andet arbejdsområde
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ærdi
Metoden get() returnerer et Artifact objekt med følgende egenskaber:
-
displayName: Notesbogens displaynavn. -
id: Den unikke identifikator. -
description: Notesbogens beskrivelse.
Tips
Brug get() før opdatering eller sletning for at verificere, at målnotebooken eksisterer. Du kan også bruge den til at tjekke, om et notesbogsnavn allerede er i brug, før du opretter en ny.
Få en notesbogsdefinition
Brug notebookutils.notebook.getDefinition() den til at hente hele notesbogens indhold i .ipynb format. Brug det til backup, migration, versionskontrol eller indholdsanalyse.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Navn eller ID på notesbogen. |
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
format |
String | Nej | Outputformat. Er som "ipynb"standard . |
Hent og gem en notesbogsdefinition
# 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")
Få en notesbogsdefinition fra et andet arbejdsområde
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ærdi
Metoden getDefinition() returnerer en streng, der indeholder notesbogens indhold i .ipynb JSON-format.
Eksporter alle notebooks til backup
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()
Opdater en notesbog
Brug notebookutils.notebook.update() til at ændre notesbogens metadata, såsom dens visningsnavn og beskrivelse. Den ændrer ikke notebook-indholdet eller lakehouse-konfigurationen.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Nuværende navn eller ID på notesbogen. |
newName |
String | Ja | Nyt visningsnavn til notesbogen. |
description |
String | Nej | Opdateret beskrivelse. |
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
Omdøb en notesbog
updated_notebook = notebookutils.notebook.update(
name="OldNotebookName",
newName="NewNotebookName",
description="Updated description with more details"
)
print(f"Updated notebook: {updated_notebook.displayName}")
Returværdi
Metoden update() returnerer et Artifact objekt med de opdaterede egenskaber.
Opdater en notesbogsdefinition
Brug notebookutils.notebook.updateDefinition() den til at ændre notesbogsindhold, standard lakehouse eller begge dele. Brug den, når du skal ændre notesbogsdefinitionen i stedet for dens metadata.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Navn eller ID på den notesbog, der skal opdateres. |
content |
String | Nej | Nyt notesbogsindhold i .ipynb format. |
defaultLakehouse |
String | Nej | Nyt standard søhusnavn. |
defaultLakehouseWorkspace |
String | Nej | Workspace-ID for det nye standard lakehouse. Lad det stå tomt for det nuværende arbejdsområde. |
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
environmentId |
String | Nej | Miljø-ID til at vedhæfte til notesbogen. |
environmentWorkspaceId |
String | Nej | Arbejdsområde-ID for miljøet. Lad det stå tomt for det nuværende arbejdsområde. |
Bemærkning
Og-parametrene environmentIdenvironmentWorkspaceId er kun tilgængelige i Spark-notebookens runtime. Python-notebooks understøtter ikke disse parametre.
Opdater notesbogens indhold
# 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}")
Skift standard søhus
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
defaultLakehouse="NewLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Default lakehouse updated: {is_updated}")
Opdater både indhold og 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ærdi
Metoden updateDefinition() returnerer True , hvis opdateringen lykkes eller False fejler.
Tips
Brug update() til metadataændringer (navn, beskrivelse) samt updateDefinition() til indholds- og lakehouse-ændringer. Når du har brug for en fuld opdatering af både metadata og indhold, skal du kalde begge metoder i rækkefølge.
Slet en notesbog
Brug notebookutils.notebook.delete() den til permanent at fjerne en notesbog fra et arbejdsområde. Den returnerer True , hvis sletningen lykkes; ellers returnerer Falseden .
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
name |
String | Ja | Navn eller ID på notesbogen, der skal slettes. |
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
Vigtigt!
Sletning er permanent. Slettede notesbøger kan ikke gendannes. Verificér altid notesbogens navn, før du sletter den, og overvej først at tage backup af getDefinition() notesbogsdefinitionen.
Returværdi
Metoden delete() returneres True , hvis sletningen lykkes eller False fejler.
Slet en notesbog
is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")
if is_deleted:
print("Notebook deleted successfully")
else:
print("Failed to delete notebook")
Ryd sikkert op i notesbøger 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
For sikker massesletning, kør altid med dry_run=True first for at forhåndsvise, hvilke notesbøger der vil blive fjernet. Overvej at omdøbe notesbøger med et _TO_DELETE præfiks i stedet for at slette dem med det samme, så du kan gendanne dem, hvis det er nødvendigt.
Listenotatbøger
Brug notebookutils.notebook.list() den til at opregne notesbøger i et arbejdsområde. Den returnerer et array af Artifact objekter.
Parametre
| Parameter | Type | Påkrævet | Beskrivelse |
|---|---|---|---|
workspaceId |
String | Nej | Arbejdsområde-ID. Lad det stå tomt for det nuværende arbejdsområde. |
maxResults |
Int | Nej | Maksimalt antal resultater at returnere. Som standard er 1000. |
Vis alle notesbøger i det aktuelle arbejdsområde
notebooks = notebookutils.notebook.list()
print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
print(f" - {nb.displayName} (ID: {nb.id})")
Vis notesbøger i et andet arbejdsområde
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ærdi
Metoden list() returnerer et array af Artifact objekter. Hvert objekt indeholder displayName, id, og description egenskaber.
Filtrer notesbøger efter navnemø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}")
Klon en notesbog
Brug list() og getDefinition() sammen til at klone en notesbog inden for samme arbejdsområde eller til et andet arbejdsområde.
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")
Migrer en notesblok til et andet arbejdsområde
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")