Merk
Tilgang til denne siden krever autorisasjon. Du kan prøve å logge på eller endre kataloger.
Tilgang til denne siden krever autorisasjon. Du kan prøve å endre kataloger.
Brukes notebookutils.notebook til å administrere notatbøker programmert i Microsoft Fabric. Du kan opprette, hente ut, oppdatere, slette og liste notatbokartefakter for å automatisere distribusjon, livssyklusstyring og CI/CD-arbeidsflyter.
Bemerkning
Disse API-ene støttes kun i Fabric-notatbøker, ikke i Azure Synapse. Du må ha passende tillatelser i målarbeidsområdet for hver operasjon.
Følgende tabell viser tilgjengelige metoder for notatbokhåndtering:
| Metode | Signatur | Beskrivelse |
|---|---|---|
create |
create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact |
Lager en ny notatbok. |
get |
get(name, workspaceId): Artifact |
Henter en notatbok med navn eller ID. |
getDefinition |
getDefinition(name, workspaceId, format): String |
Henter notatbokdefinisjonen (innholdet). |
update |
update(name, newName, description, workspaceId): Artifact |
Oppdaterer notatbokmetadata. |
updateDefinition |
updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool |
Oppdaterer notatbokdefinisjonen og lakehouse. |
delete |
delete(name, workspaceId): Boolean |
Sletter en notatblokk. |
list |
list(workspaceId, maxResults): Array[Artifact] |
Lister opp alle notatbøker i et arbeidsområde. |
Opprette en notatblokk
Bruk notebookutils.notebook.create() til å opprette en ny notatbok-artefakt i det nåværende arbeidsområdet eller et spesifisert arbeidsområde.
Bemerkning
Arbeidsflyteksempler i denne artikkelen som leser eller skriver .ipynb filer bruker Python for fil-I/O. Kjerne-API-ene notebookutils.notebook er tilgjengelige i Python, PySpark, Scala og R, med mindre annet er oppgitt.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Visningsnavn for den nye notatboken. Må være unik innenfor arbeidsområdet. |
description |
string | Nei | Beskrivelse av notatboken. Standardinnstillingen er tom. |
content |
Streng, bytes eller dict | Ja | Notatbokens innhold er i gyldig .ipynb JSON-format. Kan også være råbytes eller et dict-objekt.
Kan ikke være tom. |
defaultLakehouse |
string | Nei | Navn eller ID på standard hytte ved innsjøen som skal festes. |
defaultLakehouseWorkspace |
string | Nei | Arbeidsområde-ID for standard lakehouse. La det stå tomt for det nåværende arbeidsområdet. |
workspaceId |
string | Nei | Mål-arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
Viktig!
Parameteren content kan ikke være tom. Du må oppgi gyldig .ipynb innhold når du lager en notatbok. Minst oppgi en gyldig tom notatbokstruktur:
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}
Lag en notatbok fra en mal
# 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})")
Lag en notatbok med standard innsjøhus
# 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}")
Returverdi
Metoden create() returnerer et Artifact objekt med følgende egenskaper:
-
displayName: Notatbokens visningsnavn. -
id: Den unike identifikatoren til den opprettede notatboken. -
description: Beskrivelsen av notatboken.
Opprett en notatbok i et annet arbeidsområ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}")
Lag flere notatbøker fra en mal
# 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
Gi meningsfulle navn og beskrivelser til notatbøkene dine for å gjøre dem lettere å finne. Bruk en konsistent navnekonvensjon, som <Project>_<Purpose>_<Region> for automatiserte distribusjoner.
Skaff deg en notatbok
Bruk notebookutils.notebook.get() for å hente notatbokmetadata etter navn eller ID. Den returnerer et Artifact objekt med egenskaper som displayName, id, og description.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Navn eller ID på notatboken som skal hentes. |
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
Hent en notatbok fra det nåværende arbeidsområdet
notebook = notebookutils.notebook.get("MyNotebook")
print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")
Hent en notatbok fra et annet arbeidsområ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}")
Returverdi
Metoden get() returnerer et Artifact objekt med følgende egenskaper:
-
displayName: Notatbokens visningsnavn. -
id: Den unike identifikatoren. -
description: Beskrivelsen av notatboken.
Tips
Bruk get() før oppdatering eller sletting for å verifisere at målnotatboken eksisterer. Du kan også bruke det til å sjekke om et notatboknavn allerede er i bruk før du oppretter et nytt.
Få en notatbokdefinisjon
Bruk notebookutils.notebook.getDefinition() den for å hente ut hele notatboken i .ipynb format. Bruk det til sikkerhetskopiering, migrering, versjonskontroll eller innholdsanalyse.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Navn eller ID på notatboken. |
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
format |
string | Nei | Utdataformat. Standarder til "ipynb". |
Hent og lagre en notatbokdefinisjon
# 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 notatbokdefinisjon fra et annet arbeidsområ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}")
Returverdi
Metoden getDefinition() returnerer en streng som inneholder notatbokens innhold i .ipynb JSON-format.
Eksporter alle notatbøker for sikkerhetskopiering
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()
Oppdater en notatbok
Bruk notebookutils.notebook.update() for å endre notatbokens metadata, som visningsnavn og beskrivelse. Den endrer ikke notatbokinnholdet eller lakehouse-konfigurasjonen.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Nåværende navn eller ID på notatboken. |
newName |
string | Ja | Nytt visningsnavn for notatboken. |
description |
string | Nei | Oppdatert beskrivelse. |
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
Gi nytt navn til en notatbok
updated_notebook = notebookutils.notebook.update(
name="OldNotebookName",
newName="NewNotebookName",
description="Updated description with more details"
)
print(f"Updated notebook: {updated_notebook.displayName}")
Returverdi
Metoden update() returnerer et Artifact objekt med de oppdaterte egenskapene.
Oppdater en notatbokdefinisjon
Bruk notebookutils.notebook.updateDefinition() den til å endre notatbokinnhold, standard lakehouse, eller begge deler. Bruk det når du må endre notatbokdefinisjonen i stedet for metadataene.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Navn eller ID på notatboken som skal oppdateres. |
content |
string | Nei | Nytt notatbok-innhold i .ipynb format. |
defaultLakehouse |
string | Nei | Nytt standard innsjøhusnavn. |
defaultLakehouseWorkspace |
string | Nei | Arbeidsområde-ID for det nye standard innsjøhuset. La det stå tomt for det nåværende arbeidsområdet. |
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
environmentId |
string | Nei | Miljø-ID for å knytte til notatboken. |
environmentWorkspaceId |
string | Nei | Arbeidsområde-ID for miljøet. La det stå tomt for det nåværende arbeidsområdet. |
Bemerkning
Og-parameterne environmentIdenvironmentWorkspaceId er kun tilgjengelige i Spark-notebookens runtime. Python-notatbøker støtter ikke disse parameterne.
Oppdater innholdet i notatboken
# 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}")
Endre standard innsjøhus
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
defaultLakehouse="NewLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Default lakehouse updated: {is_updated}")
Oppdater både innholdet 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}")
Returverdi
Metoden updateDefinition() returnerer True hvis oppdateringen lykkes eller False feiler.
Tips
Bruk update() for metadataendringer (navn, beskrivelse) og updateDefinition() for innholds- og lakehouse-endringer. Når du trenger en full oppdatering av både metadata og innhold, kall begge metodene i rekkefølge.
Slette en notatblokk
Bruk notebookutils.notebook.delete() for å permanent fjerne en notatbok fra et arbeidsområde. Den returnerer True hvis slettingen lykkes; ellers returnerer Falseden .
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
name |
string | Ja | Navn eller ID på notatboken som skal slettes. |
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
Viktig!
Sletting er permanent. Slettede notatbøker kan ikke gjenopprettes. Verifiser alltid notatbokens navn før du sletter, og vurder å ta backup av notatbokdefinisjonen først getDefinition() .
Returverdi
Metoden delete() returnerer True hvis slettingen lykkes eller False mislykkes.
Slette en notatblokk
is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")
if is_deleted:
print("Notebook deleted successfully")
else:
print("Failed to delete notebook")
Rydd opp i notatbøker trygt etter 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 massesletting, kjør alltid med dry_run=True først for å forhåndsvise hvilke notatbøker som vil bli fjernet. Vurder å gi notatbøker nytt navn med et _TO_DELETE prefiks i stedet for å slette dem med en gang, slik at du kan gjenopprette dem om nødvendig.
Liste notatbøker
Bruk notebookutils.notebook.list() den til å liste opp notatbøker i et arbeidsområde. Den returnerer et array av Artifact objekter.
Parametere
| Parameter | Type | Påkrevd | Beskrivelse |
|---|---|---|---|
workspaceId |
string | Nei | Arbeidsområde-ID. La det stå tomt for det nåværende arbeidsområdet. |
maxResults |
Int | Nei | Maksimalt antall resultater å returnere. Standard er 1000. |
List opp alle notatbøker i det nåværende arbeidsområdet
notebooks = notebookutils.notebook.list()
print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
print(f" - {nb.displayName} (ID: {nb.id})")
List notatbøker i et annet arbeidsområ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}")
Returverdi
Metoden list() returnerer et array av Artifact objekter. Hvert objekt inneholder displayName, id, og description egenskaper.
Filtrer notatbøker etter 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 notatbok
Bruk list() og getDefinition() sammen for å klone en notatbok innenfor samme arbeidsområde eller til et annet arbeidsområ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 notatbok til et annet arbeidsområ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")