Share via


Een Jupyter Notebook-extensie maken

In deze zelfstudie ziet u hoe u een nieuwe Jupyter Notebook Azure Data Studio-extensie maakt. De extensie wordt een jupyter-voorbeeldnotitieblok geleverd dat kan worden geopend en uitgevoerd in Azure Data Studio.

In dit artikel leert u het volgende:

  • Maak een extensieproject.
  • Installeer de extensiegenerator.
  • Maak uw notitieblokextensie.
  • Voer de extensie uit.
  • Pak uw extensie in.
  • Publiceer uw extensie naar de marketplace.

GEBRUIKTE API's

  • azdata.nb.showNotebookDocument

Gebruiksvoorbeelden voor extensies

Er zijn een aantal verschillende redenen waarom u een notebookextensie zou maken:

  • Interactieve documentatie delen
  • Opslaan en constante toegang tot dat notitieblok hebben
  • Codeproblemen bieden die gebruikers kunnen volgen
  • Versie en houd notitieblokupdates bij

Vereisten

Azure Data Studio is gebouwd op hetzelfde framework als Visual Studio Code, dus extensies voor Azure Data Studio worden gebouwd met behulp van Visual Studio Code. U hebt de volgende onderdelen nodig om aan de slag te gaan:

  • Node.js geïnstalleerd en beschikbaar in uw $PATH. Node.js bevat npm, de Node.js Pakketbeheer, die wordt gebruikt om de extensiegenerator te installeren.
  • Visual Studio Code om fouten in de extensie op te sporen.
  • Zorg ervoor dat azuredatastudio deze zich in uw pad bevindt. Voor Windows moet u de optie Toevoegen aan pad kiezen in setup.exe. Voer voor Mac of Linux de opdracht 'azuredatastudio' installeren uit in PATH vanuit het opdrachtpalet in Azure Data Studio.

De extensiegenerator installeren

Om het proces van het maken van extensies te vereenvoudigen, hebben we een extensiegenerator gemaakt met behulp van Yeoman. Voer de volgende opdracht uit vanaf de opdrachtprompt om deze te installeren:

npm install -g yo generator-azuredatastudio

Uw extensie maken

Een extensie maken:

  1. Start de extensiegenerator met de volgende opdracht:

    yo azuredatastudio

  2. Kies Nieuwe notitieblokken (afzonderlijk) in de lijst met extensietypen.

    Notebook-extensiegenerator

  3. Volg de stappen om de extensienaam in te vullen. Gebruik testnotitieblok voor deze zelfstudie. Vul vervolgens de naam van een uitgever in. Gebruik Microsoft voor deze zelfstudie. Voeg ten slotte een beschrijving toe.

Hier bestaat een vertakking. U kunt Jupyter Notebooks toevoegen die u al hebt gemaakt of u kunt voorbeeldnotebooks gebruiken die u via de generator hebt verstrekt.

Voor deze zelfstudie gebruiken we een Python-voorbeeldnotitieblok:

Python-voorbeeld selecteren

Als u notitieblokken hebt die u wilt verzenden, beantwoordt u dat u bestaande notitieblokken hebt die u wilt verzenden. Geef het absolute bestandspad op waar al uw notitieblokken of Markdown-bestanden zich bevinden.

Als u de vorige stappen uitvoert, wordt er een nieuwe map gemaakt met het voorbeeldnotitieblok. Open de map in Visual Studio Code en u bent klaar om de nieuwe notebookextensie te verzenden.

Meer informatie over uw extensie

Dit is hoe uw project er op dit moment uit moet zien:

extensiebestandsstructuur

Het vsc-extension-quickstart.md bestand bevat een verwijzing naar de belangrijke bestanden. In het README.md bestand kunt u documentatie opgeven voor uw nieuwe extensie. Noteer de package.json, notebook.tsen pySample.ipynb bestanden.

Als er bestanden of mappen zijn die u niet wilt publiceren, kunt u hun namen opnemen in het .vscodeignore bestand.

Laten we eens kijken notebook.ts naar wat onze zojuist gevormde extensie doet.

// This function is called when you run the command `Launch Notebooks: Test Notebook` from the
// command palette in Azure Data Studio. If you want any additional functionality
// to occur when you launch the book, add it to the activate function.
export function activate(context: vscode.ExtensionContext) {
    context.subscriptions.push(vscode.commands.registerCommand('launchNotebooks.test-notebook', () => {
        let notebooksToDisplay: Array<string> = processNotebooks();
        notebooksToDisplay.forEach(name => {
            azdata.nb.showNotebookDocument(vscode.Uri.file(name));
        });
    }));

    // Add other code here if you want to register another command.
}

