Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Použijte notebookutils.notebook k programové správě položek poznámkového bloku v Microsoft Fabric. Můžete vytvářet, načítat, aktualizovat, mazat a zařadit položky zápisníku, abyste automatizovali nasazení, správu životního cyklu a CI/CD workflow.
Poznámka:
Tato rozhraní API se podporují jenom v poznámkových blocích Fabric, ne v Azure Synapse. Pro každou operaci musíte mít příslušná oprávnění v cílovém pracovním prostoru.
V následující tabulce jsou uvedené dostupné metody správy poznámkových bloků:
| Metoda | Signature | Description |
|---|---|---|
create |
create(name, description, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId): Artifact |
Vytvoří nový poznámkový blok. |
get |
get(name, workspaceId): Artifact |
Načte poznámkový blok podle názvu nebo ID. |
getDefinition |
getDefinition(name, workspaceId, format): String |
Načte obsah definice poznámkového bloku. |
update |
update(name, newName, description, workspaceId): Artifact |
Aktualizuje metadata poznámkového bloku. |
updateDefinition |
updateDefinition(name, content, defaultLakehouse, defaultLakehouseWorkspace, workspaceId, environmentId, environmentWorkspaceId): bool |
Aktualizuje definici poznámkového bloku a jezero. |
delete |
delete(name, workspaceId): Boolean |
Odstraní poznámkový blok. |
list |
list(workspaceId, maxResults): Array[Artifact] |
Zobrazí seznam všech poznámkových bloků v pracovním prostoru. |
Vytvořte poznámkový blok
Použijte notebookutils.notebook.create() k vytvoření nové položky v notebooku v aktuálním pracovním prostoru nebo v určeném pracovním prostoru.
Poznámka:
Příklady pracovních postupů v tomto článku, které čtou nebo zapisuje .ipynb soubory, používají Python pro vstupně-výstupní operace souborů.
notebookutils.notebook Základní rozhraní API jsou k dispozici v Pythonu, PySpark, Scala a R, pokud není uvedeno jinak.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Zobrazovaný název nového poznámkového bloku Musí být v rámci pracovního prostoru jedinečný. |
description |
String | Ne | Popis poznámkového bloku Výchozí hodnota je prázdná. |
content |
Řetězec, bajty nebo slovník | Ano | Obsah poznámkového bloku v platném .ipynb formátu JSON Může se jednat také o nezpracované bajty nebo objekt diktování.
Nemůže být prázdný. |
defaultLakehouse |
String | Ne | Název nebo ID výchozího jezera, který se má připojit. |
defaultLakehouseWorkspace |
String | Ne | ID pracovního prostoru výchozího lakehouse. Ponechte pro aktuální pracovní prostor prázdný. |
workspaceId |
String | Ne | ID cílového pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
Důležité
Parametr content nemůže být prázdný. Při vytváření poznámkového bloku musíte zadat platný .ipynb obsah formátu. Minimálně zadejte platnou prázdnou strukturu poznámkového bloku:
{
"cells": [],
"metadata": {},
"nbformat": 4,
"nbformat_minor": 5
}
Vytvoření poznámkového bloku ze šablony
# 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})")
Vytvoření notebooku s výchozí konfigurací 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}")
Návratová hodnota
Metoda create() vrátí Artifact objekt s následujícími vlastnostmi:
-
displayName: Název displeje notebooku. -
id: Jedinečný identifikátor vytvořeného poznámkového bloku. -
description: Popis poznámkového bloku.
Vytvoření poznámkového bloku v jiném pracovním prostoru
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}")
Vytvoření více poznámkových bloků ze šablony
# 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")
Návod
Zadejte smysluplné názvy a popisy poznámkových bloků, abyste je snadněji našli. Použijte konzistentní zásady vytváření názvů, například <Project>_<Purpose>_<Region> pro automatizovaná nasazení.
Pořiďte si zápisník
Použijte notebookutils.notebook.get() k načtení metadat poznámkového bloku podle názvu nebo ID. Vrátí Artifact objekt s vlastnostmi, jako jsou displayName, id a description.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Název nebo ID poznámkového bloku, který chcete načíst. |
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
Získejte poznámkový blok z aktuálního pracovního prostoru
notebook = notebookutils.notebook.get("MyNotebook")
print(f"Notebook Name: {notebook.displayName}")
print(f"Notebook ID: {notebook.id}")
print(f"Description: {notebook.description}")
Získejte poznámkový blok z jiného pracovního prostoru
workspace_id = "bbbbbbbb-2222-3333-4444-cccccccccccc"
notebook = notebookutils.notebook.get("SharedNotebook", workspaceId=workspace_id)
print(f"Retrieved: {notebook.displayName} from workspace {workspace_id}")
Návratová hodnota
Metoda get() vrátí Artifact objekt s následujícími vlastnostmi:
-
displayName: Název displeje notebooku. -
id: Jedinečný identifikátor. -
description: Popis poznámkového bloku.
Návod
Před operacemi get() aktualizace nebo odstranění ověřte, že cílový poznámkový blok existuje. Můžete ho také použít ke kontrole, jestli se název poznámkového bloku už používá, než vytvoříte nový.
Získání definice poznámkového bloku
Použijte notebookutils.notebook.getDefinition() k načtení celého obsahu poznámkového bloku ve .ipynb formátu. Můžete ho použít pro zálohování, migraci, správu verzí nebo analýzu obsahu.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Název nebo ID poznámkového bloku |
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
format |
String | Ne | Výstupní formát Výchozí hodnota je "ipynb". |
Načtení a uložení definice poznámkového bloku
# 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")
Získání definice poznámkového bloku z jiného pracovního prostoru
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}")
Návratová hodnota
Metoda getDefinition() vrátí řetězec obsahující obsah poznámkového bloku ve .ipynb formátu JSON.
Export všech poznámkových bloků pro zálohování
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()
Aktualizace poznámkového bloku
Slouží notebookutils.notebook.update() ke změně metadat poznámkového bloku, například zobrazovaného názvu a popisu. Neupravuje obsah poznámkového bloku ani konfiguraci lakehouse.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Aktuální název nebo ID poznámkového bloku |
newName |
String | Ano | Nový zobrazovaný název poznámkového bloku |
description |
String | Ne | Aktualizovaný popis |
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
Přejmenování poznámkového bloku
updated_notebook = notebookutils.notebook.update(
name="OldNotebookName",
newName="NewNotebookName",
description="Updated description with more details"
)
print(f"Updated notebook: {updated_notebook.displayName}")
Návratová hodnota
Metoda update() vrátí Artifact objekt s aktualizovanými vlastnostmi.
Aktualizovat definici poznámkového bloku
Pomocí notebookutils.notebook.updateDefinition() můžete upravit obsah poznámkového bloku, výchozího Lakehouse nebo obojí. Použijte ho, když potřebujete změnit definici poznámkového bloku, a ne její metadata.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Název nebo ID poznámkového bloku, který chcete aktualizovat. |
content |
String | Ne | Nový obsah poznámkového bloku ve .ipynb formátu |
defaultLakehouse |
String | Ne | Nový výchozí název jezera. |
defaultLakehouseWorkspace |
String | Ne | ID pracovního prostoru nového výchozího lakehouse. Ponechte pro aktuální pracovní prostor prázdný. |
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
environmentId |
String | Ne | ID prostředí, které se připojí k poznámkovému bloku |
environmentWorkspaceId |
String | Ne | ID prostředí pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
Poznámka:
Parametry environmentId a environmentWorkspaceId jsou k dispozici pouze v prostředí runtime poznámkového bloku Sparku. Poznámkové bloky Pythonu tyto parametry nepodporují.
Aktualizace obsahu poznámkového bloku
# 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}")
Změna výchozího lakehouse
is_updated = notebookutils.notebook.updateDefinition(
name="MyNotebook",
defaultLakehouse="NewLakehouse",
defaultLakehouseWorkspace="" # Current workspace
)
print(f"Default lakehouse updated: {is_updated}")
Aktualizujte jak obsah, tak i 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}")
Návratová hodnota
Metoda updateDefinition() vrátí True , pokud aktualizace proběhne úspěšně nebo False pokud selže.
Návod
Použijte update() pro změny metadat (název, popis) a updateDefinition() pro změny obsahu a lakehouse. Pokud potřebujete úplnou aktualizaci metadat i obsahu, volejte obě metody postupně.
Odstranění poznámkového bloku
Slouží notebookutils.notebook.delete() k trvalému odebrání poznámkového bloku z pracovního prostoru. Vrátí True, pokud odstranění proběhne úspěšně; v opačném případě False.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
name |
String | Ano | Název nebo ID poznámkového bloku, který chcete odstranit. |
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
Důležité
Odstranění je trvalé. Odstraněné poznámkové bloky není možné obnovit. Před odstraněním vždy ověřte název poznámkového bloku a nejprve zvažte zálohování definice getDefinition() poznámkového bloku.
Návratová hodnota
Metoda delete() vrátí True , pokud odstranění proběhne úspěšně nebo False pokud selže.
Odstranění poznámkového bloku
is_deleted = notebookutils.notebook.delete("ObsoleteNotebook")
if is_deleted:
print("Notebook deleted successfully")
else:
print("Failed to delete notebook")
Bezpečné vyčištění poznámkových bloků podle vzoru
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)
Návod
V případě bezpečného hromadného odstranění vždy nejprve spusťte dry_run=True, abyste si zobrazili náhled poznámkových bloků, které budou odstraněny. Místo okamžitého odstranění poznámkových bloků zvažte přejmenování poznámkových bloků s předponou _TO_DELETE , abyste je v případě potřeby mohli obnovit.
Seznam poznámkových bloků
**
Použijte notebookutils.notebook.list() pro výčet poznámkových bloků v pracovním prostoru. Vrátí pole Artifact objektů.
Parametry
| Parameter | Typ | Povinné | Description |
|---|---|---|---|
workspaceId |
String | Ne | ID pracovního prostoru. Ponechte pro aktuální pracovní prostor prázdný. |
maxResults |
int | Ne | Maximální počet výsledků, které se mají vrátit. Výchozí nastavení je 1000. |
Seznam všech poznámkových bloků v aktuálním pracovním prostoru
notebooks = notebookutils.notebook.list()
print(f"Found {len(notebooks)} notebooks:")
for nb in notebooks:
print(f" - {nb.displayName} (ID: {nb.id})")
Zobrazení poznámkových bloků v jiném pracovním prostoru
workspace_id = "cccccccc-3333-4444-5555-dddddddddddd"
notebooks = notebookutils.notebook.list(workspaceId=workspace_id)
print(f"Found {len(notebooks)} notebooks in workspace {workspace_id}")
Návratová hodnota
Metoda list() vrátí pole Artifact objektů. Každý objekt obsahuje displayName, ida description vlastnosti.
Filtrování poznámkových bloků podle vzoru názvů
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}")
Klonujte poznámkový blok
Pomocí list() a getDefinition() společně naklonujte poznámkový blok v rámci stejného pracovního prostoru nebo do jiného pracovního prostoru.
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")
Migrace poznámkového bloku do jiného pracovního prostoru
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")