Dit is de belangrijkste functie in notebook.ts die wordt aangeroepen wanneer we onze extensie uitvoeren via de opdracht Notebooks starten: Test Notebook. We maken onze nieuwe opdracht met behulp van de vscode.commands.registerCommand API. De volgende definitie binnen de accolades is de code die wordt uitgevoerd telkens wanneer we onze opdracht aanroepen. Voor elk notebook dat uit onze processNotebooks functie is gevonden, openen we het in Azure Data Studio met behulp van azdata.nb.showNotebookDocument.

Het package.json bestand speelt ook een belangrijke rol bij het registreren van onze opdracht Notebooks starten: Test notebook.

"activationEvents": [
		"onCommand:launchNotebooks.test-notebook"
	],
	"main": "./out/notebook.js",
	"contributes": {
		"commands": [
			{
				"command": "launchNotebooks.test-notebook",
				"title": "Launch Notebooks: Test Notebook"
			}
		]
	}

We hebben een activeringsevenement voor de opdracht en we hebben ook specifieke bijdragepunten toegevoegd. Deze bijdragepunten worden weergegeven in de marketplace voor extensies, waar extensies worden gepubliceerd, wanneer gebruikers uw extensie bekijken. Als u meer opdrachten wilt toevoegen, moet u deze toevoegen aan het activationEvents veld. Zie Activeringsevenementen voor meer opties.

Uw extensie verpakken

Als u met anderen wilt delen, moet u de extensie in één bestand verpakken. Uw extensie kan worden gepubliceerd naar de Marketplace voor Azure Data Studio-extensies of worden gedeeld met uw team of community. Als u deze stap wilt uitvoeren, moet u een ander npm-pakket installeren vanaf de opdrachtregel.

npm install -g vsce

Bewerk het README.md bestand naar wens. Ga vervolgens naar de basismap van de extensie en voer deze uit vsce package. U kunt desgewenst een opslagplaats koppelen aan uw extensie of zonder de extensie doorgaan. Als u er een wilt toevoegen, voegt u een soortgelijke regel toe aan uw package.json bestand.

"repository": {
    "type": "git",
    "url": "https://github.com/laurajjiang/testnotebook.git"
}

Nadat deze regels zijn toegevoegd, wordt er een my test-notebook-0.0.1.vsix bestand gemaakt en klaar om het te installeren en te delen met de wereld.

Uw extensie uitvoeren

Als u uw extensie wilt uitvoeren en testen, opent u Azure Data Studio en opent u het opdrachtenpalet door Ctrl+Shift+P te selecteren. Zoek de opdrachtExtensies : Installeren vanuit VSIX en ga naar de map met de nieuwe extensie.

VSIX installeren

Uw extensie wordt nu weergegeven in het extensievenster in Azure Data Studio. Open het opdrachtpalet opnieuw en u vindt de nieuwe opdracht die we hebben gemaakt met de extensie Launch Book: Test Book. Bij het uitvoeren moet het Jupyter Book worden geopend dat we hebben verpakt met onze extensie.

Notebook-command

Gefeliciteerd U hebt nu uw eerste Jupyter Notebook-extensie gebouwd en verzonden.

Uw extensie publiceren naar de marketplace

De Marketplace voor Azure Data Studio-extensies is in aanbouw. Als u wilt publiceren, host u de extensie VSIX ergens, bijvoorbeeld op een GitHub-releasepagina. Verzend vervolgens een pull-aanvraag waarmee dit JSON-bestand wordt bijgewerkt met uw extensiegegevens.

Volgende stappen

In deze zelfstudie heeft u het volgende geleerd:

  • Maak een extensieproject.
  • Installeer de extensiegenerator.
  • Maak uw notitieblokextensie.
  • Maak uw extensie.
  • Pak uw extensie in.
  • Publiceer uw extensie naar de marketplace.

We hopen dat u na het lezen van dit artikel geïnspireerd bent op het bouwen van uw eigen extensie voor Azure Data Studio.

Als u een idee hebt, maar niet zeker weet hoe u aan de slag kunt gaan, opent u een probleem of tweet u het team in azuredatastudio.

Voor meer informatie bevat de visual Studio Code-extensiegids alle bestaande API's en patronen.